Skip to content

Zomato Clone: A MERN stack project replicating key features of Zomato, including restaurant exploration, menu viewing, and ordering. Features custom filters, bookmarking, and user authentication.

Notifications You must be signed in to change notification settings

Sanjoy-droid/Zomato-Clone-using-MERN-Stack

Repository files navigation

Zomato Clone

A Zomato clone web application built with MERN Stack.

Project Overview

This project aims to replicate the key features of the Zomato application, providing users with a similar experience to explore restaurants, view menus, and place orders.

Features

  • Home Page: Explore a curated selection of restaurants displayed on the home page, providing users with an overview of popular dining options.

  • Restaurant Listings: Browse through a comprehensive list of restaurants with detailed information including name, address, cuisine, ratings, and delivery options.

  • Custom Filters: Utilize custom filters to refine restaurant listings based on preferences such as cuisine type, price range, and availability of outdoor seating.

  • Product Listing: View detailed product listings for each restaurant, including menu items with descriptions, prices, and images to help users make informed choices.

  • Bookmarking: Bookmark favorite restaurants for quick access and future reference, enhancing the user experience by facilitating easy navigation to preferred dining options.

  • Authorization: Implement user authentication and authorization functionalities to ensure secure access to features such as bookmarking and personalized settings.

Technologies Used

  • MongoDB: MongoDB is used as the database to store restaurant and user data, providing a flexible and scalable solution for managing large datasets.

  • Express: Express.js is utilized as the backend framework for building the RESTful API endpoints, enabling efficient handling of HTTP requests and responses.

  • Node.js: Node.js serves as the server-side runtime environment, allowing JavaScript to be executed outside the browser and powering the backend functionality of the application.

  • Vite: Vite is employed as the build tool to facilitate fast and efficient development and bundling of the frontend assets, enhancing the performance and speed of the application.

  • React: The frontend of the application is developed using React, a popular JavaScript library for building user interfaces, enabling the creation of interactive and dynamic UI components.

  • Context API: React Context API is used for managing global state and sharing data between components, providing a centralized approach to state management and reducing prop drilling.

  • React Router: React Router is utilized for client-side routing, enabling navigation between different pages and components within the application without requiring a page reload.

  • FontAwesome: Icons from FontAwesome are integrated to enhance the visual appeal and usability of the application, providing a wide range of icons for various UI elements.

  • Tailwind CSS: Tailwind CSS is used for styling the application, providing utility-first CSS classes to streamline the styling process and create responsive and visually appealing designs.

  • Git: Git version control system is used for managing and tracking changes to the project codebase, facilitating collaboration and code management among team members.

  • GitHub: GitHub is utilized as the hosting platform for the project repository, enabling version control, collaboration, and code review workflows.

  • npm: npm is used as the package manager for installing, managing, and updating project dependencies, providing access to a vast ecosystem of JavaScript libraries and tools.

  • RESTful API: The application follows the REST architectural style for designing API endpoints, ensuring a standardized approach to resource management and interaction.

Installation

  1. Clone the repository:

    git clone git@github.com:Sanjoy-droid/Zomato-Clone-using-MERN-Stack.git
    
  2. Install dependencies:

    npm install

Usage

  1. Create .env file:
 VITE_URL=<your-bakcend-api (for fetching all posts)>
  1. Start the development server:

    npm run dev
  2. Open the application in your browser:

    Navigate to http://localhost:5173 to explore the Zomato Clone or the url pop-ups in your terminal as Local

Contributing

Contributions are welcome! If you find any issues or have suggestions for improvements, feel free to open an issue or submit a pull request.

License

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

Disclaimer

This Zomato Clone project is created for educational purposes, aiming to showcase skills in web development and React programming. It is not an official Zomato product, and all credits for the original Zomato platform go to the dedicated team at Zomato. The use of the term "Zomato" is for descriptive purposes only.

This project is not intended for commercial use or to imply any official association with Zomato. All trademarks, registered trademarks, and service marks mentioned herein are the property of their respective owners.

About

Zomato Clone: A MERN stack project replicating key features of Zomato, including restaurant exploration, menu viewing, and ordering. Features custom filters, bookmarking, and user authentication.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages