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
You can’t perform that action at this time.