Rawdati: kindergarten accounts in one app for parents and staff
Project status: delivered to a client and completed. A web management and accounting system for a kindergarten, and one mobile app for parents and staff on Android and iOS, with the legacy system's data migrated and reviewed. Paymentery delivered the whole project, from analysing the existing systems and design to development, testing and release preparation. The client is not named at their request.
The problem the system solves
The kindergarten ran on an old system and scattered records: student invoices, payments, expenses and payroll each lived somewhere else. Parents only learned what they owed by calling or visiting, and management only saw the term's position from the office PC. Some legacy figures were not reliable enough to carry over as they were.
The client asked for one system with one set of figures: showing parents their balance and receipts instantly, giving staff every kindergarten task on their phone according to their role, and protecting the figures from undocumented changes.
What was built
For parents
Each child's balance: invoice, paid amount and due date, colour-coded by status; a notification for every payment, invoice or adjustment; and receipts and statements as PDF. Activation uses the mobile number registered with the kindergarten and a one-time code, with no public sign-up, and parents see only their own children.
For kindergarten staff
Everything in the web system is available in the app according to permissions: collecting payments with an instant receipt, protected against duplicates and overpayment; students, enrolment, fees and rolling them into a new term; income and expenses with a photographed receipt; payroll with a preview of every net salary before approval; reports and the financial summary; and staff, sign-in accounts, terms, classes and buses.
Migrating the legacy system safely
The legacy data was migrated with a review centre listing everything that needs a human decision: a student without an invoice, zero or negative amounts, missing payroll months. Parents see no figures for an account under review, and reconciliation screens compare the numbers with the old system term by term.
Security and integrity of the figures
Fine-grained permissions per role are enforced by the server on every request. Payments are never deleted: only a manager can void one, with a written reason and their password, and the parent is notified; every correction is written to an append-only audit log. The receipt date is recorded automatically at collection, so back-dated payments are impossible.
The sign-in token is kept in the device's encrypted storage, the app excludes its data from cloud backup and blocks screenshots of account screens, with a biometric lock. No ads and no tracking.
Engineering
One set of business rules for web and app
A Laravel server with a 101-route API for the mobile app that shares the same business actions as the web system (payroll, saving a student, voiding a payment, review), so the two never disagree on a number. Every financial operation carries an idempotency key, and the term can be switched from the phone.
An Arabic-first Flutter app
One codebase for Android and iOS, right-to-left, readable offline with a clear notice. Every screen was designed in Figma before development.
Tests before delivery
More than 240 automated tests across the server and the app cover permissions, the financial flows and the review, followed by a full pass of every screen on an Android device and a parity matrix mapping every page of the old and new systems to its screen in the app.
Delivery stages
- Analysis of both existing systems and documented rules for invoices, payments and payroll.
- Data migration, the review centre and reconciliation.
- The API, sharing its business actions with the web system, and its tests.
- Design in Figma, then the Flutter app for parents and staff.
- On-device testing and closing every gap between the web and the app.
- Release preparation: a demo server with fictional data reset daily, the app website and privacy policy, and store materials.
Outcome
A complete system was delivered: parents see their balance and receipts on their phone, staff run the whole kindergarten from the app, and the figures are protected by permissions and an audit log. The Android build has been submitted to Google Play for review, and the iOS build is ready to be built.
Have a system you want on mobile?
Describe the users and the problem you want to solve. Scope and the right technology are reviewed before work starts.