DionyxSMS: School Management Platform by Anyadi OnyekachukwuDionyxSMS: School Management Platform by Anyadi Onyekachukwu

DionyxSMS: School Management Platform

Portfolio project
Anyadi Onyekachukwu

DionyxSMS: A Multitenant School Management Platform

Short description (the card blurb) A full stack school management SaaS with tenant isolated data, role based access, auto marked exams, geofenced attendance, and live bus tracking, plus a marketing site with pricing.
Case study
Personal project. I designed and built DionyxSMS on my own to see how much of a school’s daily work could run in one multitenant system. It is not client work, and the school names, statistics, and testimonials on the marketing site are placeholder content.
Live marketing site: https://dionyx-sms.vercel.app/
The problem A typical school runs on disconnected tools: registers on paper, exams marked by hand, results in spreadsheets, and no view of where the school bus is. A software product for schools also has a hard constraint: many schools share one platform, and one school must never see another’s data. I wanted to build both the product and the isolation properly.
The approach
Tenant isolation at the database level: All schools share one Supabase Postgres database. Row Level Security policies scope every query to the signed in user’s school, so isolation is enforced by the database rather than only by application code.
Role based access: Sign in uses Clerk magic links. Admins, super admins, teachers, drivers, and other staff each see only the screens and data their role needs.
Exams that mark themselves: Students sit exams in an interface styled like a printed paper, with a letterhead and serif typography. Multiple choice answers are graded by database triggers the moment a student submits, so results exist before anyone has to mark anything.
Geofenced attendance: Each check in is scored by its distance from the school using the Haversine formula, so the dashboard shows whether someone was actually on site.
Live bus tracking: Drivers stream their position through Supabase Realtime onto a Leaflet map, with the session token refreshed periodically so long trips don’t drop out.
A marketing site built to convert: A responsive Next.js and Tailwind landing page with a feature overview, a three step onboarding flow, and a four tier pricing page (free, professional, advanced, custom) with monthly and yearly billing and a feature comparison table.
A problem worth mentioning Clerk user IDs are text, not UUIDs, so the usual Supabase auth.uid() check in RLS policies failed with casting errors. I rewrote the policies to compare against the sub claim from auth.jwt() instead. (Include this only if you are comfortable explaining it; it’s the kind of detail technical clients remember.)
My role Solo developer: database design, security policies, authentication, the application interface, the marketing site, and deployment on Vercel.
Stack Next.js, Tailwind CSS, Supabase (Postgres, Row Level Security, Realtime), Clerk, and Leaflet, built in VS Code with Claude Code.
Outcome A working multitenant platform that shows how one system can cover a school’s daily operations, from enrolment and attendance to exams, results, and transport, with data kept separate between schools.

0 likes · 2 views · Nov 3, 2026

Full stack multitenant school platform with role based access, auto graded exams, geofenced attendance and live bus tracking. Next.js, Supabase, Clerk.

Tags