Skip to content

A food delivery app with multiple user roles, developed using FastAPI and ReactJS.

License

Notifications You must be signed in to change notification settings

emadjedovic/MMM-MakeMyMeal

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MMM - Make My Meal

Overview

MMM (Make My Meal) is a dynamic web application designed for ordering and delivering food from restaurants. The application caters to multiple user roles including Administrators, Restaurant Administrators, Delivery Personnel, and Customers, each with specific functionalities.

Features

Administrator

  • CRUD Operations: Manage (create, read, update, delete) restaurants.
  • User Management: Create and manage restaurant administrator accounts.
  • Lookup Tables: CRUD operations for lookup tables (food types, restaurant types, etc.).
  • Data Overview: View data on all restaurants, offers, and orders.

Restaurant Administrator

  • Menu Management: Administer individual menu items including details, images, prices, and promotions.
  • Delivery Management: Create invoices for delivery personnel.
  • Order Management: Approve orders and assign them to delivery personnel.
  • Restaurant Details: Edit restaurant data such as delivery distance.

Delivery Personnel

  • Order Overview: View all orders scheduled for delivery on a given day.
  • Order Details: Access order data, status, price, and other relevant information.
  • Order Status Updates: Communicate order delivery status to administrators.
  • Single Restaurant Assignment: Each delivery personnel works for a single restaurant.

Customer

  • User Registration: Register with name, surname, address, and email. Address can be entered via map or as latitude-longitude pair.
  • Restaurant Search: View restaurants within delivery range, search by name and item type.
  • Offers and Recommendations: Access special offers and recommendations.
  • Order Creation: Place orders specifying quantity, payment method, and other details. Receive an email confirmation upon successful order creation.
  • Delivery Time: Specify preferred delivery time or use the creation time as the minimum delivery time.
  • Order History: View all past orders.

Additional Features

  • Chat: Communication with the main administrator or restaurant administrator.
  • Notifications: Notify restaurant administrators of new orders and delivery confirmations.
  • Order Map: Visualize orders on a map with different markers for statuses and filter by delivery personnel.
  • Service Rating: Users can rate restaurant services through a survey upon delivery.
  • Dark Mode: Users can switch between light and dark theme.
  • Background Music: An online radio stream with background music that can be muted by choice.
  • Reset Password: A mechanism for users to reset their passwords through a link sent to their email address.

Getting Started

Backend Setup

  1. Clone the Repository:
    git clone https://github.com/emadjedovic/MMM-MakeMyMeal.git
    
  2. Navigate to the Project Directory:
    cd MMM-MakeMyMeal
    
  3. Install Dependencies:
    pip install -r requirements.txt
    
  4. Run the Application:
    uvicorn main:app --reload
    

Frontend Setup

  1. Navigate to the Frontend Directory:
    cd frontend
    
  2. Install Dependencies:
    npm install
    
  3. Run the Frontend:
    npm start
    

This will start the React development server and open the application in your default web browser.

About

A food delivery app with multiple user roles, developed using FastAPI and ReactJS.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published