π Roadmap & Database Design
πΊοΈ Phase 1: Planning & Setup (Estimated: 2β3 days)
- Define MVP (Multi-Restaurant, Menu, Cart, Checkout, Delivery, Wallet, Scratch Cards)
- Tech Stack: Django (backend), Flutter (frontend), Firebase (real-time), Razorpay (payment), Google Maps API
π οΈ Phase 2: Backend Setup (Django) (Estimated: 7β10 days)
- Set up Django project and REST framework
- Design APIs for:
- Restaurant onboarding
- Menu management
- Customer registration and login
- Cart & order creation
- Delivery & order status updates (via Firebase)
- Wallet and Scratch Cards
π Database Schema (Estimated: 2β3 days)
1. Users
Column | Type | Description |
---|---|---|
id | INT (PK) | User ID |
name | VARCHAR | Full Name |
VARCHAR | Unique Email | |
password | VARCHAR | Hashed password |
role | ENUM (customer, owner, admin) | User type |
2. Restaurants
Column | Type | Description |
---|---|---|
id | INT (PK) | Restaurant ID |
owner_id | INT (FK) | Owner |
name | VARCHAR | Name |
address | TEXT | Address |
latitude | FLOAT | Latitude |
longitude | FLOAT | Longitude |
3. MenuItems
Column | Type | Description |
---|---|---|
id | INT (PK) | Item ID |
restaurant_id | INT (FK) | Restaurant |
name | VARCHAR | Name |
price | DECIMAL | Price |
is_available | BOOLEAN | Availability |
4. Orders
Column | Type | Description |
---|---|---|
id | INT (PK) | Order ID |
user_id | INT (FK) | Customer |
restaurant_id | INT (FK) | Restaurant |
total_amount | DECIMAL | Total |
status | ENUM | Status |
timestamp | TIMESTAMP | Time |
5. OrderItems
Column | Type | Description |
---|---|---|
id | INT (PK) | ID |
order_id | INT (FK) | Order |
menu_item_id | INT (FK) | Item |
quantity | INT | Quantity |
6. Wallet
Column | Type | Description |
---|---|---|
user_id | INT (PK) | User |
points | INT | Balance (1 βΉ = 100 points) |
last_updated | TIMESTAMP | Last Update |
7. ScratchCards
Column | Type | Description |
---|---|---|
id | INT (PK) | Scratch card ID |
user_id | INT (FK) | User |
order_id | INT (FK) | Order |
points_awarded | INT | Rewarded points |
status | ENUM (unused, revealed) | Card state |
created_at | TIMESTAMP | Created |
8. Payments
Column | Type | Description |
---|---|---|
id | INT | Payment ID |
order_id | INT (FK) | Order |
status | ENUM | Status |
method | VARCHAR | Method |
timestamp | TIMESTAMP | Time |
π± Phase 3: Frontend (Flutter) (Estimated: 10β15 days)
- Customer App:
- Restaurant browsing
- Cart, checkout
- Wallet & scratch card view
- Restaurant Dashboard
- Admin Panel
π₯ Phase 4: Real-Time & Payments (Estimated: 3β5 days)
- Firebase for live order updates
- Razorpay for payment
π Phase 5: Launch (Estimated: 1β2 days)
- Deploy backend and Flutter apps
- Promote and track metrics