CAP'Lecture
- Status
- Live
- Category
- Education
- Platform
- Web platform · FR / AR / EN
- Role
- Full-stack development
- Year
- 2026

CAP'Lecture is a national initiative of Morocco's Ministry of National Education, Preschool and Sports, with the Institut français du Maroc.
Built for the Ministry of National Education and the Institut français du Maroc, CAP'Lecture lets hundreds of thousands of students build reading portfolios, while teachers and supervisors at every level, from the classroom to the national team, follow them through each selection round.
The real product
Screenshots of the live product, taken with demo data. Open any of them full size.
[01]Every student in an edition, filterable down to a single school. Names are hidden here.
[02]A student's profile and reading passports. Personal details are hidden here.
[03]Participation by region, school level, gender and sector, compared across editions.
[04]A reading sheet: book, characters, setting and summary, structured for young readers.
[05]The public site, in French, Arabic and English, where students and schools sign in.
A national reading contest involves schools across the whole country. Registrations, reading sheets, validations and rankings had to move between students, teachers, schools, provinces, regions and the national team, and nobody had one reliable picture of who was taking part or how far they had got.
One platform with a place for everyone. Students register and write their reading sheets, teachers review them, and supervisors at school, provincial, regional and national level see only their own scope, approve, nominate and export. Statistics roll up through the whole hierarchy, so the national team can follow an edition live, region by region.
How an edition runs
The path of one reading sheet, from a student's first book to the national final.
Visit the live platform- [01]
A student registers, alone or through their school, and is placed in a category by school level.
- [02]
They read books suited to their level and fill a reading sheet for each one: title, author, characters, setting and a summary, or a drawing for the youngest.
- [03]
Their teacher reviews each sheet, asks for changes or validates it. Validated sheets unlock reading passports, from red to gold.
- [04]
Supervisors at school, provincial and regional level follow the numbers live, nominate students and run each selection round.
- [05]
The national team sees the whole edition at once: participation by region, level, gender and sector, ready to export.
What it does
We can build and run a platform at national scale for a public institution: deep role hierarchies, large datasets, live statistics and three languages.
A role for every level
Students, teachers, and supervisors for each school, province, region and the nation. Every screen and every export is scoped to the user's place in the hierarchy.
Guided reading sheets
Structured sheets adapted to each category, from drawings for the youngest to full reading sheets in high school, with drafts, validation and approval.
Reading passports
Progress students can see: red, green and gold passports unlock as their validated reading sheets add up.
Live statistics
Schools and students registered, participation by region, school level, gender and sector, and reading progress, compared across editions.
Selection rounds
School, provincial, regional and national rounds, with nominations at each step and exports ready for the juries.
Three languages
The whole platform in French, Arabic and English, with right-to-left layouts for Arabic.
How it behaves
Everyone sees their own scope. A teacher sees a class and the national team sees the country. Permissions follow the hierarchy, never the other way round.
Simple for children. The student side is written and laid out for the youngest readers first.
One source of truth. Dashboards and exports come from the same records teachers validate, so the numbers always agree.
In numbers
- 820k+Students registered
- 2,000+Schools taking part
- 5Supervisor levels
The stack
Typed end to end and rendered on the server by default, with the rest chosen for what this product needed.
- Next.js
- React
- TypeScript
- Tailwind CSS
- Node.js
- Express
- MongoDB
- Prisma
- Redis
- Socket.IO
