A POS, inventory, and daily financial balancing web application built for multi-branch LPG businesses.
- Multi-Branch Context: Switch between branches with persistent state and color tagging.
- Role-Based Access Control:
- Staff: Dashboard, Order Entry, Customer Directory, Receipts, Order History, and Expenses.
- Admin: Price Settings, Wholesale Discounts, Hauling Logs, Financial Reports, and Net Balancing.
- POS & Order Intake:
- Delivery vs. pickup order tracking.
- Cash and GCash payment recording.
- Unit price snapshotting on every order item to preserve transaction history.
- Daily Financial Balancing: Aggregates Cash, GCash, plant payments, and branch expenses to calculate daily net profit.
- Printable Receipts: Built-in 58mm thermal receipt generator for POS printers.
- Customizable Configuration: Branch names, products, base prices, and role labels are configurable via
.envorsrc/config/business.config.ts.
- Frontend: React 19, TypeScript, Vite, React Router v7, Tailwind CSS v4
- Backend & Database: Firebase Auth, Cloud Firestore, Local Firebase Emulator Suite
- Hosting: Firebase Hosting
-
Clone & Install Dependencies
git clone https://github.com/your-username/5deb.git cd 5deb npm install -
Environment Setup
cp .env.example .env
-
Run Development Server
npm run dev
src/components/: Layout and shared navigation componentssrc/config/: Business defaults and environment variable overridessrc/context/: React contexts (Auth, Branch, Orders, Prices, Customers)src/lib/: Firebase initialization and RBAC helperssrc/pages/: Main application pages (Dashboard, Order Entry, History, Reports, Price Settings)firebase/: Firestore security rules, indexes, and seed files
MIT