Skip to main content
  • 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

  1. 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

  2. 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

  3. 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

  4. 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

  1. Enter

    Staff enter marks in a bulk grid or import them from an Excel template, checked row by row.

  2. Record

    Each mark is saved against the student’s period and subject.

  3. Notify

    Emails to the student and parents are queued and an in-app notification is written.

  4. Push

    A push reaches the student’s phone, and the grade appears in the app’s notifications and grades screens.

Captures of the delivered build, grouped by product. Select one to see it at full size.

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

Your project could be the next system we build.