FoodHub — Food Delivery App
A food delivery Flutter app supporting three user types: customers, restaurants, and delivery drivers. Built with JWT authentication, Stripe payments, order tracking, and Riverpod state management.
Duration
Mid-to-long-term development
Team
1-2 people
01 // OVERVIEW
Project Overview
A food delivery mobile app with three user types: customers, restaurants, and delivery drivers. Built with Flutter and Node.js (Express), it implements JWT authentication, Stripe payments, real-time order status tracking, coupon application, and review posting. State management uses Riverpod, and MySQL's 11 tables manage orders, users, and menus.
02 // KEY FEATURES
Key Features
Role separation across three user types
Implemented dedicated dashboards and features for each role: customers (ordering, tracking, reviews), restaurants (order acceptance, status management, menu editing, sales stats), and delivery drivers (accepting jobs, completion, history, stats).
Stripe payments and coupon application
Implemented Stripe payment integration along with coupon code validation and discount calculation. Coupons can have expiration dates, minimum order amounts, and usage limits, and can be applied instantly at checkout.
Order tracking and real-time status
Implemented a status timeline and tracking screen covering order received, cooking, ready, out for delivery, and completed. Delivery drivers can toggle online/offline status and check daily stats.
03 // TECHNICAL DEEP-DIVE
Technical Highlights
Solution
State synchronization across three user types
Used Riverpod to reflect order status changes across each user type's screens. The Node.js + MySQL backend provides the API, with an 11-table schema managing related entities.
04 // IMPACT & RESULTS
Results
3 user types
Supports customer, restaurant, and driver roles
Stripe
Implemented payment integration and coupons
Riverpod
Used for Flutter state management