- Website
- Mobile app
- Back office
- Student portal
Capstone Academy
- Sector
- Education
- Delivered as
- Website
- Mobile app
- Back office
- Languages
- FR / EN / ES
“Préparez votre Selectividad à Casablanca”
(The project)
Capstone Academy prepares Moroccan students for Spanish universities under the Dar España brand. We built the whole system: the public website that recruits, the student mobile app and web portal, and the back office the team runs the school from, all on one Laravel API.
(Context)
One source of truth where most schools run three tools.
The school needs a site that recruits across its five Casablanca campuses, a place where students follow their planning, grades and documents, and an admin tool for staff. Run separately, these drift apart and staff re-type the same data.
The Dar España website presents the exam, the campuses and the calendar in French and English. Behind it, one Laravel application feeds the Dar España mobile app, the student portal and the back office, where staff manage schedules, grades, documents and targeted notifications.
(Key figures)
- products on one API
- 3
- campuses in Casablanca
- 5
- channels per alert
- 4
- notification audiences
- 7
The decisions that shaped it
One API for every client
The mobile app and the web portal sign in against the same API with expiring tokens, so a student’s session behaves the same on phone and browser.
One auth model
Alumni keep a lighter access
Planning, grades and requests are reserved for the current cohort. Alumni get a clear, typed refusal, and the app switches to a dedicated alumni home.
Graceful gating
One event, four channels
A new grade or absence reaches the student by email, the parents by email, the phone by push and the app’s inbox, and one failed channel never blocks the others.
Multi-channel
Less manual work for staff
Grades and absences are entered in bulk grids or imported from Excel, certificates are generated as PDFs in French or Spanish, and birthday messages go out on schedule.
Automation
(How it works)
From a grade to the student’s phone
Enter
Staff enter marks in a bulk grid or import them from an Excel template, checked row by row.
Record
Each mark is saved against the student’s period and subject.
Notify
Emails to the student and parents are queued and an in-app notification is written.
Push
A push reaches the student’s phone, and the grade appears in the app’s notifications and grades screens.
Inside the project
Captures of the delivered build, grouped by product. Select one to see it at full size.
Website
3 captures
Mobile app
3 captures
Back office
4 captures
Technology
- Back end
- Laravel 12
- PHP 8.2
- Sanctum
- Blade
- Alpine.js
- Front end
- Next.js 16
- React 19
- Vite 7
- Tailwind CSS 4
- GSAP
- Mobile
- Expo 57
- React Native 0.86
- React Navigation 7
- Reanimated 4
- Real-time & notifications
- Expo Notifications
- Laravel Mail
- Database queue
- Badges & documents
- dompdf
- Laravel Excel
- Security
- Cloudflare Turnstile
- Rate limiting
(Next project)
Club GTM
Sport & clubs



