Back to Projects
Moroccan Educational System
Period2025
TeamSolo developer
Contribution100%
RoleData engineer: collected, cleaned, structured, and validated Morocco's national curriculum and exam frameworks into open-source JSON datasets.
A standardized, developer-ready JSON dataset of the Moroccan national educational curriculum, covering continuous assessments (Devoirs Surveillés) and official certifying unified exam frameworks for both Collège and Lycée levels. Released as open-source under the MIT license to empower EdTech applications, study planners, and GPA calculators.
PythonJSON SchemaData ModelingWeb ScrapingAutomationMIT Open Source
Key Contributions & Results
Key Contributions
- Consolidated over 680 lessons across Moroccan middle and high school streams (including standard MEN tracks and International French Option / BIOF).
- Structured three core relational JSON datasets: curriculum.json (lesson-by-lesson subject hierarchy), devoirs.json (continuous assessment exam breakdowns for DS1-DS3), and exams.json (national and regional exam specifications).
- Codified official certifying exam rules, including coefficients, testing durations, and the Baccalaureate grade weighting algorithm (50% National + 25% Regional + 25% Continuous Assessment).
- Created Python automated validation scripts (validate.py) enforcing schema constraints and preventing data regressions.
Results
- An open-source, machine-readable dataset eliminating manual syllabus scraping for educational developers building revision apps, GPA tools, and learning management systems.
Troubleshooting
Normalizing Disparate Ministry Syllabi into Validated Relational JSON Schemas
Problem Discovery
- Moroccan Ministry of National Education (MEN) curriculum guidelines existed only in non-standardized PDF formats with conflicting subject terminology between standard Arabic streams and International Option (BIOF) French curricula. Inconsistent coefficient definitions risked incorrect GPA calculations in downstream apps.
Solution Process
- Designed three strict relational JSON schemas (curriculum.json, devoirs.json, exams.json).
- Built an automated Python validation test harness (validate.py) enforcing schema constraints, unique lesson IDs, valid branch mappings, and mathematically verified Baccalaureate formula weights (50% National + 25% Regional + 25% Continuous Assessment).
- Implemented comprehensive CI test workflows to validate JSON syntax, required fields, and integrity on every push.
Result
- A clean, regression-tested open-source dataset with automated CI validation covering all high school streams.
💡Lessons Learned
- Open data engineering requires programmatic schema validation contracts before publishing to ensure downstream consumer reliability.