Food Gate
A category-browsable food-ordering app with a live Google Places address picker, plus a matching admin catalog console
A Flutter food-ordering app — browse a menu by category, build an order through per-item variations and modifiers, and check out with a Google Places-autocomplete address picker and a live Google Map marker — paired with a separate Flutter admin console for managing the menu catalog and user accounts over the same Firestore backend.



Both repositories are private. The Google Places checkout and the variation and modifier catalog builder are explained below.
About this project
The customer app's home screen is a horizontal category selector (burgers, pizza, fries, drinks) filtering the Firestore menu; tapping into an item opens a detail screen where its Firestore-backed variations and modifiers build up a priced order line before it's added to a per-user cart. The cart screen supports quantity adjustments and an optional tip.
Checkout is the most built-out part of the app: a Google Places autocomplete search field feeds live predictions, resolving a selected place to a map marker via the Places Details API, with device geolocation as a fallback and reverse-geocoding path. Saved addresses persist to a per-user Firestore subcollection. The checkout screen also renders a cash-only payment-method selector and an itemized order summary (subtotal, delivery fee, platform fee, total) computed from the cart.
Auth is Firebase email/password sign-up and sign-in, plus Google Sign-In on the sign-up screen.
The admin console is a separate Flutter app (GetX state, local persistence) sharing the same Firestore project: a sidebar-navigated dashboard for adding/editing items with their own variation and modifier builders, a category list, and a user list, behind Firebase email/password login. My part covered the customer app's auth and cart controllers, a Firestore service layer and the admin console's initial scaffold.
Key features
- Category-driven menu browsing via a horizontal selector filtering a Firestore items collection
- Item detail screen with variation and modifier selection feeding a computed per-item price
- Cart with per-item quantity controls and an optional tip, persisted to a per-user Firestore subcollection
- Checkout: Google Places autocomplete address search resolving to a live Google Map marker, with geolocation/reverse-geocoding as a fallback, and saved addresses persisted per user
- Cash payment-method selection and an itemized order summary (subtotal, delivery fee, platform fee, total)
- Firebase email/password auth plus Google Sign-In
- Admin console: item, category, variation and modifier CRUD and a user list behind a GetX-driven sidebar, shared responsively across mobile and wide-screen layouts
More in E-Commerce & Retail

POS & Inventory Platform
Full-stack POS & inventory platform with offline-first sync
A POS and inventory management platform: a Node.js/TypeScript REST API on PostgreSQL paired with a Flutter app that keeps working offline and syncs when connectivity returns.

Petroleum POS
Web POS for fuel retail — meter-reading sales entry, inventory & reports
A Flutter Web point-of-sale system for fuel retail: a daily closing form that turns per-nozzle pump readings into sales and atomically updates fuel and shop-item stock, plus two Firestore-backed sales reports, all behind an admin-gated Firebase login.

EasyStock
Role-based POS with vendor/customer ledgers for small retail businesses
A Flutter POS and back-office system for small retail businesses — Admin/Cashier roles, a two-pane checkout terminal with partial/credit payments, and running vendor and customer ledgers, all on a real-time Firestore backend across web, Android and iOS.
~/sherazi.dev$./say-hello
Say hello.
Questions about a case study, one of the packages, AI tooling or Flutter in general are always welcome.
// or browse the packages on pub.dev(opens in a new tab)