The challenge#
In Hungary, school catering is a multi-stakeholder, regulated system. The municipality or maintainer contracts with the kitchen provider, the school administers orders, parents pay the fees — and the kids hope something edible ends up on the table. Behind this process lies surprisingly complex logistics that most institutions still manage on paper, or at best, in Excel spreadsheets.
The typical scenario looks like this: at the end of the month, the school hands out a paper form where the parent checks which days they want lunch for the following month. The child takes this paper home, the parent fills it out, the child brings it back, the homeroom teacher collects them, the school secretary tallies everything — and we hope nobody loses anything along the way. If the parent forgot to fill it out, or the child lost the paper, the order gets missed and the child has no lunch.
But that's just the ordering. Then comes the tallying: the school secretary manually counts up how many servings of Menu A are needed per class, how many of Menu B, who needs lactose-free, who needs gluten-free. This gets forwarded to the kitchen. Then comes billing: calculating fees per parent, factoring in discounts (social, multi-child, employee), verified absences, and partial payments. All of this manually, in Excel or on paper.
If a child got sick and didn't go to school, the lunch usually couldn't be cancelled — because the paper was already submitted, and the kitchen had already prepared the portion. The parent paid for a lunch nobody ate. This caused constant tension between parents and the school.
The main problems:
- Inflexible: Orders can only be placed once a month, with no modifications — parents can't react to changes mid-month
- Error-prone: Manual tallying, manual billing — different amounts per class and per parent, plenty of mistakes
- Time-consuming: The school administrator spends 2-3 full working days per month on lunch order administration
- Not transparent: Parents can't see what they ordered or how much they're paying — information flows one way, from school to parent
- Financial risk: Retroactive billing, difficult collection of overdue payments — the school pays the kitchen upfront but collects from parents after the fact
Off-the-shelf school lunch ordering systems exist in Hungary, but we chose custom development for three reasons:
-
Integration: Ready-made solutions are typically closed systems — you can't connect them to existing billing or communication systems. If the school already uses Kreta (the Hungarian student management system), an e-journal, or its own internal system, the off-the-shelf software won't communicate with them. Custom development integrates at the API level with the existing infrastructure.
-
Customization: Every school has a different process: some order weekly, some daily. In some, the parent pays; in others, the municipality does. Some offer two menu options, others three. Discount systems vary by school. Custom development adapts precisely to the specific school's needs, rather than the school adapting to the software.
-
Cost: Most ready-made solutions operate on a monthly subscription model, priced per parent. For a school with 500 students, the annual cost can be several times the one-time cost of custom development. With a custom system, there's no vendor lock-in, no monthly fee, and the school owns the data.
With the Next.js + Supabase stack, we delivered a working MVP in 2-4 weeks, which is faster than implementing most off-the-shelf solutions — and cheaper in the long run.
The solution in detail#
Parent interface — mobile-friendly, simple
Parents manage lunch ordering through a simple, mobile-optimized web application. No app download needed — it works in the browser and can be added to the home screen (PWA). Login is simple: email + password, or magic link — the parent receives a link via email, clicks it, and they're in. No complicated registration, no forgotten password problems.
On the interface, parents can:
- View the current weekly menu (Menu A and B, if available) in a card layout, broken down by day
- Select which days they want lunch for each child — one tap, check on/off
- Cancel up until the morning of the day (automatic cutoff time set by the school)
- View previous orders and invoice previews — both summarized and broken down by day
- Specify dietary requirements (lactose-free, gluten-free, vegetarian) — the system automatically takes them into account and notifies the kitchen
- Manage multiple children from one account — one login per family, separate orders per child
School admin interface — real-time overview
The school administrator sees a separate dashboard that shows all relevant information in one place. We designed the interface so the school secretary doesn't need technical knowledge — the daily routine is 2-3 clicks, no more. The dashboard also works well on a tablet, which can be useful during lunchroom supervision.
Dashboard features:
- See today's and the week's orders in real time — updates instantly when a parent makes changes
- The system automatically generates the daily summary for the kitchen (how many servings of Menu A, how many of Menu B, dietary requirements summarized)
- Export function in Excel or PDF format for the kitchen — the kitchen receives today's orders at 8 AM
- Manages discounts: social, multi-child, employee — the admin sets them once, then the system applies them automatically
- One-click generation of all invoices at month's end — no need to calculate per parent
- Class-level filtering and reporting — homeroom teachers can also get access to their class data
Stripe payment — online, automatic
The Stripe integration enables online payment, eliminating the problems of cash and bank transfer handling. Parents enter a credit card once in their profile, and the end-of-month invoice is automatically charged. No need to send cash with the child, no bank transfers, no typing the child's name and class in the payment reference. Stripe is PCI DSS compliant, so card data is handled securely — the school never even sees the card number.
The system also handles partial payments: if a parent cancelled some days, the invoice decreases proportionally. Discounts are applied automatically — the system knows the parent's discount category and the number of ordered days, and calculates the total from these.
Reminders: If an invoice is due within 5 days, the parent receives an automatic email reminder. If they don't pay, the school admin gets a notification and decides how to handle it — manual reminder, installment plan, or blocking the next month's ordering.
Automatic billing — the end of the month is no longer a nightmare
Manual billing is one of the school administration's biggest time drains. Each parent owes a different amount, has different discounts, and different cancelled days — varying by class and by child. The system automates this entire process, so month-end closing is a matter of minutes, not days.
At the end of the month, the system automatically:
- Summarizes the lunches consumed during the month, per parent and per child
- Applies discounts according to the configured categories
- Generates the invoice (NAV-compatible, Szamlazz.hu integration planned)
- Sends it to the parent via email — with detailed breakdown of which menu the child received on which day
- Automatically charges the amount via Stripe from the registered card
The school administrator starts the monthly closing with one click, and the system handles everything. If any payment fails (expired card, insufficient funds), the admin gets a notification, and the parent receives an automatic reminder.
Before and after#
- Monthly paper-based ordering, no modifications possible
- Manual tallying: 2-3 days/month from the administrator
- Cancellation: impossible after paper submission
- Billing: manual calculation, manual sending
- Transparency: parents don't know what they ordered
- Daily ordering/modification from mobile, cancellable until morning
- Automatic tallying: 0 manual work
- Cancellation: one tap on the phone, until 8 AM
- Automatic billing + Stripe payment
- Full transparency: orders, invoices, discounts
Parent interface — Weekly menu and ordering (mobile view)
| Day | Menu | Order | Status |
|---|---|---|---|
| Monday | A: Chicken stew, B: Cheese pasta | ✅ Menu A | Ordered |
| Tuesday | A: Fish sticks, B: Vegetable soup + cottage cheese | ✅ Menu B | Ordered |
| Wednesday | A: Roast pork, B: Fried cheese | ❌ Cancelled | Cancelled (sick) |
| Thursday | A: Goulash soup, B: Bolognese | ✅ Menu A | Ordered |
| Friday | A: Fried fish, B: Fruit rice | ⏳ Not selected | Open |
The parent can modify until the morning of the day — cancellation, menu switch. Dietary requirements are automatically taken into account.
Results in numbers#
| Metric | Before | After |
|---|---|---|
| Order modifications | Once/month, on paper | Anytime, from mobile |
| Admin time/month (school) | 2-3 days | < 2 hours |
| Cancellation option | None | Until morning of the day |
| Billing | Manual, weekly/monthly | Automatic, Stripe |
| Parent satisfaction | Low (inflexible) | High (convenient, transparent) |
| Active users | — | 500+ parents |
Paperwork has been completely eliminated. Parents are satisfied because they can modify anytime from their phone. The school is satisfied because tallying and billing are automatic. The kitchen is satisfied because they receive accurate data every morning.
How to apply this in your business#
If your school or institution still handles orders on paper (lunch, school supplies, extracurricular activities), the following steps will help ensure a successful transition:
-
Start by convincing the parents. Our experience: parents switch very quickly to a digital system if it's genuinely simpler than paper. The key is a mobile-first interface and instant feedback. At a parent meeting, you can demo the system in 10 minutes — if parents try it on their phones right there, resistance essentially disappears. The digital solution isn't against parents, it's for them: they get more control over meals than ever before.
-
The admin interface is more important than you think. If the school administrator doesn't like using it, the system fails — regardless of how good the parent side is. School secretaries are generally not tech-oriented, and rightfully concerned about change. Design the interface so there are few clicks, reports are automatic, and the daily routine isn't more complicated than opening an email. In the first month, it's worth providing personal support to the admin while they get used to the system.
-
Payment automation delivers the biggest ROI. Collection, reminders, and manual billing consume enormous time and energy. When this is automatic, the admin saves 2-3 days per month — and the uncomfortable conversations with non-paying parents disappear. Introducing online payment initially raises questions (security, card data), but Stripe's reliability and transparent invoices quickly convince even the skeptics.
-
Start with one class, not the whole school. Before full school rollout, test the system with one or two classes for a month. This reveals practical issues (e.g., parents without smartphones, special discount types), and the remaining classes get a tried-and-tested system.
-
Think about data protection. We're dealing with children's data, which is a particularly sensitive area. Make sure the system is GDPR-compliant, data is stored within the EU, and the school's data protection notice covers the digital catering system.
If you're planning school or institutional digitalization, book a free consultation — we'll show you how to quickly implement a working system and what pitfalls to watch out for.
Tech stack#
| Tool | Role |
|---|---|
| Next.js | Full-stack web application, parent and admin interfaces |
| Supabase | Database, authentication, real-time updates |
| Stripe | Online payment and automatic billing |