The problem
A medical training institution with several faculties had fifteen instructors writing the same questions independently every exam cycle. A pharmacology question written in one department was written again in another, because there was no shared bank. Senior faculty spent their time on data entry instead of teaching, and the curriculum structure lived in disconnected spreadsheets nobody trusted. When they tried to open a second campus, none of it transferred.
What we built
The whole academic hierarchy is modelled end to end: councils, universities, faculties, academic years, semesters, modules with five format types, subjects, chapters and lectures, all navigable through an interactive tree.
Question banks are the point. Five visibility levels (private, shared, faculty-wide, public, subscription) with three permission tiers and optional time-based expiry on a share, so a bank can be lent to another department without handing over ownership.
Inside the system
- Four question types: MCQ, true/false, fill-in-the-blank and matching, with rich-text formatting.
- Bulk import from Excel, CSV and JSON with batch detection, validation and error correction in the UI.
- Analytics dashboard with a three-month activity heatmap of question responses.
- Full audit trail with user and timestamp on every entity change.
- Server-side rendered Angular running in Arabic and English.
Screens