The operating system
for 800 schools.
Chimple runs tablet-based learning in Indian government schools: 31 programmes, 30,000 children. As the only designer, I built the Ops Console the whole operation runs on, from the director’s overview to the coordinator at the school gate.
Programs
| Program Name | Total Schools | School Division | Onboarded Students | Activated Students | Active Users | Avg Engagement | Onboarded Teachers | Activated Teachers | Active Teachers (HW) |
|---|---|---|---|---|---|---|---|---|---|
| Math Mastery ProgramKarnataka | 120 | 15%60%25% | 5,00062.5% | 3,20064% | 2,40048% | 35 min | 30060% | 21060% | 15060% |
| Science Explorers InitiativeMaharashtra | 45 | 40%48%12% | 2,80051% | 1,90068% | 1,40074% | 42 min | 18051% | 13551% | 9551% |
| Reading ChampionsTamil Nadu | 180 | 8%22%70% | 7,20080% | 5,80081% | 4,90084% | 48 min | 42076% | 34076% | 28076% |
| STEM Excellence TrackGujarat | 65 | 25%55%20% | 3,50056% | 1,80051% | 1,10061% | 28 min | 22058% | 15058% | 9558% |
| Digital Literacy ProgramRajasthan | 30 | 50%35%15% | 1,50038% | 80053% | 45056% | 22 min | 9548% | 6048% | 3848% |
| English Engineers ProgramWest Bengal | 95 | 18%52%30% | 4,20070% | 2,80067% | 1,95070% | 38 min | 25071% | 18071% | 12571% |
| AI Learning ProgramTelangana | 85 | 22%48%30% | 3,80063% | 2,40063% | 1,68070% | 45 min | 21066% | 15566% | 11066% |
| Mathematical FoundationsPunjab | 55 | 28%50%22% | 2,90058% | 1,85064% | 1,25068% | 32 min | 17562% | 12562% | 8562% |
| Creative Arts InitiativeKerala | 70 | 30%45%25% | 3,30055% | 2,10064% | 1,47070% | 40 min | 19059% | 14059% | 9859% |
| Data Science AcademyHaryana | 105 | 12%45%43% | 4,80068% | 3,20067% | 2,30072% | 44 min | 26065% | 19065% | 13565% |
Log Interaction
The programme list on the web and the coordinator’s log on a phone: one source behind both. Polished from my Figma file; data is placeholder, the product is under NDA.
Parent onboarding completion, after I simplified registration and profile creation.
Contributed through WhatsApp automation and learner rewards.
Every programme, school, request and visit, live.
The problem
Every programme manager had their own spreadsheets.
State departments, funders and the team all asked one question: is this programme working? The answer lived in a sheet per programme manager, per programme, each with its own columns and its own idea of “up to date”.
Field updates arrived on WhatsApp and were copied in by hand. Coordinators printed class lists before visits. A question about one state took twenty minutes; a report across 31 programmes took days.
Defining “working”
I defined “active” before I drew a dashboard.
A programme can have every school signed up and almost no children using it. So the first thing I shipped wasn’t a screen: it was three definitions, agreed with the product director and counted from what the app already records.
With those settled, the Programs list could stop summarising. It separates the things that get confused: schools signed up, students onboarded, activated and active, and the same for teachers, each read as a band.
At least one game played in the last 7 days.
At least one homework assigned in the last 7 days.
Average minutes per active student, last 7 days.
Programs
| Program Name | Total Schools | School Division | Onboarded Students | Activated Students | Active Users | Avg Engagement | Onboarded Teachers | Activated Teachers | Active Teachers (HW) |
|---|---|---|---|---|---|---|---|---|---|
| Math Mastery ProgramKarnataka | 120 | 15%60%25% | 5,00062.5% | 3,20064% | 2,40048% | 35 min | 30060% | 21060% | 15060% |
| Science Explorers InitiativeMaharashtra | 45 | 40%48%12% | 2,80051% | 1,90068% | 1,40074% | 42 min | 18051% | 13551% | 9551% |
| Reading ChampionsTamil Nadu | 180 | 8%22%70% | 7,20080% | 5,80081% | 4,90084% | 48 min | 42076% | 34076% | 28076% |
| STEM Excellence TrackGujarat | 65 | 25%55%20% | 3,50056% | 1,80051% | 1,10061% | 28 min | 22058% | 15058% | 9558% |
| Digital Literacy ProgramRajasthan | 30 | 50%35%15% | 1,50038% | 80053% | 45056% | 22 min | 9548% | 6048% | 3848% |
| English Engineers ProgramWest Bengal | 95 | 18%52%30% | 4,20070% | 2,80067% | 1,95070% | 38 min | 25071% | 18071% | 12571% |
| AI Learning ProgramTelangana | 85 | 22%48%30% | 3,80063% | 2,40063% | 1,68070% | 45 min | 21066% | 15566% | 11066% |
| Mathematical FoundationsPunjab | 55 | 28%50%22% | 2,90058% | 1,85064% | 1,25068% | 32 min | 17562% | 12562% | 8562% |
| Creative Arts InitiativeKerala | 70 | 30%45%25% | 3,30055% | 2,10064% | 1,47070% | 40 min | 19059% | 14059% | 9859% |
| Data Science AcademyHaryana | 105 | 12%45%43% | 4,80068% | 3,20067% | 2,30072% | 44 min | 26065% | 19065% | 13565% |
Bands. Every percentage falls into Low, Mid or High, and the column filters by band, so a struggling programme shows up without reading a number.
School division. One bar shows how a programme’s schools split across the bands. Sixty weak schools can’t hide inside a strong average.
Reach, then use. Onboarded, activated and active sit side by side, for students and for teachers, so sign-up never stands in for use.
Requests · the centrepiece
From a teacher’s phone to a record everyone trusts.
Teachers, principals and students join through the Chimple app by picking their school. That one tap decides whose data they count in. A wrong pick used to be spotted weeks later and fixed by hand.
I made every join a request, reviewed by the people who know that school best. Anything that crosses schools, like a wrong school or a brand-new one, goes up to someone who can see more than one.
The version I threw away
Two buttons weren’t enough.
My first review screen had approve and reject. In walkthroughs, the common problem wasn’t a bad request but a slightly wrong one: a teacher signed up as principal, or the wrong section. Rejecting sends a real teacher back to the start. So I added Edit, which corrects the request before it’s approved.
Request ID - POGO069
Request From
Request Details
School Details
Duplicates
Let the class list catch them.
Children share phones, so the same child often joins twice on different numbers. Instead of a separate clean-up tool, the student request shows the rest of that class. Pick the match and Approve becomes Merge and Approve: one profile, both numbers. Click a row ↓
Request ID - POGO070
Request From
Request Details
School Details
Students in Grade 1 - A
| Student ID | Student Name | Gender | Grade | Phone Number |
|---|---|---|---|---|
| XYZR1 | Sam Kumar | Male | 1 - A | +91 98765 43210 |
| XYZ02 | Ramya Krishnan | Female | 1 - A | +91 98765 43210 |
| XYZ63 | Arjun Mehta | Male | 1 - A | +91 98765 43210 |
| XYZ64 | Rohan Gupta | Male | 1 - A | +91 98765 43210 |
| XYZR5 | Kavya Iyer | Female | 1 - A | +91 98765 43210 |
| XYZ66 | Priya Sharma | Female | 1 - A | +91 98765 43210 |
| XYZ67 | Aditya Rao | Male | 1 - A | +91 98765 43210 |
| XYZ68 | Neha Verma | Female | 1 - A | +91 98765 43210 |
| XYZ69 | Vikram Singh | Male | 1 - A | +91 98765 43210 |
Wrong school
A wrong school isn’t a bad request.
A teacher who picked the wrong school is still a real teacher, but a field coordinator can only see their own schools. Rejecting loses the teacher; approving puts them in the wrong data. So that reason turns the button into Flag for Review, and a programme manager or ops director moves it. Pick a reason ↓
Reject Request - POGO067
Please provide a reason for rejecting this request
New school
“My school isn’t listed” becomes a school.
“Review and Add School” opens the real Add School form, already filled from the request, with the requester as the first contact. The director only adds what the requester can’t know: the programme and the field coordinator.
Request ID - POGO068
Requested School Details
Request For
Request From
Add School
School visits
The school visit, without the printout.
Field coordinators are the programme’s eyes on the ground. A visit used to mean printed class lists, scrolling through WhatsApp groups, and notes in a notebook the programme manager never saw.
Now the visit lives in the console: check in at the school, see each class and its WhatsApp group, log every conversation with a parent, and let the manager see it all the same day.
The console compares the coordinator’s location with the school’s. Inside the boundary, one tap confirms; outside, it warns before checking in. Every visit gets a real time and place.
Confirm Check-In
Block: Noida, Cluster: Noida-East
The class page replaces the printout: who’s active, who isn’t on WhatsApp, and a button straight into the right parents’ group.
XYZ School
Class Information
WhatsApp Information
● Group ConnectedStudents in Class
| Student ID | Student Name | Gender | Email / Phone Number | WhatsApp Status | Actions |
|---|---|---|---|---|---|
| XYZ02 | Ramya Krishnan | Female | ramana@gmail.com / 98765 43210 | Not Available | |
| XYZR5 | Kavya Iyer | Female | 98765 43211 | On WhatsApp | |
| XYZ63 | Arjun Mehta | Male | 98765 43212 | On WhatsApp |
Log Interaction
In person or by phone, who they spoke to, the call outcome and what’s stopping the child. Built mobile-first, because it’s filled in at a classroom door.
Check-in and check-out times, calls made, face-to-face discussions, tech issues and distance from the school, per visit.
Interactions
| Date | Visit Type | Checked-In | Checked-Out | Calls Made | F2F Discussions | Tech Issues | Distance |
|---|---|---|---|---|---|---|---|
| 22 Nov 2025 | Teacher Training Meeting | — | — | — | 8 | 0 | 0.6 km |
| 21 Nov 2025 | Parents Teacher Meeting | 01:15 PM | 03:42 PM | 3 | 3 | 3 | 0 km |
| 20 Nov 2025 | Regular Visit | 01:15 PM | 03:42 PM | 8 | 9 | 8 | 0.3 km |
| 19 Nov 2025 | Teacher Training Meeting | 01:15 PM | 03:42 PM | 10 | 5 | 2 | 1.3 km |
Screens polished from my Figma file; names and figures are placeholders.
In their words
From the school gate to the funder report.
Field coordinators, programme managers and the ops director, a few months in. Hover to pause, drag to browse.Swipe to browse.
Active students nodoke ivaga Looker Studio open maadbekilla. WhatsApp-alli yaaru sigtaare anta tension-u illa.
I don’t need Looker Studio to see who’s active, and no more worrying about who’s reachable on WhatsApp.
Ab WhatsApp groups mein dhoondh-dhoondh ke confuse nahi hota. Ops se seedha sahi group khul jaata hai.
No more digging through WhatsApp groups. Ops opens the right one directly.
Yaava magu app use maadtilla, ee visit-alli yaar jothe maathaadbeku, ellaa kelave clicks-alli gottagutte.
In a few clicks I know which child isn’t using the app and who to speak to on this visit.
Visit pe jaane se pehle ab class ka printout nikaalne ki zaroorat hi nahi padti.
I don’t need to print the class list before a visit any more.
Active students nodoke ivaga Looker Studio open maadbekilla. WhatsApp-alli yaaru sigtaare anta tension-u illa.
I don’t need Looker Studio to see who’s active, and no more worrying about who’s reachable on WhatsApp.
Ab WhatsApp groups mein dhoondh-dhoondh ke confuse nahi hota. Ops se seedha sahi group khul jaata hai.
No more digging through WhatsApp groups. Ops opens the right one directly.
Yaava magu app use maadtilla, ee visit-alli yaar jothe maathaadbeku, ellaa kelave clicks-alli gottagutte.
In a few clicks I know which child isn’t using the app and who to speak to on this visit.
Visit pe jaane se pehle ab class ka printout nikaalne ki zaroorat hi nahi padti.
I don’t need to print the class list before a visit any more.
It’s one solid source I can trust. Keeping an eye on the whole operation is far easier now.
Now I can see how many visits each school got, and what my coordinator discussed with the parents.
I know which school to focus on this week, and exactly where students are falling behind.
My coordinators manage their schools and students easily on Ops. And reports for funders and government officials take me a fraction of the time.
It’s one solid source I can trust. Keeping an eye on the whole operation is far easier now.
Now I can see how many visits each school got, and what my coordinator discussed with the parents.
I know which school to focus on this week, and exactly where students are falling behind.
My coordinators manage their schools and students easily on Ops. And reports for funders and government officials take me a fraction of the time.
Scale
Built for a small team to run a big operation.
New Campaign
Rewards Configuration
Completion is calculated based on assignments completed during the campaign.
Campaigns
Global Send Schedule
Applied globally across all campaign days.
🌺 नमस्कार अभिभावकों! होली आने वाली है और साथ ही रंगों से भरा नया पाठ भी। आज बच्चे के साथ Chimple पर पाठ पूरा करें।
Campaigns that bring families back
A campaign bundles homework, rewards and a daily WhatsApp message with a poll, scheduled once for every day of the drive and written in the parents’ language. Learner rewards give children a reason to finish.
Alongside a simpler registration and profile setup, this took onboarding completion from 81.8% to 98.7% and contributed to +19.8 pp month-one retention.
Programmes, schools, users, requests and campaigns share one list: tabs, search and filters always in the same place.
A file can fail in three places, so each failure gets its own message and one next step: re-upload, download the error file, or retry.
User story, behaviour, build notes, acceptance criteria. Pushback became a debate about a checkbox, not a screenshot.
Results
What changed.
Looking back
What I’d do differently
I’d set up the design system before the screens. Colours, buttons and card layouts drifted across modules as the console grew, and I spent a pass tightening them afterwards. I’d also instrument the console from the first release, so visit counts and request turnaround are tracked from day one.