Web Applications · Education
EduFlow School Management
Fees, ledger, inventory and records for a Ghanaian school, with money handled the way an accountant would expect.
- Status
- Prototype
- Year
- 2026
- Role
- Designer and developer
- Client
- Shared with permission
01
Overview
A Next.js front end for school administration. Fee balances are always derived from invoices and confirmed payments, never stored, and the general ledger and trial balance are derived and tested to balance and to reconcile to the fee subledger.
- Next.js
- TypeScript
- Tailwind CSS
- Recharts
02
The challenge
Schools juggle fees, guardians, stock and student records, and errors in money handling are expensive and hard to trace.
- Keeping the ledger, the fee subledger and student balances consistent without storing the same number twice
03
System requirements
- Fee billing with balances derived from invoices and confirmed payments
- Derived general ledger and trial balance
- One guardian account across several children, with a consolidated reminder
- Stock tracking, for example textbooks received, issued and on hand
- Role-based navigation, a preview-as-role switch and field-level gating of medical information
- Defaults for Ghana: GHS currency and the Africa/Accra time zone
- Business-rule tests against the data layer
04
Solution architecture
Content needed: architecture, drawn only from documented components
05
Implementation

School dashboard with fee collection rate, outstanding and overdue fees, expenditure, cash position and attendance. Seeded demo data. 
School Fees dashboard with total invoiced, confirmed collections, collection rate, reminders and a weekly collection trend. Seeded demo data. 
Finance and accounting overview with income against expenditure and an expense breakdown. Seeded demo data.
06
Technical decisions
- Money is stored as integer minor units to avoid rounding errors
- All pages read data through a single module, so a real backend can replace the seeded data in one place
- Role gating in the UI is a mirror only. Real enforcement belongs on the server
07
Results and validation
Content needed: measured results with period and method. Never estimated.
Evidence
- Tests check that the trial balance balances and reconciles to the fee subledger
08
Lessons learned
Content needed: what you would do differently
Content checklist (remove once filled)
- Permission to name the school. The public repository's name includes it, so no link is shown
- A backend, database and sign-in. The current build is front end only, with seeded demo data
- Any results, only with a period and method
09