A comprehensive web-based application for managing primary school operations including student records, teacher assignments, timetables, grading, online fee payments, reports, and notifications.
- Frontend: React + Vite + Tailwind CSS
- Backend: Node.js + Express
- Database: PostgreSQL
- Authentication: JWT-based with Role-Based Access Control (RBAC)
- Payment Gateway: M-Pesa integration ready
- 👥 User Management (Admin, Teacher, Parent, Student roles)
- 📚 Academic Year & Term Management
- 🏫 Class & Subject Management
- 📅 Timetable Management with conflict detection
- ✅ Attendance Tracking & Locking
- 📊 Grading & Assessment with approval workflow
- 💳 Online Fee Payments
- 📈 Reports & Analytics
- 🔔 Notifications System
- 📝 Audit Logging
- 🛡️ System Administration
- Node.js 18+
- PostgreSQL 15+
- Docker (optional)
- Clone the repository
git clone <repository-url>
cd School-application/School-application- Backend Setup
cd backend
cp .env.example .env
# Edit .env with your database credentials
npm install
npm run dev- Frontend Setup
cd frontend
npm install
npm run dev# Start all services
docker-compose up -d
# View logs
docker-compose logs -f
# Stop services
docker-compose downSchool-application/
├── backend/
│ ├── src/
│ │ ├── config/ # Database & environment config
│ │ ├── middleware/ # Auth & error handling
│ │ ├── modules/ # Feature modules
│ │ │ ├── academic-years/
│ │ │ ├── attendance/
│ │ │ ├── audit/
│ │ │ ├── classes/
│ │ │ ├── grades/
│ │ │ ├── notifications/
│ │ │ ├── parent-portal/
│ │ │ ├── payments/
│ │ │ ├── reports/ # NEW: Reporting & Analytics
│ │ │ ├── students/
│ │ │ ├── system-admin/ # NEW: System Administration
│ │ │ ├── timetable/
│ │ │ └── users/
│ │ └── utils/ # Helpers & utilities
│ ├── Dockerfile
│ └── package.json
├── frontend/
│ ├── src/
│ │ ├── components/
│ │ ├── pages/
│ │ ├── services/
│ │ └── utils/
│ ├── Dockerfile
│ └── package.json
├── docs/
│ ├── ADMIN_MANUAL.md
│ ├── USER_MANUAL.md
│ └── API_DOCUMENTATION.md
├── docker-compose.yml
├── .github/
│ └── workflows/
│ └── ci-cd.yml
└── README.md
| Feature | Admin | Teacher | Parent |
|---|---|---|---|
| User Management | ✅ | ❌ | ❌ |
| Academic Years | ✅ | ❌ | ❌ |
| Classes | ✅ | 👁️ | 👁️ |
| Subjects | ✅ | 👁️ | 👁️ |
| Timetable | ✅ | ✏️ | 👁️ |
| Attendance | ✅ | ✏️ | 👁️ |
| Grades | ✅ | ✏️ | 👁️ |
| Payments | ✅ | ❌ | ✏️ |
| Reports | ✅ | ✅ | ❌ |
| System Admin | ✅ | ❌ | ❌ |
POST /api/auth/login- User loginPOST /api/auth/register- Register userPOST /api/auth/logout- LogoutPOST /api/auth/refresh- Refresh token
/api/academic- Academic years & terms/api/classes- Class management/api/timetable- Timetable/api/attendance- Attendance/api/grades- Grades & assessments/api/students- Student management/api/parent-portal- Parent portal/api/payments- Payments & fees/api/notifications- Notifications/api/audit- Audit logs
/api/reports- Reports & Analytics/api/system- System Administration
Full API documentation available in
docs/API_DOCUMENTATION.md
cd backend
npm testcd frontend
npm testThe project includes GitHub Actions workflow for:
- Backend unit tests
- Frontend build & lint
- Docker image building
- Production deployment
See .github/workflows/ci-cd.yml for details.
DB_HOST=localhost
DB_PORT=5432
DB_USER=schooluser
DB_PASSWORD=your_password
DB_NAME=schooldb
JWT_SECRET=your_jwt_secret
PORT=3000
NODE_ENV=developmentVITE_API_URL=http://localhost:3000
VITE_APP_TITLE=School Management SystemISC License
- Node.js & Express
- PostgreSQL
- React & Vite
- Tailwind CSS