Zwiggy is a modern web application designed for browsing restaurants, viewing menus, and managing food orders with a user-friendly interface. Built with React, Redux, and Tailwind CSS, it allows users to explore restaurant offerings, manage their cart, and check out with ease. Perfect for foodies and developers alike!
- π½οΈ Browse through a variety of restaurants and their menus.
- π View restaurant details, categories, and item listings.
- π Add items to your cart and manage cart contents.
- π Handle errors gracefully with error boundaries.
- π Mobile-first, responsive design powered by Tailwind CSS.
- π State management using Redux for cart and app-wide state.
- π§ͺ Unit tests for critical components to ensure stability.
To get started with Zwiggy, follow these steps:
Make sure you have node
and npm
(or yarn
) installed. You can download them from here.
-
Clone the repository:
git clone https://github.com/your-username/zwiggy.git cd zwiggy
-
Install dependencies:
npm install
-
Start the development server:
npm start
Your app will now be running at
http://localhost:3000
(or another available port).
Once the app is running, you can:
- π΄ Browse a list of restaurants.
- π½οΈ Click on a restaurant to view its menu.
- π Add items to the cart from the menu.
- π·οΈ View the cart and proceed to checkout.
The application adjusts to online/offline states, ensuring an optimal user experience regardless of connectivity.
You can configure certain parts of the app by editing the following files:
- Tailwind Configuration: Modify
tailwind.config.js
to customize utility classes and design tokens. - Redux Store: The global state is managed with Redux. You can adjust actions and states in
src/utils/redux/appStore.jsx
andsrc/utils/redux/cartSlice.jsx
. - API Constants: Update API URLs or constants in
src/utils/constants.jsx
to fit your needs.
To contribute to this project:
- π΄ Fork the repository.
- π± Create a new branch for your feature or fix.
- β¨ Make your changes and add tests (if applicable).
- β Ensure all tests pass.
- π Submit a pull request with a description of your changes.
Please follow the code style guidelines and include tests for any new functionality.
To run the tests:
-
Install dependencies (if not done already):
npm install
-
Run the test suite:
npm test
The app uses Jest for testing, and you can add new tests inside the src/components/__test__
directory.
This project is licensed under the MIT License - see the LICENSE file for details.
- React: For the powerful component-based architecture that simplifies UI development.
- Redux: For efficient global state management across the app.
- Tailwind CSS: For enabling a fast and responsive design system with utility-first classes.
- Jest: For robust testing to ensure reliability and maintainability.
Special thanks to the contributors and maintainers of the libraries and frameworks used in this project. π