Skip to content

Macneyste/school-management-system

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

# School Management System (MERN) Production-ready School Management System for Somalia schools with secure RBAC, multi-tenant readiness, and modular architecture. ## Stack - Backend: Node.js, Express, MongoDB, Mongoose, JWT, Zod, Swagger, Jest/Supertest - Frontend: React + Vite, TailwindCSS, React Router, React Query, React Hook Form + Zod ## Features Delivered - JWT auth with access + refresh token rotation - Role-based access control with role + permissions - Multi-tenant-ready data layer (`schoolId` on school data) - Core modules: - School setup - Students + parents + staff - Attendance - Timetable (teacher/room conflict checks) - Exams + marks + publish + report card - Fees, invoices, payments, finance reports - Announcements + notifications + inbox - Documents/resources upload abstraction - Reports/analytics dashboard - Audit logs - Pagination/filtering/sorting in list APIs - Centralized validation and error handling - Swagger docs + Postman collection + seed script - i18n-ready frontend (English/Somali toggle) ## Project Structure ```txt . ├─ backend/ │ ├─ src/ │ │ ├─ config/ controllers/ docs/ middlewares/ models/ │ │ ├─ routes/ scripts/ services/ tests/ utils/ validators/ │ │ ├─ app.js │ │ └─ server.js │ ├─ docs/API_ENDPOINTS.md │ ├─ postman/School-Management.postman_collection.json │ └─ README.md ├─ frontend/ │ ├─ src/ │ │ ├─ components/ lib/ pages/ services/ state/ │ │ ├─ App.jsx │ │ └─ main.jsx │ └─ README.md └─ package.json ``` ## Step-by-Step Setup 1. Install dependencies for all workspaces: ```bash npm run install:all ``` 2. Configure backend env: ```bash cp backend/.env.example backend/.env ``` 3. Seed initial data: ```bash npm run seed:backend ``` 4. Start backend API: ```bash npm run dev:backend ``` 5. Start frontend: ```bash npm run dev:frontend ``` 6. Open: - Frontend: `http://localhost:5173` - Swagger: `http://localhost:5001/api-docs` ## Seed Credentials - SuperAdmin: from `backend/.env` - SchoolAdmin: `admin@mes.edu.so` / `Admin123!` - Teacher: `teacher@mes.edu.so` / `Teacher123!` - Accountant: `accountant@mes.edu.so` / `Account123!` - Parent: `parent@mes.edu.so` / `Parent123!` ## Somalia-Specific Notes - Payment methods include integration-ready placeholders for `edahab` and `sahal`. - Student ID format: `SCH-2026-000123`. - Somali + English locale foundation included in frontend state. ## Backup Strategy Note - Daily `mongodump` with rolling retention. - Weekly encrypted offsite backup. - Monthly restore validation to staging. ## More Documentation - Backend guide: `backend/README.md` - API list + sample JSON: `backend/docs/API_ENDPOINTS.md` - Postman collection: `backend/postman/School-Management.postman_collection.json` - Frontend guide: `frontend/README.md` # school-management-system

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages