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.
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.
- User logs in using Firebase authentication.
- Retrieves restaurant data via Express.js GET APIs.
- Places a menu item (e.g., burgers, salads) via POST API calls to MongoDB Atlas.
- Order slips are generated in Firebase Firestore.
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.
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.
MongoDB serves as the database for storing menu lists (e.g., burgers, salads, desserts, drinks, sides).
Firebase Firestore is used to generate order slips and store order data.
This section details the interaction between various components:
- Authentication: User logs in using Firebase.
- Data Retrieval: Express.js APIs fetch restaurant/menu data from MongoDB Atlas.
- Order Placement: Order data is sent to firestore.