A modern, responsive web application for an online grocery store built with React, Vite, and Tailwind CSS. This project provides a complete e-commerce experience with shopping cart functionality, product browsing, and user authentication.
- Production: https://essentielsdollarfinaldversion.netlify.app/
- Course: SEG3125 Project 2 Website
- Product Catalog: Browse fruits, vegetables, meat, and kitchen utensils
- Shopping Cart: Add, remove, and manage items with real-time quantity updates
- Checkout Process: Complete purchase flow with order summary
- Product Categories: Organized product browsing by category
- Responsive Design: Mobile-first approach with Tailwind CSS
- Interactive UI: Smooth animations and modern component design
- Video Background: Engaging hero section with promotional content
- Error Handling: Comprehensive error boundaries and 404 pages
- Authentication: Sign in and sign up functionality
- User Profiles: Account management system
- Newsletter: Subscription form for updates
- About Us: Company story and mission
- Contact: Get in touch with customer service
- Hiring: Career opportunities and job applications
- AI Chatbot: Customer support integration
- React 18 - Modern React with hooks and functional components
- Vite - Fast build tool and development server
- React Router 6 - Client-side routing and navigation
- Tailwind CSS - Utility-first CSS framework
- FontAwesome - Icon library for UI elements
- React Context - Global state for cart and user data
- Local Storage - Persistent cart data across sessions
- EmailJS - Contact form integration
- React Player - Video content handling
- Chart.js - Data visualization components
- Axios - HTTP client for API requests
src/
├── components/ # Reusable UI components
│ ├── Navbar.jsx # Navigation header
│ ├── Hero.jsx # Landing page hero section
│ ├── CartPage.jsx # Shopping cart interface
│ ├── Checkout.jsx # Order completion
│ └── ... # Other components
├── pages/ # Page-level components
│ ├── shop/ # Product browsing pages
│ └── cart/ # Cart-related pages
├── context/ # React Context providers
│ └── shop-context.jsx # Global state management
├── assets/ # Static assets
│ ├── products/ # Product images
│ └── ... # Other media files
├── products.js # Static product data
└── main.jsx # Application entry point
- Browse Products: Navigate through different categories
- Add to Cart: Click "Add to Cart" on desired items
- View Cart: Check items and quantities in cart page
- Checkout: Complete purchase with order details
- Confirmation: Receive order confirmation
- Products are defined in
src/products.js - Images stored in
src/assets/products/ - Categories: Fruits, Vegetables, Meat, Utensils
- Cart data managed through React Context
- Persistent storage using localStorage
- Real-time updates across all components
- Tailwind CSS for utility-first styling
- Component-specific CSS for custom animations
- Responsive design with mobile-first approach
- Consistent color scheme and typography
- Navbar: Fixed navigation with cart counter
- Hero: Video background with call-to-action
- Product Cards: Consistent product display format
- Cart: Dynamic quantity management
-
Build the project
npm run build
-
Deploy to Netlify
- Connect your GitHub repository
- Set build command:
npm run build - Set publish directory:
dist
-
Configure redirects
public/_redirectshandles SPA routing
- Fork the repository
- Create feature branch (
git checkout -b feature/AmazingFeature) - Commit changes (
git commit -m 'Add AmazingFeature') - Push to branch (
git push origin feature/AmazingFeature) - Open Pull Request
This project is part of SEG3125 coursework. Please respect academic integrity guidelines.
- Repository: marcycode/essentielsdollar
- Course: SEG3125 - User Interface Design
- Institution: University of Ottawa