A full-stack internal operations platform built for Jollibee Foods Corporation to centralize and monitor their end-to-end supply chain across 6 brands, 5 distribution centers, and 14+ stores nationwide.
JLMS gives JFC's logistics team a single command center to track orders, shipments, fleet, cold chain compliance, inventory, and exceptions — replacing fragmented spreadsheets and manual check-ins with a live, role-aware web dashboard.
JFC operates a complex multi-brand supply chain (Jollibee, Chowking, Greenwich, Mang Inasal, Red Ribbon, Burger King PH) across multiple regions. Key pain points:
- No centralized visibility across brands and DCs
- Temperature compliance tracked manually, after the fact
- Exception handling (wrong items, late deliveries, temperature breaches) had no structured workflow
- Different stakeholders (CEO, DC managers, store managers, fleet supervisors) needed different views
| Module | What it does |
|---|---|
| Dashboard | Live KPIs — OTIF rate, fleet utilization, open exceptions, active shipments |
| Orders | Full order lifecycle from draft → dispatch → delivered, per brand and DC |
| Inbound Shipments | Supplier delivery tracking with quality check status |
| Dispatch & Fleet | Delivery run planning, driver assignments, GPS-linked vehicle status |
| Cold Chain | Real-time temperature compliance monitoring and trend charts |
| Inventory | Stock levels per DC, low-stock alerts, expiry tracking |
| Exception Management | Categorized exceptions by type (wrong item, temperature breach, late delivery) and severity |
| Reports | OTIF, IRA, fleet utilization, cold chain, supplier scorecards |
| User Management | Role-based access — admin, executive, DC manager, coordinator, brand lead, store manager |
Each user role sees only what's relevant to them:
| Role | Access |
|---|---|
admin |
Full system access, user management |
executive / CEO |
Dashboard KPIs, reports, all modules (read) |
dc_manager |
Their DC's shipments, inventory, delivery runs |
coordinator |
Order processing, dispatch coordination |
fleet_supervisor |
Fleet status, driver management, delivery runs |
brand_lead |
Brand-specific orders, inventory, reports |
store_manager |
Their store's orders and delivery status |
Frontend
- React + TypeScript, Vite
- TailwindCSS + shadcn/ui component library
- TanStack Query (server state, caching)
- Recharts (data visualization)
- Wouter (routing)
Backend
- Node.js + Express (REST API)
- Drizzle ORM + PostgreSQL
- JWT authentication (Bearer token)
- Pino (structured logging)
Architecture
- pnpm monorepo with shared packages (
@workspace/db,@workspace/api-client-react) - OpenAPI-generated typed API client (Orval)
- Zod schema validation across API boundaries
Context: JFC operates one of the largest QSR supply chains in Southeast Asia. Their logistics team manages frozen, chilled, and ambient goods across a national network of DCs and stores — with strict temperature requirements and tight delivery windows.
Approach: I designed and built JLMS as a proof-of-concept internal platform, covering the full product lifecycle: database schema design, REST API, authentication system, and a multi-page React dashboard — all from scratch.
Outcome: The platform demonstrates how a unified logistics dashboard can give different stakeholders (executives to store managers) the right information at the right time, with built-in exception alerting and cold chain audit trails — capabilities that directly reduce spoilage risk and delivery failures.
# Install dependencies
pnpm install
# Run database migrations + seed
pnpm --filter @workspace/db run migrate
pnpm --filter @workspace/scripts run seed
# Start API server
pnpm --filter @workspace/api-server run dev
# Start frontend
pnpm --filter @workspace/jlms run devDemo credentials:
| Password | Role | |
|---|---|---|
[email protected] |
admin2026! |
System Admin |
[email protected] |
jlms2026! |
Executive |
[email protected] |
jlms2026! |
DC Manager |
[email protected] |
jlms2026! |
Coordinator |
[email protected] |
jlms2026! |
Fleet Supervisor |
Built by a solo developer as a full-stack portfolio project. All data is seeded and simulated for demonstration purposes.


