The problem
Programme data is collected in the field and exported as spreadsheets. Turning those exports into usable school and student records by hand is slow, and re-importing an updated export easily creates duplicates.
What we built
An import tool that reads Agile MIS and KoboToolbox CSV or Excel exports, recognises their column headers, and creates or updates schools, students and enrolments without duplicating them. The rest of the MIS then works from those records: approvals, payments, attendance and reports.
Key features
Bulk import from field exports
Upload CSV or Excel exported from Agile MIS or KoboToolbox; headers are detected automatically.
No-duplicate re-imports
Existing schools and students are matched and updated rather than created again.
School management
Schools by name, LGA, type and status, with generated school IDs.
Students and cohorts
Student records, cohorts, and a history of promotions.
Enrolment approvals
An approve-or-reject queue for enrolments.
Payments
Payment schedules, recorded payments and printable receipts.
Attendance
Attendance sessions taken per cohort.
Reports and activity log
Attendance, performance and revenue reports, plus an audit trail of actions.
Import template
A downloadable CSV template with every supported header.
Engineering challenges
Matching records that were typed by hand
Field exports spell the same school differently, so schools are matched case-insensitively and cached for the length of an import, and students are matched by email in one bulk query rather than row by row.
Result
Deployed at bornoagilemis.org.