← All work

Shikshara Mobile

The same school system in a parent's pocket — because most of them will never open a laptop.

FlutterDartREST API
One backend Shares Shikshara's API, not a second system
Audited 93 endpoints checked against the app
Learning My first Flutter project

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.