Skip to content

HashirSaudKhan/FULL-Food-Delivery-App-w-Backend

Repository files navigation

Flutter Food App with Backend


1. Introduction

This document details the development of a food delivery app built using Flutter, Firebase, MongoDB, and Express.js. The app idea is somewhat similar to Foodpanda, aiming to provide a seamless food ordering experience. However, our Unique Selling Point (USP) is charging a lower margin of 10-15% per order compared to Foodpanda's 20-30% commission, making it more appealing to restaurants and users alike.


2. App Overview

The app allows users to browse restaurants, view food items, place orders, and track them in real-time. The process includes:

  • User Authentication: Login/Signup via Firebase.
  • Menu Display: Data fetched using Express.js APIs from MongoDB Atlas.
  • Order Placement: Firebase Firestore.

App Workflow

  1. User logs in using Firebase authentication.
  2. Retrieves restaurant data via Express.js GET APIs.
  3. Places a menu item (e.g., burgers, salads) via POST API calls to MongoDB Atlas.
  4. Order slips are generated in Firebase Firestore.

3. Frontend Overview

The app’s user interface is designed in Flutter, providing a user-friendly experience. Key features include:

  • Login/Sign up screens.
  • Restaurant and menu listings.
  • Add orders through the cart page and select add-ons for orders.

Design Reference

Light Mode

Full Food Delivery App

Dark Mode

Full Food Delivery App dark mode


4. Backend Architecture

4.1 Firebase Authentication

Firebase is used to manage user authentication securely. It supports email and password-based login, ensuring data security.

Implementation Highlights:

  • Simple integration with Flutter.
  • Real-time user authentication updates.

auth users pics

4.2 Database for Menu Listing: MongoDB Atlas

MongoDB serves as the database for storing menu lists (e.g., burgers, salads, desserts, drinks, sides).

mongodb atlas

4.3 Database for Slip Generation: Firestore

Firebase Firestore is used to generate order slips and store order data.

slip generation firestore

4.4 API Development (Express.js)

APIs built with Express.js handle data exchange between the app and the backend.

api pic

5. System Flow

This section details the interaction between various components:

  1. Authentication: User logs in using Firebase.
  2. Data Retrieval: Express.js APIs fetch restaurant/menu data from MongoDB Atlas.
  3. Order Placement: Order data is sent to firestore.

Appendix

Video Demonstration

Video Link

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published