Desi Delights is a food delivery website that delivers authentic Indian cuisine to your doorstep. You can choose from a variety of dishes from different regions of India, cooked by local chefs who specialize in Indian food. Whether you are craving for some spicy curry, tangy chaat, or sweet lassi, Desi Delights has something for everyone.
UI Driven Homepage
: You can browse through the available restaurants and menu on the homepage, and choose them by cuisine, price, rating, or distance.Easy Ordering
: You can add the dishes you want to your cart, and proceed to checkout with a few clicks. You can pay online or cash on delivery.Rating
: You can find the rating of all the Restraunts before you order them.Login
: There is a login button where you can login or logout.Swiggy API
: This website uses Swiggy API to fetch the data of the restaurants and the menu from Swiggy’s database. Swiggy is a leading online food ordering and delivery platform in India.
This website is built with React.js and uses the following technologies:
Custom Hooks
: This website uses custom React hooks to handle state management, data fetching, authentication, and other functionalities.Shimmer Page
: This website uses a shimmer effect to show placeholders while the data is loading. This improves the user experience and reduces bounce rate.Redux Toolkit
: This website uses Redux Toolkit to manage the cart state and actions. Redux Toolkit simplifies the Redux code and reduces boilerplate.Code Splitting
: This website uses code splitting to divide the code into smaller chunks that are loaded on demand. This improves the performance and reduces the initial loading time.Jest
: This website uses Jest as the testing framework to write unit tests for the components and functions. Jest is a popular and easy-to-use testing library for React.Tailwind CSS
: This website uses Tailwind CSS as the styling framework to create responsive and elegant designs. Tailwind CSS provides utility classes that make styling easy and fast.Babel
: This website uses Babel as the transpiler to transform modern JavaScript code into compatible versions for older browsers. Babel ensures that the website works across all browsers without any issues.CORS
: This website uses CORS (Cross-Origin Resource Sharing) to enable communication between the frontend and the backend servers. CORS allows requests from different origins to access resources on another origin.
This website follows the best practices and standards for writing clean and maintainable code. The components are divided into reusable and modular units that are easy to understand and modify. The code is well-commented and documented using JSDoc. The code also follows the Airbnb style guide for consistent formatting and naming conventions. There is one class-based component in this website, which is used to demonstrate the use of lifecycle methods.
To run this website locally, you need to have Node.js and npm installed on your machine. You also need to have Parcel as the bundler. To install Parcel, run:
npm install -g parcel-bundler
Then, clone this repository and navigate to the project folder. To install the dependencies, run:
npm install
To start the development server, run:
parcel index.html
The website will be available at http://localhost:1234.
To use this website, you need to create an account or log in with your existing credentials. Then, you can browse through the Restraunts on the homepage, or search for something specific using the search bar. To order food, you need to add the dishes you want to your cart, and then click on the checkout button.
You can choose your delivery address, payment method, and delivery time. Once you place your order, you will receive a confirmation email and a tracking link. You can also view your order history and status on your profile page.(Feature to be added soon)
This project is licensed under the MIT License - see the LICENSE file for details.