CASE STUDY

Government of Jamaica School Meal Management System with QR Tracking

Government of Jamaica — Ministry of Education (National Student School Meal Program)Public Sector / Education7-Minute Read

Jamaica’s national school meal program, run under the Ministry of Education, feeds students every school day across the island. Until recently the paperwork behind it—enrollment lists, meal coupons, budget sheets—lived on paper and in spreadsheets. Sigi Technologies built the school meal management system that replaced that process: every enrolled student carries a unique QR code, school staff scan it at the serving point, and each scan updates enrollment, meal, budget, and reporting data on a single React and Node.js platform hosted on AWS.

Stock photo of a teacher in a classroom on a laptop video call with a student

A national school meal program that ran on paper

The National Student School Meal Program is a Government of Jamaica initiative that provides daily meals to students in schools across the country. Behind each meal sits an administrative chain: a student has to be enrolled and eligible, a school has to have budget left for the day, a meal has to be recorded as served, and the Ministry of Education has to be able to add all of it up by school and by region. For years that chain was held together with paper coupons, printed registers, and spreadsheets emailed between schools and the Ministry.

The Ministry asked Sigi Technologies to digitize the whole chain as one school meal management system. The brief covered four connected modules—student enrollment, daily meal tracking, school budget management, and national reporting—delivered as a web application that school staff, regional officers, and Ministry administrators could all use from a browser. It sits alongside our other education-sector work and our broader custom software development practice.

Why manual meal tracking and coupon management broke down

A program of this size fails quietly rather than loudly. Nobody notices a duplicated coupon or a register filled in from memory on the day; the problems surface weeks later as budget overruns and reports that do not reconcile. Three pain points shaped the requirements.

  • Duplication and leakage — paper coupons could be reused, lost, or claimed more than once, and there was no reliable way to confirm that a funded meal reached the enrolled student it was intended for.
  • Over-budgeting — schools tracked spend against their allocation by hand, so overages were discovered after the fact rather than flagged when they happened, and holidays or term breaks were sometimes counted as serving days.
  • Reporting delays — consolidating school-level figures into regional and national totals meant collecting spreadsheets from every school, which left the Ministry making decisions on data that was already out of date.

The system therefore had to do three things at once: validate each meal against a real student at the moment of service, keep budgets current in real time, and give the Ministry a live, auditable national view without anyone re-keying data.

The stack we built it on

The platform is a single-page React application backed by a Node.js and Express API, with PostgreSQL as the system of record and the whole stack deployed on AWS. Every screen—enrollment, scanning, budgets, dashboards—talks to the same REST API, so a meal scanned at a school desk and a regional summary opened at the Ministry read from the same rows. Sigi’s web application and DevOps and cloud teams handled the build and the AWS environment together.

Three design decisions carried most of the weight. First, meal validation is server-side: the scanner client sends the QR payload and the API decides whether the student is enrolled, eligible today, and not already served, which is what makes duplicate claims fail rather than slip through. Second, budget is modeled as a per-school wallet that debits on each confirmed meal, so overage tracking is a consequence of the meal record rather than a separate spreadsheet. Third, holiday and term calendars are configuration, not code, so the Ministry can exclude non-serving days without a release.

How the platform is built and run

A national program has to stay accurate and auditable across thousands of daily scans, so the platform is engineered around server-side validation, live budgets and a role-scoped audit trail:

  • One React single-page app and a Node.js and Express API over PostgreSQL as the system of record, so a meal scanned at a school desk and a regional summary opened at the Ministry read from the same rows.
  • Server-side meal validation: the scanner sends the QR payload and the API decides whether the student is enrolled, eligible today and not already served, so duplicate claims fail rather than slip through.
  • Budget modeled as a per-school wallet that debits on each confirmed meal, with continuous overage tracking and automated alerts when a school approaches or exceeds its allocation.
  • Holiday and term calendars are configuration, not code, so the Ministry can exclude non-serving days without a release.
  • Role-scoped access enforced on the server with OAuth2 and short-lived JWT access tokens — school staff act only for their own school, regional officers for their region, and Ministry administrators for budgets, calendars and national reporting.
  • An audit trail by design: every scan is stored with school, timestamp and the staff account that recorded it, with data encrypted in transit over HTTPS/TLS and at rest, handled with reference to Jamaica’s Data Protection Act, 2020.
  • A documented REST API deployed on AWS with CI/CD so deployments are repeatable, plus an Excel bulk-import path so schools can move existing registers onto the platform without retyping them.

What we implemented: the four modules

Sigi designed, built and shipped the platform end to end. The modules were scoped so that each one produces the data the next one needs: enrollment issues the QR codes that meal tracking validates; meal tracking generates the debits that budget management monitors; and all three feed the reporting layer.

  • Student enrollment — digital registration with a unique QR code generated per student, plus Excel bulk import for onboarding whole schools at once.
  • Meal distribution tracking — daily QR scanning at the serving point, with server-side validation and real-time counts.
  • School budget management — per-school allocations and wallets, real-time overage tracking, and automated alerts when spend approaches or exceeds the limit.
  • National reporting dashboards — real-time consumption and budget analytics, regional summaries, and notifications for policy updates.

Student enrollment and QR code issuance

  • Each student record holds identity, school, and eligibility status; saving the record generates a unique QR code tied to that student.
  • Schools can enroll students individually or upload an Excel sheet, with validation on import so malformed rows are rejected before they reach the database.
  • Eligibility changes—transfers, withdrawals, suspensions—take effect immediately, because validation happens at scan time against the current record.

Daily meal distribution tracking

  • Staff scan a student’s QR code at the serving point; the API confirms enrollment, checks that today is a serving day, and rejects a second scan for the same student on the same day.
  • Counts update in real time for the school and roll up to region and national totals without any end-of-day submission step.
  • Every scan is stored with school, timestamp, and the staff account that recorded it, which is what gives the Ministry an audit trail rather than just a total.

School budget and wallet management

  • The Ministry allocates a budget to each school; confirmed meals debit that wallet automatically.
  • Overage tracking runs continuously, and automated notifications go out when a school is overspending rather than at the next reporting cycle.
  • Holiday and term controls exclude non-serving days so that budgets and daily targets reflect the actual calendar.

Reports, dashboards, and notifications

  • Real-time dashboards cover meal consumption, budget position, and regional summaries for the Ministry and regional officers.
  • Automated alerts handle overspending and policy updates so that administrators are told about exceptions instead of hunting for them.
  • Because the REST API is documented end to end, reporting data can be pulled programmatically by other systems rather than exported by hand.

Delivery and engineering practice

Public-sector software has to be defensible in an audit long after the engineers who built it have moved on, so the delivery emphasized things that leave a trail. The API is documented REST throughout, environments are provisioned on AWS with CI/CD so that every deployment is repeatable, and all traffic is served over HTTPS/TLS with encrypted storage behind it. The Excel import path was built early because it was the practical route for schools to move existing registers onto the platform without retyping them.

Because the platform holds children’s personal data, privacy handling was framed around the law that actually governs it: Jamaica’s Data Protection Act, 2020, passed in June 2020 and overseen by the Office of the Information Commissioner. Role-scoped access, server-side enforcement, and encryption in transit and at rest are the concrete measures behind that, rather than a checkbox against an overseas framework.

A walkthrough of the finished platform was published by Sigi Technologies on YouTube in October 2025 as the School Meal Management System demo video.

The team and expertise behind the build

The platform was delivered end to end by one cross-functional Sigi team — product strategists, UI/UX designers, full-stack engineers, DevOps and QA — working as a single unit rather than handing the build between vendors. Sigi hires only specialists: every engineer is an expert in their own field, and we invest in the team as they deliver, supporting certifications and continuous learning so expert, motivated engineers stay on every build. It is the model we have run since 2016: deep, cross-industry expertise owning the whole stack, from the React front end and the Node.js and Express API to the PostgreSQL system of record and the AWS environment it runs on. Building a national program that has to stay accurate and auditable across thousands of daily scans is exactly the kind of accountable, public-sector engineering our team is built for — the same capability behind our custom software and web application development work.

What shipped for the Ministry of Education

The program now runs on one school meal management system with a single database instead of a chain of paper and spreadsheets. QR validation at the point of service means a meal is only counted when an enrolled, eligible student is scanned, which closes the duplication path that coupons left open. Budgets are live rather than reconstructed, so an overage triggers a notification on the day it happens. And because school scans roll up automatically, the Ministry has a national view it can query at any time, with an audit trail behind every figure on it.

You can see the enrollment, scanning, budget, and dashboard flows in the demo video on YouTube.

Related public-sector and education platform work

If the shape of this project is familiar—many sites feeding one accountable center—three other Sigi builds are worth reading next: the Alpha Academy learning platform for another education-sector system, the 3D Logistix multi-tenant warehouse platform for a similar per-site-to-national data model in logistics, and the Bilawal Electronics ERP, which covers the budget-and-ledger side in more depth.

Planning a government software platform, a school meal management system, a benefits distribution system, or any program where field records have to survive an audit? Talk to Sigi Technologies about scoping it, or explore our education industry practice and IT consulting services.

Need a public-sector platform for your business?

Tell us what you want to build. We’ll show you how a Sigi team would scope, design, and ship it — and the stack it would take.