SE
  • Case study
  • E-learning
  • Next.js
  • LiveKit

How I built Schoolaris, an online tutoring platform for Moroccan students

A look inside Schoolaris: live classes, an AI tutor and a parent space for Moroccan pupils from collège to the bac, and the Next.js, Bun and LiveKit stack behind it.

· 4 min read

Schoolaris homepage: online tutoring for Moroccan pupils from collège to the bac

Key takeaways

  • 1Schoolaris is an online tutoring platform for Moroccan pupils from the first year of collège to the bac, following the official programme.
  • 2Students learn through recorded video classes, live sessions with teachers and an AI tutor, on the web or the mobile apps.
  • 3Parents follow each child's progress from their own account, without using the child's login.
  • 4One Bun and Elysia API serves the website, the back office and the mobile apps, with Next.js on the front and LiveKit for live video.

Schoolaris is an online tutoring platform for Moroccan pupils, from the first year of collège to the bac. It follows the official Moroccan programme and gives each student three ways to learn: recorded video classes, live sessions with teachers, and an AI tutor. Parents get their own space to follow along. I build and maintain it as a full-stack developer at CCL, and this is how it works under the hood.

The Schoolaris homepage: the whole Moroccan programme, from primary school to the bac, in one place.
The Schoolaris homepage: the whole Moroccan programme, from primary school to the bac, in one place.

What Schoolaris does for students#

On most online tutoring platforms you start from a subject. On Schoolaris a student picks their level and track (for example 2ème année bac, sciences physiques) and gets everything for that year in one class. The class catalogue is organised the way Moroccan schools are, so nobody has to translate their school year into our menus.

  • Video classes they can replay at any time, grouped by subject, with lessons, PDFs, quizzes and corrected exercises.
  • Live subjects: sessions with qualified teachers where students ask questions in real time.
  • An AI tutor available around the clock, which helps students work through their exercises.
  • Mobile apps on Google Play and the App Store, running on the same API as the website.
A class page: one year and track, with its subjects, lessons, total video time and the price in dirhams.
A class page: one year and track, with its subjects, lessons, total video time and the price in dirhams.

At the time of writing (September 2026), the counters on the homepage show 454 enrolled students, 18 active teachers and 77 programmes. Those numbers are pulled live from the platform's own data, not typed in by hand.

Who is Schoolaris for?#

Moroccan families first. The platform covers both the Moroccan and the French school systems, so a pupil in a mission school and a pupil in a public lycée each see their own programme. The interface runs in French, Arabic and English, and prices are in MAD.

The catalogue filters by level, track and school system: collège, tronc commun, 1ère and 2ème année bac.
The catalogue filters by level, track and school system: collège, tronc commun, 1ère and 2ème année bac.

How do the live classes work?#

Video runs on LiveKit (WebRTC), hosted on our own servers rather than a per-minute service, the same setup I use for the other CCL platforms. Teachers start and run their sessions from the back office, and the class state reaches every student instantly through server-sent events.

The live subjects page: every subject with upcoming sessions, filtered by level and track.
The live subjects page: every subject with upcoming sessions, filtered by level and track.

The parent space#

The parent space solves a real problem: parents want to see how their child is doing without logging into the child's account. A parent account links to one or more children and shows their progress, subjects, live classes and payments. Linking a child to a parent account goes through a request rather than happening silently.

The parent space: one account to follow each child's progress, without sharing the child's login.
The parent space: one account to follow each child's progress, without sharing the child's login.

The architecture behind the online tutoring platform#

Schoolaris is three applications that share one database:

  • The website and student/parent dashboards: Next.js with React, Tailwind CSS and next-intl for French, Arabic and English.
  • The back office: a second Next.js app for admins, staff and teachers, including the live session room.
  • The API: Bun and Elysia, the only piece that talks to MySQL (through Prisma). The website, the back office and the mobile apps all go through it.

The two Next.js apps sign users in with Auth.js, then call the API with short-lived tokens. The API re-reads the user's role and permissions from the database on every request, so removing a staff member's access takes effect straight away instead of when their session happens to expire.

One API in front of the database is also what makes the mobile apps practical: every rule about access, payments and progress lives in one place instead of being written again for each app.

Where AI actually helps#

AI sits in three places, each aimed at saving someone time:

  • For students: the AI tutor, with a credit budget per student so costs stay predictable.
  • For teachers: course generation that goes from an outline to chapters, then lessons and exercises.
  • For the team: AI-written course reports exported as PDF, and a log of AI spend and conversations in the back office.

Under the hood it uses the Vercel AI SDK with Claude and Gemini, so each task can use the model that suits it.

Payments that fit Morocco#

An online tutoring platform in Morocco has to handle more than cards, so Schoolaris accepts three routes: Stripe, CMI (the Moroccan card gateway), and payment through partner points where the family uploads a proof and staff confirm it. Access is sold as time-limited subscriptions, from one month to the whole school year, with invoices and receipts in the student's account.

What I'd do differently#

I'd put the API in place from day one. Schoolaris started with both Next.js apps reading the database themselves, and moving every action behind the API later was a big migration. The other lesson is right-to-left layout: supporting Arabic properly touches every screen, and it's much easier to design for it from the first component than to retrofit it.

See it live#

You can explore Schoolaris yourself, or browse the classes from collège to the bac. The rest of my work is on my projects page, and if you're planning an e-learning platform with live classes, tell me about it.

Frequently asked questions

What is Schoolaris?+

Schoolaris is a Moroccan online tutoring platform with video classes, live sessions with teachers and an AI tutor, covering collège to the bac in French, Arabic and English.

Which levels does Schoolaris cover?+

All three years of collège, tronc commun, and the 1st and 2nd years of the bac in each track, for both the Moroccan and the French school systems.

Can parents follow their child on Schoolaris?+

Yes. Parents get their own account that shows each linked child's progress, subjects, live classes and payments, without sharing the child's login.

What technology does Schoolaris use?+

Next.js and Tailwind CSS on the front end, a Bun and Elysia API with Prisma and MySQL, LiveKit for live video, and the Vercel AI SDK with Claude and Gemini for the AI tutor.

Share𝕏
Salaheddine Elfatimi

Written by

Full Stack Developer & Web Marketer · Marrakech, Morocco

I build modern, scalable web applications end to end, from frontend to backend, with a focus on performance, clean code and user experience.

RésuméGitHubLinkedIn

All posts