SI-SPPG — MBG Kitchen Operations (Go + React)
A Go and React operations system for Satuan Pelayanan Pemenuhan Gizi: weekly menus, procurement, inventory, production and quality control, distribution, budgets, complaints, and a public transparency portal.
Screenshots
Overview
What this system does.
SI-SPPG manages the work of Satuan Pelayanan Pemenuhan Gizi, the nutrition-service units, from menu planning through meal delivery to beneficiaries. Its backend is written in Go with Fiber, separating domain, service, repository, and presentation layers. PostgreSQL stores data, Redis provides caching, Asynq handles background jobs, and a cron scheduler runs periodic tasks. The frontend is a React and TypeScript application using TanStack Query, Zustand, React Hook Form, Zod validation, Recharts charts, and Leaflet maps.
Its records cover SPPG units, schools, beneficiaries with categories and attendance, suppliers and contacts, farmer groups, allergens, menus and nutritional information, weekly menu plans, inventory items, stock, containers, vehicles, documents, and budgets. Procurement is recorded through purchase orders with approval stages, followed by goods receipt notes. Production plans have sequential progress statuses, quality checks, and retained-sample records. Distribution connects routes, vehicles, schools, and receipt records.
Oversight covers complaints with an SLA dashboard, operational incidents, financial transactions, reports and report templates, audit logs, notifications, and monitoring of documents and certificates approaching expiry. The application also provides public pages with SPPG profiles, schools, beneficiaries, suppliers, and summaries of budget reports and programme progress. Authentication uses JWT with OTP verification and password history, while data access is restricted by module permissions and SPPG unit.
Feature inventory
Highlights
31 capabilities verified against the project source.
Units and beneficiaries
- SPPG units, operational profiles, and certificate-validity monitoring
- Schools, beneficiaries, beneficiary categories, and beneficiary statistics
- Attendance and distribution histories for each beneficiary
- Suppliers, supplier contacts, and supplier-comparison pages
- Farmer groups as sources of raw ingredients
Inventory and menus
- Inventory items, stock, stock-transaction histories, and shopping lists
- QR scanning to look up inventory items
- Menu reference data, nutritional information, and allergen references
- Weekly menu plans and currently active menus
Procurement and budgets
- Purchase orders with multi-level approval workflows
- Goods receipt through goods receipt notes
- Budget management, usage summaries, and budget reports
Production and quality
- Production plans with scheduling per SPPG unit
- Production-status changes with status-sequence validation
- Production quality checks and retained-sample records
Distribution
- Delivery management and distribution-status updates
- Delivery routes, vehicles, and vehicle documents
- Containers to support distribution operations
- Daily attendance, attendance summaries, and employee check-in and check-out
Oversight and reporting
- Beneficiary complaints with a handling-SLA dashboard
- Operational incident records
- Operational financial transactions and expense records
- Production, distribution, inventory, and budget reports
- Reusable report templates and Excel exports
- Photo, document, and supporting-file uploads to object storage
- Monitoring of documents and certificates approaching expiry
Public pages and platform
- Public pages: SPPG profiles, schools, beneficiaries, suppliers, and progress reports
- JWT authentication with registration, OTP verification, and password history
- Module-level roles and permissions with data restrictions by SPPG unit
- Notifications, email delivery, dashboard statistics, and audit logs
- Background jobs with Asynq queues and a cron scheduler
Capabilities
What it is built to handle.
Implementation highlights documented in the project source.
- Fiber backend
- Go
- Domain, service, and repository layers
- Production
- QC
- Inspections and retained samples
- Delivery
- Distribution
- Routes, fleets, and recipients
Tech stack
Built with 19 technologies.
- Go 1.24
- Fiber 2
- GORM
- PostgreSQL
- Redis
- Asynq
- JWT
- Excelize
- Amazon S3
- React 18
- TypeScript
- Vite
- TanStack Query
- Zustand
- Zod
- Leaflet
- Recharts
- Tailwind CSS 3
- Docker
Common questions
What people usually ask.
Why Go rather than the usual Laravel?
The work is operational and time-bound — production statuses, distribution, queued jobs, scheduled tasks — and it benefits from a service that stays cheap under sustained load. The layering is explicit: domain, service, repository, presentation.
How is food safety recorded?
Production plans move through a validated status sequence, each batch has quality checks, and retained samples are recorded against the batch. Documents and certificates approaching expiry are surfaced before they lapse.
What does the public portal show?
Unit profiles, schools, beneficiaries, suppliers, and summaries of budget reports and programme progress — the transparency layer, served from the same records the operators use.
Same field
Related projects.
SIKSCB — Social Welfare & UPTD PPA Case Management
An integrated application for the Cilacap Regency social affairs and women & child protection offices: welfare services, violence-case handling with safe houses, social-key data synchronisation, assets, and performance planning.
Laravel 13 · PHP 8.4 · Blade · Livewire · +15
Sinergi Cilacap — CSR/TJSLBU Management
A CSR/TJSLBU management platform for Cilacap Regency connecting proposals from government agencies and the community with companies, activity delivery, and implementation reporting.
CodeIgniter 3 · PHP 8.1 · MySQL 8 · mPDF · +3
Puspa — Waste Banks & Service Fees
A regency-level waste-bank application: management units, customers, collectors, waste transactions, resident savings, service-fee bills, landfill reports, and regional dashboards.
Laravel 8 · Blade · MySQL · Laravel Sanctum · +7