This repository contains the code for a food delivery app, designed as an e-commerce solution for food delivery using Flutter. The app supports both iOS and Android platforms and features a Laravel backend with an admin panel for managing products and orders using RESTful API complete CRUD operations. Firebase is integrated for notifications.
This crash course tutorial covers the development of a complete food delivery app, from setting up the Flutter frontend to implementing the Laravel backend and integrating Firebase notifications. The tutorial walks through building a shopping cart, placing orders, user authentication, payment processing, and more.
- Show Products Based on Category
- Shopping Cart
- Place Your Order
- Track Order
- User Profile
- Sign In & Sign Up
- User Address Location from Google Map
- Zone-Based Order
- User Authentication
- Firebase Notification
- Payment (PayPal)
- Create New Products on the Backend
- See Order Details
- Update Order Status
- Flutter: For building the app's UI.
- Laravel: For backend services and admin panel.
- Firebase: For notifications.
- GetX: As a state management system.
- MVC: Design pattern for structuring the app.
- Flutter SDK
- PHP and Composer (for Laravel)
- MySQL (or any supported database)
- Firebase account
-
Clone the repository:
git clone https://github.com/nadaeltorgoman/FoodDeliveryApp.git cd FoodDeliveryApp
-
Set up the Laravel Backend:
-
Navigate to the Laravel project folder:
cd backend
-
Install PHP dependencies:
composer install
-
Set up environment variables:
Copy the
.env.example
file to.env
and update the necessary environment variables, including the database configuration.cp .env.example .env php artisan key:generate
-
Run database migrations and seeders:
php artisan migrate --seed
-
Serve the backend:
php artisan serve
-
-
Set up the Flutter Frontend:
-
Navigate to the Flutter project folder:
cd ../frontend
-
Install Flutter dependencies:
flutter pub get
-
Configure Firebase for iOS and Android:
- Follow the Firebase setup instructions to add Firebase to your Flutter app.
- Download the
google-services.json
file for Android and place it in theandroid/app
directory. - Download the
GoogleService-Info.plist
file for iOS and place it in theios/Runner
directory.
-
Run the app:
flutter run
-
Display products grouped by their respective categories, allowing users to browse and select items easily.
A fully functional shopping cart where users can add, remove, and update items.
Users can place orders by filling out the required details and proceeding to payment.
Track the status of placed orders in real-time.
Manage user profile information, including viewing and updating personal details.
User authentication through registration and login screens.
Integrate Google Maps to allow users to select their address location.
Support for zone-based ordering, ensuring users can order only within their serviceable area.
Secure user authentication using Laravel's built-in features.
Real-time notifications for users using Firebase Cloud Messaging.
Integrate PayPal for processing payments securely.
Admin panel to create new products and manage existing ones.
View detailed information about each order from the admin panel.
Admin can update the status of orders to keep users informed.
Contributions are welcome! Please fork the repository and submit a pull request for any changes you'd like to make.
This project is licensed under the MIT License. See the LICENSE file for more details.
For any questions or suggestions, please contact:
- Your Name: Nada El-Torgoman
- GitHub: Nada Eltorgoman
Thank you for following this crash course tutorial on building a Food Delivery App!