Skip to content

munasrr/Food-Delivery-App

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

13 Commits
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿ• QuickBite

QuickBite is a comprehensive food ordering and delivery platform developed as the final project for React course. This web application is designed to streamline the process of browsing, ordering, and delivering food, providing an intuitive interface and robust features for users.

Features ๐Ÿš€

User Authentication ๐Ÿ”

  • Sign Up / Login: Secure user registration and authentication using JWT.
  • User Roles: Different user roles including customers, restaurant owners, and administrators.

Food Management ๐Ÿ”

  • Browse Menus: Customers can browse menus from various restaurants.
  • Add/Edit/Delete Food Items: Restaurant owners can manage their food items.
  • Search Functionality: Easily find food items or restaurants.

Order Management ๐Ÿ›’

  • Place Orders: Seamless ordering process with multiple payment options.
  • Order History: View past orders and their statuses.
  • Real-time Order Tracking: Track orders in real-time from preparation to delivery.

Admin Panel ๐Ÿ› ๏ธ

  • User Management: Admins can view and manage all users, assign roles, and handle user-related issues.
  • Restaurant Approval: Admins can approve or reject restaurant registrations.
  • Analytics Dashboard: View analytics and reports on user activity, orders, and revenue.

Notifications ๐Ÿ””

  • Order Updates: Real-time notifications for order status updates.
  • Promotional Notifications: Send promotional messages to users.

User Dashboard ๐Ÿ“Š

  • Profile Management: Users can update their personal information and profile pictures.
  • Order Management: View and manage current and past orders.
  • Favorites: Save favorite dishes and restaurants for easy access.

Technologies Used ๐Ÿ› ๏ธ

Frontend

  • React React: A JavaScript library for building user interfaces.
  • Redux Toolkit Redux: State management library for managing application state.
  • Tailwind CSS Tailwind CSS: Utility-first CSS framework for quickly building custom designs.
  • NextUI NextUI: UI components for React applications.
  • React Icons React Icons: Provides a set of icons for use in React applications.
  • React Helmet React Helmet: Manages document head tags such as <title> and <meta> in React applications.
  • Axios Axios: A promise-based HTTP client for making requests to the backend API.
  • MUI MUI: React components for faster and easier web development.
  • DaisyUI DaisyUI: Tailwind CSS components.
  • Emotion Emotion: Library designed for writing css styles with JavaScript.
  • React Toastify React Toastify: Provides notification messages.

Backend

  • Node.js Node.js: A JavaScript runtime environment for server-side applications.
  • Express.js Express: A minimal and flexible Node.js web application framework that provides a robust set of features for web and mobile applications.
  • MongoDB MongoDB: A NoSQL database used for storing user data, food items, orders, and more.
  • Mongoose Mongoose: A MongoDB object modeling tool designed to work in an asynchronous environment.
  • Resend Resend: A library used for sending email notifications to users.
  • JWT (JSON Web Tokens) JWT: Used for securely transmitting information between parties as a JSON object.
  • Bcrypt Bcrypt: A library for hashing passwords to ensure secure storage in the database.
  • Validator Validator: Provides validation functions to validate user inputs and API requests.
  • Multer Multer: Middleware for handling multipart/form-data, primarily used for uploading files in your applications.
  • CORS (Cross-Origin Resource Sharing) CORS: Middleware for enabling CORS in your Express.js application.
  • Body-parser Body-parser: Node.js body parsing middleware.
  • Colors Colors: Get colors in your node.js console.
  • Cookie-parser Cookie-parser: Parse Cookie header and populate req.cookies with an object keyed by the cookie names.
  • Dotenv Dotenv: Loads environment variables from a .env file into process.env.
  • Express-async-handler Express-async-handler: Simple middleware for handling exceptions inside of async express routes.
  • Google-auth-library Google-auth-library: Google APIs Node.js Client.
  • Nodemailer Nodemailer: Send emails with Node.js.
  • Nodemon Nodemon: Simple monitor script for use during development of a node.js app.
  • Stripe Stripe: Node.js library for the Stripe API.
  • Swagger-jsdoc Swagger-jsdoc: Generates swagger doc based on JSDoc.
  • Swagger-ui-express Swagger-ui-express: Creates a Swagger UI page using an OpenAPI Specification.

Setup Instructions ๐Ÿ› ๏ธ

Clone the Repository

git clone https://github.com/yourusername/food-delivery-app.git
cd food-delivery-app

Install Dependencies

Frontend

cd frontend
npm install

Backend

cd ../backend
npm install

Set Up Environment Variables

Create .env files in both the frontend and backend directories with appropriate configuration variables like API URLs, database connection strings, JWT secrets, Cloudinary credentials, and email service credentials.

Run the Development Servers

Frontend Server

cd frontend
npm run dev

Backend Server

cd ../backend
npm start

Access Food Delivery App

Open your browser and navigate to http://localhost:3000 to access the Food Delivery App.

Contributing ๐Ÿค

We welcome contributions from the community. If you have suggestions, find any issues, or want to add new features, please open an issue or submit a pull request on our GitHub repository.

License ๐Ÿ“„

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

Thank you for checking out Food Delivery App! We hope you find it useful and enjoyable to use. ๐Ÿฝ๏ธ

Make sure you copy and paste the entire content to avoid missing any part of the markdown syntax. This should ensure that the code blocks and other markdown elements render correctly in your README file.

About

Your Favourite Food delivery Partner

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages