Shikshara Mobile
The same school system in a parent's pocket — because most of them will never open a laptop.
A parent in Nepal has a phone, not a laptop. If checking whether the fees are paid means finding a computer, it won't happen — so the school ends up phoning people, which is what the software was supposed to stop.
A client, not a second product
The app talks to the same Laravel backend that serves the web system, over a versioned JSON API with token authentication. There is no separate mobile database, no sync layer, no second source of truth. A fee marked paid on the web is paid in the app, immediately, because it is the same row.
Tenant identification comes free: the app points at the school's own subdomain, and the tenancy middleware scopes every query without the app knowing tenancy exists.
What it does
Attendance and absence notifications, exam results, fee status and payment history, school notices, and a messaging channel between school and family. Parents see their children; students see themselves; teachers get attendance entry.
Honest status
This is my first Flutter project and I am learning it as I build. I've audited all 93 backend endpoints against what the app calls and fixed the mismatches — the chat implementation in particular was aligned to what the backend actually returns rather than what I'd assumed.
In progress, alongside the web platform.
Other work