Skip to content

This project is a clone of almost all features of popular food delivery platforms πŸ•πŸ”, built with React. It was developed to gain hands-on experience and deepen understanding of advanced React topics while building a real-world application.

Notifications You must be signed in to change notification settings

yaseen-kc/Zwiggy

Repository files navigation

Zwiggy πŸ”πŸ•πŸ₯—

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!

Features ✨

  • 🍽️ 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.

Installation Instructions ⚑

To get started with Zwiggy, follow these steps:

Prerequisites πŸ› οΈ

Make sure you have node and npm (or yarn) installed. You can download them from here.

Steps πŸš€

  1. Clone the repository:

    git clone https://github.com/your-username/zwiggy.git
    cd zwiggy
    
  2. Install dependencies:

    npm install
    
  3. Start the development server:

    npm start

    Your app will now be running at http://localhost:3000 (or another available port).

Usage Examples πŸ“±

Once the app is running, you can:

  1. 🍴 Browse a list of restaurants.
  2. 🍽️ Click on a restaurant to view its menu.
  3. πŸ›’ Add items to the cart from the menu.
  4. 🏷️ View the cart and proceed to checkout.

The application adjusts to online/offline states, ensuring an optimal user experience regardless of connectivity.

Configuration Options βš™οΈ

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 and src/utils/redux/cartSlice.jsx.
  • API Constants: Update API URLs or constants in src/utils/constants.jsx to fit your needs.

Contribution Guidelines 🀝

To contribute to this project:

  1. 🍴 Fork the repository.
  2. 🌱 Create a new branch for your feature or fix.
  3. ✨ Make your changes and add tests (if applicable).
  4. βœ… Ensure all tests pass.
  5. πŸš€ Submit a pull request with a description of your changes.

Please follow the code style guidelines and include tests for any new functionality.

Testing Instructions πŸ§ͺ

To run the tests:

  1. Install dependencies (if not done already):

    npm install
  2. Run the test suite:

    npm test

The app uses Jest for testing, and you can add new tests inside the src/components/__test__ directory.

License πŸ“œ

This project is licensed under the MIT License - see the LICENSE file for details.

Acknowledgements / Credits πŸ†

  • 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. πŸ™

About

This project is a clone of almost all features of popular food delivery platforms πŸ•πŸ”, built with React. It was developed to gain hands-on experience and deepen understanding of advanced React topics while building a real-world application.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages