UM6P Executive Education Platform
Freelance — executive education back-office
A Django + Next.js back-office that runs UM6P's executive education programmes end to end — scheduling and staffing modules, tracking participants and payments, booking rooms and catering, and pushing purchase requests through Moroccan public-procurement approval.
21 models · 4 roles
Highlights
- Role-based access for 4 staff roles, enforced by 14 DRF permission classes
- Classroom booking with capacity validation across 10 rooms, plus catering, transport, and accommodation logistics
- Branded PDF report export, Excel participant import, and real-time notifications over WebSockets
Problem
The executive education department coordinated programmes across spreadsheets and email: who is enrolled, which room a module sits in, what the catering and transport cost, and where a purchase request had stalled. Nothing reconciled, so budget and logistics drifted apart from the schedule.
Role
A two-person build over roughly five months. I authored 67 of the repository's 204 commits, concentrated in the programme module, the logistics and budget features, and the administrative front end — the permission system, user invitation and activation flow, module management, classroom reservation, dashboard charts, and the PDF export.
Approach
A Django 4.2 REST API over PostgreSQL models the domain in 21 tables — programmes, modules, participants, budget lines, four logistics models, and procurement requests — behind a service layer and a unified response envelope. Access is JWT-based across four staff roles, with 14 DRF permission classes and matching client-side capability checks. Django Channels over Redis pushes 16 notification types to the Next.js client in real time.
Outcome
One system now covers the full programme lifecycle: 26 custom API actions drive scheduling, enrolment, room booking with capacity validation, per-participant payment tracking, and a six-state purchase-request workflow. Staff import participants from Excel and export branded ReportLab PDF reports, and an activity log keeps an audit trail across programmes and users.