You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
[Admin Dashboard: 1400x600px] Dual-pane orders workspace with item packer checklists, rider dispatcher, and 80mm thermal KOT printer.
Split-pane layout, thermal receipt CSS print media directives (@media print), and kitchen packing state machines.
Custom SVG Data Analytics
[Dashboard Analytics: 1400x600px] Handcrafted SVG area trend charts calculating weekly sales velocity and order breakdowns.
Native SVG vector path rendering without third-party charting dependencies.
π― Why This Project Matters
Most student or tutorial food delivery clones are simple "read-only lists" attached to standard Stripe checkouts. They lack the real-world operational logistics, real-time sync, and intelligent agent features required by modern multi-sided delivery platforms (DoorDash, UberEats, Deliveroo):
The Logistics & Dispatch Gap: Delivery couriers require a real-time dispatch mechanism, live GPS location broadcasts, and interactive MapLibre map interfaces to navigate to customers efficiently.
The Operational & Kitchen Gap: Restaurant staff cannot manage high-volume orders using basic grids; they require split-pane inspector views, item-by-item packer checklists, and printable Kitchen Order Tickets (KOT) for line cooks.
The Conversational Commerce Gap: Text searches often fail when customers want meal recommendations based on diet or mood. Integrating an intelligent Gemini AI assistant transforms recipe discovery into instant cart conversions.
The Engagement & Gamification Gap: Flat promotional codes suffer from low engagement. Gamification via HTML5 Canvas scratchcards elevates coupon claim rates and conversion metrics.
The Value Proposition:Feasto bridges the multi-sided platform gap between Customers, Riders, and Restaurant Managers. It provides a fully realized monorepo ecosystem with WebSockets, AI, interactive mapping, and financial analytics.
β¨ Feature Showcase & Product Workflows
1. Customer Storefront & E-Commerce Core
Dynamic Category & Cart Synchronization:
Context-driven menu filtering with persistent state in StoreContext.jsx.
Automatic bidirectional synchronization of cart item quantities to MongoDB for authenticated users.
Stripe Secure Checkout Engine:
Direct integration with Stripe Checkout API for secure card payments.
Server verification webhook callback (/api/order/verify) validating payment status and updating database records instantly.
Nutritional Health Goal Calculator & Swaps:
Interactive modal calculating recommended daily macro targets (calories, protein, carbs, fats) based on user metrics.
Integrates @vis.gl/react-maplibre and maplibre-gl for real-time map rendering (DeliveryMap.jsx).
Renders animated scooter markers π΅, store pickup location pins, customer delivery destinations, and custom polylines.
Socket.IO Real-Time Dispatch System:
Bi-directional WebSocket connection streaming live driver coordinates and status updates across client, rider, and admin applications.
Instant status transitions: Food Processing β Rider Assigned β Out for Delivery β Delivered.
Split-Hero Rider Portal & Admin KYC Roadmap:
Driver onboarding and profile management (RiderSignup.jsx, RiderDashboard.jsx).
Interactive 3-Step Admin KYC Verification Card (Registered, Admin Audit, Fleet Activation) with live status polling.
Live duty toggle (online/offline), earnings tracker, accepted orders feed, and one-click Google Maps navigation triggers.
3. Conversational AI Assistant (Foodbot)
Google Gemini AI Engine:
Powered by @google/genai API SDK with structured system prompts (aiController.js).
Interprets natural language requests ("I want a healthy low-carb dinner under $20") and matches them against live database food catalog items.
Renders response text along with a horizontal scrollable dish card carousel enabling direct "Add to Cart" execution.
4. HTML5 Canvas Gamification (ScratchCard)
Interactive Metallic Scratch Card:
Built with HTML5 <canvas> rendering metallic golden gradients (ScratchCard.jsx).
Uses globalCompositeOperation = 'destination-out' to simulate realistic scratching.
Calculates erased pixel density via getImageData(). Once scratch threshold exceeds 45%, triggers confetti celebration and auto-applies discount code.
5. Operations Command Center & Kitchen Logistics
Dual-Pane Split Workspace:
Orders workspace (Order.jsx) featuring a left-side chronological orders sidebar and right-side detail inspector.
Packer checklists allowing staff to check off individual items before dispatch.
Driver assignment modal for manual dispatch to registered riders.
Thermal KOT (Kitchen Order Ticket) Printing:
Custom CSS @media print rules format the page into an 80mm thermal receipt ticket, stripping all UI controls and navigation bars.
Rider Management & Audit Panel:
Admin controls (ManageRiders.jsx) for reviewing applicant riders, verifying credentials, and toggling active approval status (Pending, Approved, Suspended, Blocked).
SVG Vector Analytics Dashboard:
Native SVG area and line trend graphs (Dashboard.jsx) calculating sales velocity, average order values, and category breakdowns without external chart libraries.
flowchart TD
subgraph ClientLayer["Frontend Application Layer"]
C[Customer Storefront<br/>React 19 + Context]
R[Rider Portal<br/>React 19 + MapLibre]
A[Admin Dashboard<br/>React 19 + SVG Charts]
end
subgraph GatewayLayer["Express 5 REST & WebSocket Gateway"]
E[Express Server]
SIO[Socket.IO Server Engine]
AuthM[JWT Auth Middleware]
OrderC[Order Controller]
RiderC[Rider Controller]
AIC[Gemini AI Controller]
end
subgraph ServiceLayer["Database & Third-Party Engines"]
DB[(MongoDB Atlas)]
STRIPE[Stripe Payment Portal]
GEMINI[Google Gemini AI Engine]
FS[(Disk File Uploads)]
end
C -->|REST API| E
R -->|REST API| E
A -->|REST API| E
C <-->|Bi-Directional Events| SIO
R <-->|GPS Coordinate Stream| SIO
A <-->|Live Dispatch Updates| SIO
E --> AuthM
AuthM --> OrderC
AuthM --> RiderC
AuthM --> AIC
OrderC -->|Orders / Payments| DB
RiderC -->|Riders / Coordinates| DB
OrderC -->|Checkout Sessions| STRIPE
AIC -->|Recipe Context Prompts| GEMINI
E -->|Multer Asset Uploads| FS
Loading
Real-Time Rider Dispatch & Delivery Sequence
sequenceDiagram
participant Customer as Customer Client
participant Server as Express Server
participant Socket as Socket.IO Engine
participant Rider as Delivery Rider App
participant Admin as Admin Dashboard
Customer->>Server: POST /api/order/place (Cart Items, Address)
Server->>Admin: Broadcast 'new_order' event via Socket.IO
Admin->>Server: PUT /api/rider/assign (orderId, riderId)
Server->>Socket: Emit 'order_assigned' to assigned rider
Rider->>Socket: Emit 'rider_location_update' (lat, lng, speed)
Socket-->>Customer: Push real-time coordinate update to MapLibre Map
Rider->>Server: PUT /api/order/status (orderId, 'Delivered')
Server->>Socket: Emit 'order_delivered' event
Socket-->>Customer: Trigger victory confetti & complete tracking timeline
Loading
β‘ Technical Excellence & Engineering Highlights
Real-Time WebSocket Architecture: Built a scalable Socket.IO communication bridge allowing delivery drivers to stream live GPS coordinates directly to customer tracking maps with minimal latency.
LLM Schema Enforcement: Built robust system prompts for Google Gemini AI that enforce strict JSON output validation, ensuring natural language queries translate cleanly into executable dish recommendations.
Canvas Erase Density Calculations: Developed pixel-level math routines using Uint8ClampedArray to calculate alpha opacity changes during scratchcard manipulation, preventing manual code inspection cheating.
Zero-Dependency SVG Data Visualizations: Built custom vector charting primitives (<circle>, <path>, <linearGradient>) for financial dashboard metrics, eliminating external charting dependencies while maintaining full responsiveness.
CSS Print Media Thermal Formatting: Engineered custom @media print CSS rules targeting 80mm thermal receipt printers, formatting kitchen order tickets instantly on window.print().
π Database Schema
erDiagram
USER ||--o{ ORDER : places
FOOD ||--o{ ORDER : contains
RIDER ||--o{ ORDER : delivers
USER {
ObjectId _id PK
string name "Required"
string email "Unique, Validator verified"
string password "Bcrypt hashed"
object cartData "Key-value quantity map"
}
FOOD {
ObjectId _id PK
string name "Required"
string description "Dish description text"
number price "Decimal amount"
string image "Saved filename string"
string category "Inventorial group"
}
RIDER {
ObjectId _id PK
string name "Driver full name"
string email "Unique driver email"
string phone "Contact phone number"
string vehicleType "Bike / Scooter / Car"
string accountStatus "Pending / Approved / Suspended / Blocked"
boolean isOnDuty "Online status toggle"
object currentLocation "Lat, Lng coordinates"
}
ORDER {
ObjectId _id PK
ObjectId userId FK
ObjectId riderId FK
array items "Food item list with quantities"
number amount "Final charged total"
object address "Delivery street, city, pincode"
object coupon "Applied promo code details"
string status "Food Processing / Rider Assigned / Out for Delivery / Delivered"
date date "Created timestamp"
boolean payment "Stripe verification flag"
}
A full-stack food ordering web application built with the MERN stack, featuring a modern UI, admin dashboard, real-time order management, and secure Stripe payment integration.