I've embarked on one of my most ambitious projects yet — a full-stack, multi-tenant School Management System designed as a SaaS platform. In this post, I want to share why I'm building it, the architecture decisions I've made, and what I've learned so far.
Why a School Management System?
Having studied in schools where administrative processes are largely manual — paper-based attendance, handwritten report cards, verbal communication between teachers and parents — I saw firsthand how much time and effort is wasted. A modern, digital solution could transform how schools operate, especially in resource-constrained environments across Africa.
The Multi-Portal Architecture
The most interesting architectural challenge is the multi-portal design. The platform supports four distinct user types — Students, Teachers, Parents, and Administrators — each requiring separate authentication flows, permission systems, and tailored UI/UX experiences. This means maintaining four parallel interfaces that share a common backend but present entirely different views of the same data.
- Student Portal: Academic dashboard, assignments, timetables, and grade tracking
- Teacher Portal: Class management, attendance, grading, and communication tools
- Parent Portal: Child performance monitoring, fee payments, and school notices
- Admin Portal: Full system control, analytics, financial management, and school configuration
Tech Stack Decisions
I chose Next.js with TypeScript for the web application because of its server-side rendering capabilities and excellent developer experience. The backend runs on Node.js with Prisma ORM and PostgreSQL — giving me type-safe database queries and easy schema migrations. For the mobile app, React Native with Expo and NativeWind allows me to share design patterns across web and mobile platforms.
Building in Public
I'm building this project incrementally and in public. Starting with the Next.js web application, then building out the API, followed by the mobile app, and finally integrating everything together. Each phase builds on the previous one, and I'm documenting the entire journey. This approach lets me ship usable features early while maintaining a clear roadmap for the complete platform.
What's Next
Right now, I'm focused on Phase 1 — the web application built with Next.js. The immediate priorities are setting up the multi-tenant architecture, implementing the authentication system for all four portals, and building out the student management module. Follow along on my portfolio to see the progress in real-time!
