SaaS solution

Atlas App

The public platform for private tutoring in Morocco — find a teacher, follow your child, prepare for the baccalaureate

Atlas App

Atlas App is the public-facing half of the Atlas suite, built by SWIVIQ for Moroccan tutoring centres. It brings together on a single address what used to live in three separate tools: a student-to-teacher matching engine that ranks teachers on eight weighted criteria and explains every one of its choices, a parent portal where families see attendance, payments, report cards, handouts and library loans in real time, and an acquisition layer that automatically builds the "private {subject} lessons in {city}" pages from the teachers actually published. Everything is server-rendered, in three separately indexed languages — French, Arabic (right to left) and English — on top of an in-house reference of 17 municipalities and 126 neighbourhoods across the Rabat-Salé-Kénitra region that no open dataset publishes. Add to that the tools Moroccan families genuinely search for: the official baccalaureate average calculator across all seven tracks, prices published in the open, and parent reviews verified by WhatsApp code. Atlas App is designed, hosted and maintained by SWIVIQ.

Key features

  • Matching engine: 8 weighted criteria, 100 points, a stated reason for every teacher proposed
  • Parent portal: attendance, instalments, PDF report cards, handouts, library and timetable
  • One countdown per deadline — instalment, library subscription, book return
  • Parent reviews verified by a 6-digit WhatsApp code, one review per phone number
  • Moroccan baccalaureate average calculator across all 7 tracks, official coefficients
  • Teacher applications with automatic CV parsing: the form arrives pre-filled
  • Local "private {subject} lessons in {city}" pages generated from published profiles
  • Three genuinely indexed languages: French, Arabic right-to-left, English
  • Prices published in the open — where the market systematically hides behind a form
  • In-house reference of 17 municipalities and 126 neighbourhoods in the Rabat-Salé-Kénitra region
  • Trilingual sitemap and Schema.org markup generated on the fly, never by hand
  • Full server-side rendering: the page is readable before any JavaScript arrives
Atlas App at work

Eleven modules, one single journey

Atlas App is not a directory with a form attached. It is a complete chain: a family searches, an engine ranks and explains itself, the centre is notified, and the parent follows their child all the way to the report card. Every module below is live today — pick one to see what it does.

8weighted criteriaTeacher ranking is computed across eight criteria, for 100 points.
126neighbourhoods mappedIn-house reference for the Rabat-Salé-Kénitra region: 17 municipalities, 126 neighbourhoods.
3indexed languagesFrench, right-to-left Arabic and English, each at its own address.
7baccalaureate tracksThe calculator applies the official national-exam coefficients.
100 %of pages server-renderedThe HTML ships complete: the page is readable before any JavaScript arrives.
0contact details exposedRanking is computed server-side; the browser only ever receives public profiles.
En fonctionnement

The journey of one request, from search to report card

Five steps, five screens. This is the path a family in Rabat takes looking for a maths teacher for a final-year science student — and what the product shows at every moment.

Three questions, not a questionnaire

The family gives the subject, the level and their neighbourhood. Format, budget and availability are optional: every field left blank simply drops out of the calculation. A long form does not produce a better ranking, it produces fewer families.

Your need
Find a teacher
Benchmark

Against the platforms of the world

There is no shortage of tutoring management software: the United Kingdom, Canada and the United States publish excellent products. None of them was written for a Moroccan centre. The grid below is that of a tutoring centre in Morocco — twelve everyday requirements. On this grid, and this one only, Atlas comes first.

Atlas App Morocco24/241er
TutorCruncher United Kingdom8/242e
Teachworks Canada8/242e
TutorBird Canada4/245e
Pike13 United States3/246e
Spreadsheet + WhatsApp the real competitor5/244e
What a Moroccan centre does every single day — comparatif fonctionnel face à 5 éditeurs
What a Moroccan centre does every single dayAtlas AppMoroccoTutorCruncherUnited KingdomTeachworksCanadaTutorBirdCanadaPike13United StatesSpreadsheet + WhatsAppthe real competitor
Native Arabic, right-to-left interface Half the parents of a Moroccan centre read Arabic before French.
WhatsApp as the main channel to parents In Morocco an email goes unread; a WhatsApp message is read within the hour.
Cash and instalments, no card required Most payments are made in cash, at the desk, in several parts.
Public parent portal with PDF report cards Parents must be able to check attendance, balance and marks without calling.
Matching engine with an explained score A recommendation you cannot justify does not replace a phone call.
Local subject × city pages generated automatically Nobody types "teacher search": people type "maths tutor in Agdal".
Moroccan baccalaureate average calculator It is the most searched query among Moroccan students each spring.
Compliant Moroccan payslip (CNSS, AMO, income tax) A centre employs teachers: payroll is monthly and the law is local.
Leave under Moroccan labour law Balance, public holidays — including Hijri ones — and written decisions.
Library, handouts and book loans A Moroccan tutoring centre lends books and hands out printed material; that is daily reality.
Prices published openly, in dirhams Answering "how much does it cost" captures intent the whole market lets slip.
Multi-centre with granular permissions A group of centres shares a tool without sharing its data or its rights.
Couvert en standard Partiel — contournement, extension ou paramétrage Absent

Méthode. This comparison is built from the features each vendor publishes on its own site at the date shown. "Partial" means the function exists but requires a workaround, a paid add-on or manual configuration. The criteria are those of a Moroccan tutoring centre: on a different grid — a London tutoring agency, for instance — the ranking would be different, and we say so. Comparatif arrêté au 23 August 2026.

Deep dive

How it is built

A ranking that explains itself, criterion by criterion

Most teacher directories sort by signup date or by who paid for a subscription. Atlas App does the opposite: the subject is a FILTER — a teacher who does not teach it never appears — and everything else is a score out of 100 points, spread across eight weighted criteria.

Level carries 30 points, because an excellent middle-school teacher is not a final-year teacher. Area carries 20: distance is the number one reason families abandon home tutoring. Then come budget (14), in-person or online format (12), availability (10), experience (8), profile verification (4) and a free trial lesson (2).

Two rules make all the difference in practice. First, a criterion the family left blank penalises nobody: it drops out of the calculation instead of producing an arbitrary ranking from a deliberately short form. Second, every result carries its reasons and its caveats in plain words — "Teaches the requested level", "Works in Agdal", "Has not declared this level". A recommendation you cannot justify inspires no trust, and a family that does not understand the ranking phones the centre to redo it by hand.

RequêtePremier résultatSource
Requested level taught +30 points — "Teaches the requested level" 30/30WEIGHTS.level
Exact neighbourhood covered +20 points — "Works in Agdal" 20/20WEIGHTS.zone
Same city, other district +16 points — "Based in Rabat" 80 %zoneRank 1
Online teacher +14 points — "No area constraint" 70 %zoneRank 2
Levels not declared +15 points and a visible caveat 50 %incomplete profile
  • The subject filters; the seven other criteria score — never the reverse
  • A blank criterion is an ignored criterion, not a penalising one
  • An incomplete profile scores half rather than being excluded — otherwise new teachers stay invisible
  • Online lessons cancel the area constraint, and the score says so
  • Results appear BEFORE the family is asked for a phone number
  • The browser never receives teacher contact details — ranking is computed server-side

Everything families used to phone about, on one page

A tutoring centre spends its days answering the same four questions: did he show up, what do I still owe, how is he doing, when is the next payment due. The Atlas App parent portal answers all four without anyone picking up the phone.

Parents log in and see their child's real attendance — justified and unjustified absences kept apart, last attendance dated — the exact state of their instalments (total, discount, paid, outstanding, unpaid months), monthly report cards downloadable as PDF, the handouts assigned to them, their library loans with return dates, their timetable and their teachers' comments.

The detail that actually changes behaviour: every deadline carries its own countdown. Not one counter on the instalment, but one per deadline — the instalment, the library subscription, a book return. Those are precisely the dates people forget because they never see them.

  • Attendance: justified and unjustified kept apart, last attendance dated
  • Finances: total, discount, paid, outstanding, number of unpaid months, currency
  • Monthly report cards as PDF, generated on demand and never stored in the clear
  • Assigned handouts, downloadable from the same page
  • Library: books read, subscription, current loans and return dates
  • One countdown per deadline, not a single global counter
  • Payment receipts as PDF, without going through the front desk

One review, one verified phone number

A teacher directory is worth exactly what its reviews are worth. Reviews on Atlas App cannot simply be dropped in: the parent enters their name, rating, comment and Moroccan number, receives a six-digit code on WhatsApp, and the review is published only once that code is validated.

The safeguards live in the code, not in a policy page: five attempts maximum, an expiring code, one verified review per number-and-teacher pair, HTML stripped from comments, a ten-character minimum, and a rate limiter on the write route.

Finally, the two rating systems are linked. A verified review also counts as a vote in the teacher's main score — the one shown at the top of their profile and driving the homepage ranking. Without that link, the same profile displayed two different averages in two places, the kind of inconsistency that costs more than having no rating at all.

  • Six-digit code sent over WhatsApp before publication
  • Five attempts maximum, then a new code is required
  • One verified review per number and per teacher
  • The average is recomputed from the votes, never incremented — a counter drifts, a recomputation does not
  • Verified reviews and star ratings feed the same average

The Moroccan baccalaureate calculator, with the real coefficients

Every spring, the most searched query among Moroccan high-school students is how to compute their baccalaureate average. The sites that capture it are blogs: they answer, but they cannot offer a lesson afterwards. Atlas App answers AND offers.

The official formula is applied as is — 25 % continuous assessment, 25 % regional exam, 50 % national exam — across all seven tracks, each with its own national-exam coefficients. That is exactly the point students miss: the same subject can weigh 9 in one track and 3 in another, and many split their revision time blindly.

The scale is coded in one single place in the product. A calculator and a simulator returning two different results for the same student would destroy trust in the tool in a single visit.

  • 7 tracks covered, with per-track national-exam coefficients
  • The first-year regional exam is included: a quarter of the final mark, which many learn too late
  • A single set of constants shared by every screen
  • Three addresses redirect to the canonical page (calculator, simulator, average calculation)

The CV reads itself; the candidate retypes nothing

A centre that recruits loses half its candidates on the application form. Atlas App reverses the order: the teacher uploads a CV, the server reads it, and the form arrives already filled in — identity, highest degree, institution, years of experience, subjects, city, and even the photo from the CV when there is one. The candidate corrects instead of typing.

The extracted text does more than pre-fill: it is indexed. On the centre's side, a deep search finds "agrégation" or "mission française" inside the body of the CV even when no form field mentioned it. A file uploaded by a candidate is deleted from disk as soon as reading finishes, successfully or not.

  • Upload the CV, the server reads it, the form is pre-filled — then a human corrects it
  • The CV photo is recovered when present
  • CV text is indexed: the centre's deep search reads the document, not just the fields
  • The file is wiped from disk immediately after reading, including on failure
  • A dedicated rate limiter on the parsing route: it is expensive, so it is protected

Local pages built from the teachers who actually exist

A matching platform is not found through a search page: nobody types "teacher search", people type "maths tutor in Agdal". So Atlas App builds its local pages from the profiles actually published: every subject × city pair covered by at least one teacher becomes a "private {subject} lessons in {city}" address, with the matching teachers already ranked on it.

The reverse rule matters just as much: a combination nobody covers does not produce an empty page, it redirects. Serving pages with no real content degrades the whole site's ranking — the classic trap of mass-generated directories.

On top of that: one page per purchase-intent query (comparisons against foreign software, flagship modules, guides), prices published in the open where the entire market hides behind a form, and a seasonal back-to-school page serving all three audiences — families, teachers, centre owners — and linking them together.

RequêtePremier résultatSource
/en/cours-particuliers/mathematiques Subject page + ranked teachers 200real coverage
/en/cours-particuliers/{subject}/{city} Local page, if a teacher works there 200seo-coverage
Uncovered combination Redirect to the subject page 302no-empty-page rule
/logiciel-gestion-centre /application-gestion-centre 301server.ts
  • One page per subject × city pair actually covered, never more
  • Uncovered combination: a redirect, not an empty page
  • Trilingual sitemap generated on the fly, with hreflang alternates and x-default
  • Old addresses kept as 301s: dropping an indexed URL means losing what it earned
  • Schema.org markup (breadcrumb, FAQ, organisation) emitted with the page, not bolted on afterwards
  • Prices published openly — no Moroccan competitor does this

Three languages, three indexes — not a toggle

Plenty of "multilingual" Moroccan sites switch language with a button and keep a single address. To a search engine, such a site has one version: the other two languages do not exist.

Atlas App mounts every one of its pages under a language prefix. Each page therefore exists at three indexable addresses, each declaring its counterparts through hreflang, with an x-default. The language is read from the URL rather than from the browser: that is what lets the server produce the right version immediately, whereas a browser-stored preference does not exist yet when the server replies — and never exists at all for a crawler.

Arabic is not a translation laid over a Latin layout: the document flips to right-to-left, typography included, and every direction-sensitive component — arrows, timelines, sliders — flips with it.

  • French, Arabic and English, each at its own indexable address
  • hreflang fr-MA / ar-MA / en plus x-default on every sitemap entry
  • Language read from the URL, not the browser — the precondition for correct server rendering
  • Full right-to-left Arabic, directional components included
  • Old language-less addresses redirected with a 301 to their French counterpart

Server-rendered, code-split, cached in front

A matching platform that takes three seconds to show its first line loses the family before its first result. Atlas App is server-rendered: the visitor receives the HTML of the requested page, immediately readable, and only that page's own JavaScript is hydrated afterwards.

That split is not cosmetic. Statically imported, the site's pages shipped as a single 984 kB bundle the visitor downloaded in full just to read the homepage; the production budget refused to compile it at all. Every page is now loaded on demand.

In front of the rendering server, an nginx cache serves already-computed pages with validity windows tuned per address family, and keeps serving the last known version if the application restarts. In production, rendering runs as a two-instance cluster.

  • Full server rendering: content readable before JavaScript arrives
  • One page, one on-demand chunk (the single 984 kB bundle is gone)
  • nginx cache in front of rendering, per-family validity, stale-while-restarting
  • Two clustered instances, restart without downtime
  • A reveal animation never hides content for long: three safety nets, including a hard time limit
Gallery

The product story in pictures

Scroll down: each visual tells a chapter of the product.

The family's front door
Scene 01 / 08

The family's front door

Immediate search by subject, city and format. The promises are stated before the form: verified teachers, no subscription, follow-up on WhatsApp.

Three questions, then ranked teachers
Scene 02 / 08

Three questions, then ranked teachers

The journey fits in two steps: the need, then the preferences. Results appear before anyone is asked for a phone number.

The parent portal
Scene 03 / 08

The parent portal

Attendance, instalments, report cards, handouts, library and timetable — with one countdown per deadline.

The baccalaureate calculator
Scene 04 / 08

The baccalaureate calculator

Seven tracks, official national-exam coefficients, the 25 / 25 / 50 formula. The most searched query among Moroccan students each spring.

Prices, in the open
Scene 05 / 08

Prices, in the open

The market systematically hides behind a form. Answering "how much does it cost" captures high-intent search nobody else serves.

The teacher application
Scene 06 / 08

The teacher application

The CV is uploaded, read by the server, and the form arrives pre-filled. The candidate corrects instead of retyping.

The Arabic version, right to left
Scene 07 / 08

The Arabic version, right to left

Not a language toggle: a distinct indexable address, a flipped layout, and hreflang tying the three versions together.

The bridge to the management console
Scene 08 / 08

The bridge to the management console

The public platform brings families in; the Atlas console runs the centre. This page connects the two products of the suite.

Questions fréquentes

Ce qu'on nous demande avant de choisir Atlas App

What is the difference between Atlas App and Atlas?

Atlas App is the public face: the site families, students and teachers use — teacher search, parent portal, baccalaureate tools, applications. Atlas is the management console the centre's staff use internally: students, timetables, payments, payroll, statistics. Both share the same database and the same brand, and can be bought together or separately.

Can a teacher pay to rank higher?

No. The score is computed server-side from the eight criteria of the need the family expressed — level, area, budget, format, availability, experience, verification, free trial lesson. No paid tier is added on top, and every teacher shown displays the reasons they are in the list.

How do you know a parent review is genuine?

Every review goes through WhatsApp verification: a six-digit code is sent to the Moroccan number entered, and the review is published only after validation. Five attempts maximum, one verified review per number and per teacher, and the teacher's rating is recomputed from all votes rather than incremented.

Does the platform work in Arabic?

Yes, and not just at the label level. Every page exists at a distinct Arabic address, indexed separately, with a right-to-left document, adapted typography and flipped directional components. French, Arabic and English declare one another through hreflang, with an x-default.

Can Atlas App be deployed for another centre?

Yes. The platform is multi-centre: branding, contact details, prices, subjects, levels and areas are configured per centre. The shipped city and neighbourhood reference covers the Rabat-Salé-Kénitra region (17 municipalities, 126 neighbourhoods) and extends to other regions. Get in touch for a deployment.

What exactly does a parent see in their portal?

Their child's attendance with justified and unjustified absences kept apart, the state of their instalments (total, discount, paid, outstanding, unpaid months), monthly PDF report cards, assigned handouts, library loans, timetable, teachers' comments, and a countdown for every upcoming deadline.

Is family data isolated?

Yes. Each centre has its own space, and public pages never expose teacher contact details: ranking is computed server-side and the browser only ever receives public profiles. Uploaded CVs are deleted from disk as soon as parsing finishes.

Do families need a subscription to use Atlas App?

No. The public platform is free for families: teacher search, the parent portal, the baccalaureate calculator and the price pages are all accessible without a paid account. It is the centre that subscribes to the Atlas suite.