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.



Source is private. The idempotent daily closing and the atomic per-nozzle and per-item stock updates behind it are explained below.
About this project
A Flutter Web app on Firebase, gated behind an admin allowlist that is checked before any page loads. The core workflow is a single daily-closing form: for every nozzle, the day's current meter reading is entered against the last saved reading, and the app computes liters sold and revenue at the live fuel price; non-fuel shop items get a same-day sale quantity. Saving folds that into the current day's record inside a monthly Firestore document — idempotent, so reopening and resaving the same day updates it in place instead of creating a duplicate — while atomically decrementing fuel and item stock.
Two report screens read from that same transaction data with a date-range picker: a Sale/Purchase Report (period totals plus a per-product breakdown) and a Nozzle Reading History (start/end readings and total sale per nozzle, per day). Fuel and non-fuel items each get their own screen for restocking and price updates.
Key features
- Daily closing form: per-nozzle current-vs-last meter reading auto-computes liters sold and revenue at the live fuel price, saved as one idempotent daily record
- Fuel inventory: live stock and price per fuel type, with restock and price-update actions
- Non-fuel item inventory: the same restock/price-update pattern for shop items, tracked by unit of measure
- Two date-range reports: a Sale/Purchase Report (totals plus a per-product breakdown) and a Nozzle Reading History (start/end readings and total sale per nozzle)
- Firebase email/password login gated against an admin allowlist in Firestore — accounts not on the list are signed back out
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.



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.
~/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)