Academic project · June 2025
GRASP
An exam-marking platform split into two distinct applications — one for students, one for teachers — with separate lifecycles.
- Problem
- Students and teachers share neither permissions, nor load profile, nor peak usage — merging them produces an application that serves both badly.
- Outcome
- Two interconnected Next.js applications, deployable and versionable independently.
- Role
- Full-stack developer
Next.jsDockerREST API
What problem does GRASP solve?
An exam platform has two audiences whose constraints oppose each other:
- Students arrive in a mass over a two-hour window, write a lot, read little.
- Teachers arrive in a diffuse flow across several days, read a lot, annotate, compare.
What technical decision was made?
Two applications, not two roles inside one. GrasprEtu and GrasprEval share the API and the data model, not the interface code.
The real benefit is not performance: it is that an exam session's load peak can never endanger the marking interface, and that a deployment on the teacher side cannot interrupt an exam in progress.
What did GRASP teach me?
Splitting two applications costs duplication. That cost is paid once; coupling is paid at every deployment.
A project of the same calibre ?
Based in Thiès, available in dakar & remote. I reply within 48 hours.
Let's talk