MealBox Client is a web application designed to provide users with an intuitive interface for browsing, searching, and ordering meals online. This project demonstrates a modern approach to building scalable and maintainable web applications.
The project was developed following best practices in frontend development, focusing on modularity, reusability, and responsive design. The application interacts with a backend API to fetch meal data, manage user authentication, and handle orders.
- User Authentication: Secure registration and login using JWT-based authentication.
- Meal Browsing: Explore a wide variety of meals with detailed descriptions and images.
- Search & Filter: Quickly find meals using search functionality and category filters.
- Cart Management: Add, remove, and update meal quantities in a persistent shopping cart.
- Order Placement: Seamlessly place orders and view order summaries.
- User Profile: Manage account details and view order history.
- Responsive Design: Fully optimized for desktops, tablets, and mobile devices.
- Error Handling: User-friendly error messages and loading indicators for a smooth experience.
- Next.js: For building the user interface using reusable components.
- TypeScript: For type safty.
- Tailwind CSS: For rapid and responsive UI styling.
- Context API: For state management across the application.
- JWT Authentication: For secure user login and session management.
- Vite: For fast development and optimized builds.
- Project Setup: Initialized with Vite and configured with React and Tailwind CSS.
- Component Design: Developed modular components for meals, cart, authentication, and navigation.
- API Integration: Used service function to connect with the backend, handling data fetching and error management.
- State Management: Implemented Context API for managing user and cart state globally.
- Authentication: Integrated JWT-based authentication for secure access to user-specific features.
- Responsive Design: Ensured the application is fully responsive across devices using Tailwind CSS.
- Clone the repository.
- Install dependencies with
npm install. - Replace the env with you credentials.
- Start the development server using
npm run dev. - Configure the backend API endpoint in the environment variables if needed.