A scalable, multi-tenant School Management System built with the MERN stack (MongoDB, Express.js, React, Node.js), designed for schools, colleges, and training institutions in South Africa.
This project is a cloud-based (SaaS) platform that helps educational institutions manage students, staff, finances, and communication in one centralized system.
It replaces manual processes like spreadsheets and paper-based systems with a modern, secure, and user-friendly solution.
- JWT-based authentication
- Role-Based Access Control (RBAC)
- Roles: Admin, Teacher, Student, Parent
- Supports multiple schools on a single platform
- Data isolation using
schoolId - Scalable SaaS-ready structure
- Admin, Teacher, Student, Parent roles
- Profile management
- Role assignment
- Student profiles
- Class assignments
- Parent linking
- Teacher profiles
- Class allocation
- Track payments
- Outstanding balances
- Payment history
- Daily attendance records
- Absentee tracking
- Record marks per subject
- Generate academic reports
- Export-ready structure
- Announcements
- Notifications (email/SMS-ready)
- View student performance
- Track attendance
- Monitor fees
- Node.js
- Express.js
- React (Hooks + Functional Components)
- Tailwind CSS (optional)
- MongoDB (Mongoose ODM)
/server
/controllers
/models
/routes
/middleware
/utils
server.js
/client
/components
/pages
/hooks
/services
/context
App.js
git clone https://github.com/your-username/school-management-saas.git
cd school-management-saascd server
npm installCreate a .env file:
PORT=5000
MONGO_URI=your_mongodb_connection
JWT_SECRET=your_secret_key
Run backend:
npm run devcd client
npm install
npm startPOST /api/auth/register
POST /api/auth/login
GET /api/users
POST /api/users
GET /api/students
POST /api/students
POST /api/attendance
GET /api/attendance/:studentId
- Password hashing with bcrypt
- JWT authentication
- Role-based authorization
- Input validation middleware
This system is designed as a subscription-based platform:
- Starter Plan (Small schools)
- Growth Plan (Medium institutions)
- Pro Plan (Advanced features)
- Frontend: Vercel / Netlify
- Backend: Render / Railway
- Database: MongoDB Atlas
- Payment gateway integration
- Mobile app (React Native)
- Advanced analytics
- Multi-branch support
- LMS (Learning Management System)
Contributions are welcome!
- Fork the repo
- Create a new branch (
feature/your-feature) - Commit changes
- Push to branch
- Open a Pull Request
This project is licensed under the MIT License.
For collaboration, support, or business inquiries:
- Email: admin@heyharrison.co.za
- Website: https://heyharrison.co.za
If you find this project useful, please give it a ⭐ on GitHub!