How ongechiosiango/shulebase works
ShuleBase is a multi-tenant school-management SaaS for Kenyan schools. Users enter through the public login or registration pages, then work in role-based portals: administrators manage school setup and users, teachers record attendance and grades or publish assignments and materials, and parents and students view academic and fee information. The README documents CBC/KCSE grading, bulk tools, report cards, and M-Pesa reconciliation. The sampled excerpts show login, role checks, database setup, and parts of grading and portal pages; other feature links reflect README descriptions, not inspected call sites.
Main entry points: teacher Teacher portal · Auth.php Authentication and roles · admin School administration · parent Parent portal
Components 20
Access and tenancy
- Login portal
public/index.php - School registration
public/register.php
School administration
- School administration
public/admin - Fee billing
core/Billing.php
Teaching and learning
- Grading engine
core/AcademicEngine.php - Teacher portal
public/teacher - Assignments and quizzes
public/student/assignments.php - Learning materials
public/teacher/learning_materials.php - Attendance tracking
public/teacher/mark_attendance.php - Report cards and exports
includes/cbc_report_tpl.php
Family services
- Student portal
public/student - Parent portal
public/parent
Shared platform
- Authentication and roles
core/Auth.php - Login rate limiting
core/RateLimiter.php - Database connection
config/db.php - MySQL database
- CSRF protection
core/Csrf.php - SMS messaging
core/SMS.php
Other components
- School users
- M-Pesa Daraja
Connections 28
- School users → Login portal: sign in
- School users → School registration: register school
- Login portal → Authentication and roles: authenticate
- Authentication and roles → Login rate limiting: check attempts
- Authentication and roles → MySQL database: query users
- School registration → MySQL database: create school
- Database connection → MySQL database: connect
- Database connection → CSRF protection: verify POST
- School administration → Authentication and roles: enforce role
- School administration → MySQL database: manage school data
- Teacher portal → Authentication and roles: enforce role
- Teacher portal → Grading engine: grade results
- Teacher portal → MySQL database: record schoolwork
- Teacher portal → Assignments and quizzes: manage assignments
- Teacher portal → Learning materials: publish materials
- Teacher portal → Attendance tracking: record attendance
- Student portal → Authentication and roles: enforce role
- Student portal → MySQL database: read learning data
- Parent portal → Authentication and roles: enforce role
- Parent portal → MySQL database: read child data
- Student portal → Report cards and exports: view results
- Parent portal → Report cards and exports: view results
- School administration → Report cards and exports: export results
- School administration → Fee billing: manage fees
- Parent portal → Fee billing: view statements
- Fee billing → MySQL database: reconcile fees
- Fee billing → M-Pesa Daraja: reconcile payments
- Teacher portal → SMS messaging: send communication