Spys
One platform, three apps — order, manage, and deliver campus meals.
- Role
- Full-Stack Engineering · 3-surface platform
- Year
- 2025
- Stack
- 8 technologies
Today's menu
Students ordering meals
An installable PWA where students browse the daily menu, manage allergies and favourites, load credit, and place orders — then show a QR code at pickup.
◆ Try it live
Log in as any role
Open the live app and sign in with any of the demo accounts below to explore all three surfaces. Shared demo data — be kind to it.
Password
Password
Password
Spys is an end-to-end meal platform for university residences. Students browse a daily menu, load credit, and order from an installable mobile app; residence and finance staff run menus, orders, allergens, and budgets from a full admin portal; and delivery drivers clear the day's deliveries from a scanner-driven app.
It's one React + TanStack front end backed by a Spring Boot API with role-based access, real-time notifications over WebSockets, and a PostgreSQL database, deployed to Oracle Cloud. A single QR credential ties the three apps together — the student's code is scanned by a driver to confirm each delivery.
Built with
- React 19
- TanStack Router/Query
- Tailwind · shadcn/ui
- Spring Boot 3
- Spring Security · JWT
- WebSockets
- PostgreSQL · Flyway
- Oracle Cloud
3 apps
Student PWA, admin portal & driver app
8 roles
Granular role-based admin access
QR pickup
Barcode-confirmed delivery handoff
Real-time
WebSocket order & delivery updates
What it does
Student ordering PWA
An installable app with a daily menu, allergy-aware meal cards, favourites, a credit wallet, and push notifications.
Role-based admin portal
Eight admin roles — user, menu, finance, order, delivery, feedback, audit, and system — each see only the tools they own.
QR pickup & delivery
Every student carries a QR credential. Drivers scan it to pull up pending items and confirm hand-off, which notifies the student instantly.
Finance & wallets
Staff load credit individually or in bulk, track every transaction, and watch balances and spend across campus.
Menus, allergens & residences
Build daily menus with images and prices, flag allergens, and manage campuses and residences from one place.
Real-time & audited
WebSocket notifications keep orders and deliveries live, while an audit log records every sensitive action.
Three apps, one system.
Student App
An installable PWA where students browse the daily menu, manage allergies and favourites, load credit, and place orders — then show a QR code at pickup.
- Daily menu with meal images
- Allergy-aware meal cards
- Credit wallet & balance
- QR pickup code
- Favourites & push notifications
Today's menu
Admin Portal
A role-based desktop portal to run menus, orders, allergens, residences, and campus finance — with audit logs, feedback, and reporting.
- Menu & item management
- Order overview & history
- Finance: load credit & transactions
- Campus, residence & allergen settings
- Audit log & feedback dashboard
Finance
Campus wallet balances and transactions
Total balance
R 128.4k
Loaded today
R 12.8k
Transactions
1,204
Active students
842
Recent transactions
Johan Smit
Elandia
Lerato Mokoena
Huis Marais
Sipho Ndlovu
Eendrag
Anja van Wyk
Minerva
Spend this week
Driver App
A scanner-first delivery app: scan a student's QR, see their pending items, and confirm each as delivered. Live stats track the day's progress.
- Scan student barcode
- Pending items per student
- One-tap delivery confirm
- Live delivery progress
- Auto-clears when complete
In delivery
45
Delivered
105
Johan Smit
Elandia · Stellenbosch
Okera designs and builds full-stack products like this one — from first sketch to deployed system.