Skip to content
Technova
Web + Android AppLive

Mr. Kyrillos Kased

مستر كيرلس قاصد

A mathematics platform across six grade levels: an Android app for the student, a control panel for the teacher, a read-only sign-in for the parent, and one Laravel API holding the rules. Equations are stored as ordinary LaTeX and drawn in Arabic notation — ٥ rather than 5, جا rather than sin, and the whole line reading right to left.

Mr. Kyrillos Kased — desktop interface
Mr. Kyrillos Kased — phone interface
ClientMr. Kyrillos Kased — Mathematics
IndustryEducation
TypeWeb + Android App
Platforms
webmobileapiadmin

A maths platform that writes its equations in Arabic.

Part of our education platform
Android app on Google Play, with a landing site, an admin panel and a student web app
Arabic mathematical notation, with an equation editor built from scratch
Guardian sign-in — a read-only monthly report on the student’s own account
QR attendance: the student’s app shows a signed code, the centre scans it
Self-marking exams with review rules, attempt limits and rankings
Certificate and honour-list images generated per exam and exported as a batch
Video lessons with watch progress, attachments and HLS for self-hosted files
Device-bound accounts, encrypted fields and a security audit log
Technologies
FlutterLaravelNext.jsMySQLFirebase FCMEd25519Arabic RTL

An Egyptian maths class does not read left to right.

The ordinary problems came first: six grade levels each with their own months and units, a way to tell without asking which students are keeping up, and a subscription that cannot simply be handed to a friend. Those are solvable with structure and with account security built into the product rather than written into the terms of service.

The problem with no off-the-shelf answer was the mathematics itself. Every renderer available writes 5, sin and lim, left to right. That is not the notation on the paper the student actually sits — an Egyptian exam is written with ٥, with جا and نها, and with the equation running right to left like the sentence around it. A maths platform that draws its equations the wrong way round is asking the student to translate before they can even start.

Three sides of one API.

The landing site, the admin panel, the student web app and the API each run on their own subdomain, and the Android app talks to the same API as all of them.

The teacher’s panel

Where the curriculum is built and the term is run — grades, months and units, then the lessons, exams, groups and subscriptions hanging off them.

  • Curriculum tree: grade → month → unit
  • Exams, question banks and grading review
  • Groups, subscriptions and attendance sessions

The student’s app

Flutter, in clean-architecture layers, with a local cache underneath so a weak connection degrades the experience instead of ending it.

  • Lessons with resume, attachments and progress
  • Exams with review, rankings and attempt limits
  • Notifications with deep links into the right screen

The Laravel API

Access and refresh tokens, a device lock, and a signature checked on every request. The rules live here, so no client can be trusted into breaking them.

  • JWT with refresh, plus one-device binding
  • Ed25519 request signing and an audit log
  • Scheduled auto-submit, attendance and cleanup

LaTeX in, Arabic out.

The equation is stored as ordinary LaTeX — \frac{5}{8}, \sin, \lim — because that is portable and because nothing in the database should have to change to support a second language. The Arabic is a translation layer applied at the moment of drawing: 5 becomes ٥, \sin becomes جا, \lim becomes نها. It runs one way only, so two teachers on two devices, or a question exported and re-imported, always produce the same bytes. Only the picture is localised.

The layout is mirrored with it. An Arabic equation is written right to left like the sentence around it — the integral sign sits on the right with its integrand running off to the left. Numbers are the exception: ١٠ reads as ten whichever way the line runs, so runs of symbols are drawn as one string and handed to the Unicode bidi algorithm rather than placed glyph by glyph. None of this exists as a package, so the equation editor underneath it — the parser, the serializer, the symbol palette and the input field — was written for this project.

Built for three people at once.

The student studies, the teacher runs the term, and the parent — who pays for it — finally has something to open.

The parent has a way in

A guardian-mode token on the student’s own account opens one read-only monthly report: attendance session by session, exam marks, and how much of each video was actually watched.

And it cannot leak a mark

A score the teacher has not released yet is withheld from the parent too, so the report never becomes a side channel for a result the student has not seen.

Certificates by the hundred

After an exam the teacher generates a certificate image for every student and an honour-list board, then exports the run as one archive. They render one at a time, so a batch of a thousand costs the memory of one.

Attendance by QR

The student’s app shows a signed code and the centre scans it. The signature is checked server-side and the token is recorded, so the same code cannot be shown twice.

Video that reports back

Playback position is kept per lesson and watched seconds roll up per month. Files hosted on our own server are served as HLS; YouTube stays external, so the server carries no streaming load for it.

One student phone, one parent phone

Each account binds to its devices in named slots — one for the student, one for a guardian — so a subscription cannot quietly become a group purchase.

More work

Have a project like this one?

Tell us what you're building and we'll come back with how, what it takes, and how long.

Start Your Project