Skip to content

MpheXison/School-Management-System

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 

Repository files navigation

📚 School Management System (SaaS) – MERN Stack

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.


🚀 Overview

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.


🎯 Features

🔐 Authentication & Authorization

  • JWT-based authentication
  • Role-Based Access Control (RBAC)
  • Roles: Admin, Teacher, Student, Parent

🏫 Multi-Tenant Architecture

  • Supports multiple schools on a single platform
  • Data isolation using schoolId
  • Scalable SaaS-ready structure

👥 User Management

  • Admin, Teacher, Student, Parent roles
  • Profile management
  • Role assignment

🎓 Student Management

  • Student profiles
  • Class assignments
  • Parent linking

👩‍🏫 Staff Management

  • Teacher profiles
  • Class allocation

💵 Fee Management

  • Track payments
  • Outstanding balances
  • Payment history

📅 Attendance Tracking

  • Daily attendance records
  • Absentee tracking

📊 Results & Reports

  • Record marks per subject
  • Generate academic reports
  • Export-ready structure

📢 Communication

  • Announcements
  • Notifications (email/SMS-ready)

👨‍👩‍👧 Parent Portal

  • View student performance
  • Track attendance
  • Monitor fees

🛠️ Tech Stack

Backend

  • Node.js
  • Express.js

Frontend

  • React (Hooks + Functional Components)
  • Tailwind CSS (optional)

Database

  • MongoDB (Mongoose ODM)

📂 Project Structure

Backend

/server
  /controllers
  /models
  /routes
  /middleware
  /utils
  server.js

Frontend

/client
  /components
  /pages
  /hooks
  /services
  /context
  App.js

⚙️ Installation & Setup

1. Clone Repository

git clone https://github.com/your-username/school-management-saas.git
cd school-management-saas

2. Backend Setup

cd server
npm install

Create a .env file:

PORT=5000
MONGO_URI=your_mongodb_connection
JWT_SECRET=your_secret_key

Run backend:

npm run dev

3. Frontend Setup

cd client
npm install
npm start

🔌 API Endpoints (Sample)

Auth

POST /api/auth/register
POST /api/auth/login

Users

GET /api/users
POST /api/users

Students

GET /api/students
POST /api/students

Attendance

POST /api/attendance
GET /api/attendance/:studentId

🔐 Security

  • Password hashing with bcrypt
  • JWT authentication
  • Role-based authorization
  • Input validation middleware

💰 SaaS Model

This system is designed as a subscription-based platform:

  • Starter Plan (Small schools)
  • Growth Plan (Medium institutions)
  • Pro Plan (Advanced features)

🌍 Deployment

  • Frontend: Vercel / Netlify
  • Backend: Render / Railway
  • Database: MongoDB Atlas

🔮 Future Improvements

  • Payment gateway integration
  • Mobile app (React Native)
  • Advanced analytics
  • Multi-branch support
  • LMS (Learning Management System)

🤝 Contributing

Contributions are welcome!

  1. Fork the repo
  2. Create a new branch (feature/your-feature)
  3. Commit changes
  4. Push to branch
  5. Open a Pull Request

📄 License

This project is licensed under the MIT License.


📧 Contact

For collaboration, support, or business inquiries:


⭐ Support

If you find this project useful, please give it a ⭐ on GitHub!

About

A cloud-based (SaaS) platform designed specifically for schools, colleges, and training institutions in South Africa. It simplifies daily administrative tasks, improves communication, and gives school leaders full visibility into operations—from student performance to fee management.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors