This is the frontend of an e-commerce system developed with Next.js, TypeScript, and Material-UI.
- Email/password login
- Google OAuth login
- User registration
- Password recovery
- Profile management
- Address management
- List of establishments
- Menu view by establishment
- Product categorization
- Daily promotions
- Product details
- Product add-ons
- Business hours
- Open/closed status
- Add products to cart
- Quantity adjustment
- Add-on selection
- Value calculation
- Delivery address selection
- Payment options:
- Cash
- Credit card
- Debit card
- Change calculation
- Order completion
- Order tracking
- Real-time order status
- Order history
- Order details
- Reorder previous orders
- Responsive design (mobile/desktop)
- Light/dark theme
- Intuitive navigation
- Visual feedback (toasts)
- Loading states
- Animations and transitions
- Framework: Next.js
- Language: TypeScript
- UI: Material-UI (MUI)
- State Management: React Context API
- HTTP Requests: Axios
- Cache and Data Management: React Query
- Form Validation: React Hook Form + Yup
- Authentication: JWT + Google OAuth
- Styling: Emotion
- Fonts: Roboto
src/
├── components/ # Reusable components
├── containers/ # Containers and pages
├── context/ # React contexts
├── helpers/ # Helper functions
├── hooks/ # Custom hooks
├── models/ # Types and interfaces
├── services/ # API services
└── styles/ # Global styles
-
Clone the repository
-
Install dependencies:
yarn install
-
Configure environment variables:
- Create a
.env.localfile based on.env.example - Set the API URL and other necessary configurations
- Create a
-
Start the development server:
yarn dev
The project is configured for production deployment. Make sure to properly configure the environment variables before deployment.
This project is licensed under the MIT License.
Contributions are welcome! Please read the contribution guidelines before submitting a pull request.