Campus¶
Campus is Kwilo's ERP: the operational side of running an institution. It lives under /erp in the product app for staff and under a portal for learners and guardians.
Modules¶
Each module is switched on per institution through an erp_* entitlement, so a tenant sees only what it bought. Hiding a module returns 404, not 403, so the API never reveals what a tenant doesn't have.
| Module | What staff do there | Status |
|---|---|---|
| Admissions | Enquiry register, registration desk, merit and admit | Live |
| Students | The student record, demographics, statutory IDs, photos | Live |
| Forms | Institution-defined fields and form templates | In build |
| Fees | Structures, collection, online payment, receipts, reports | Live, reports in build |
| Attendance | Session marking, face attendance, consent, corrections | Live |
| Timetable | Weekly grid, safe swaps, solver-generated timetables | Live |
| Exam operations | Sessions, rooms, seating, hall tickets, invigilators, marks, marks documents | Live |
| HR and leave | Staff roster, leave applications and approvals | Live |
| Payroll | Payroll runs and payslips | Live |
| Library | Catalogue, loans, borrower view | Live |
| Helpdesk | Internal tickets | Live |
| ID cards | Card templates, generate and print | Live behind erp_id_cards |
| Analytics | Module dashboards and Ask Kwilo, shared with Classroom | Live |
Academic structure¶
Every module hangs off the institution's academic structure, which comes in two shapes:
| K-12 | Higher ed | PU college | |
|---|---|---|---|
| Structure | Class → Section | Program → Branch → Semester (→ optional batch) | PU program → Combination (PCMB, PCMC…) → Class 11/12 |
| Student placement | students.section_id |
student_levels rows, one per year |
student_levels |
| Vocabulary in UI | Class, section | Programme, branch, semester | Combination, class |
A cohort is the group of students who sit together: a K-12 section, a higher-ed batch, or a whole semester. Attendance, timetable and exam ops all resolve cohorts through one shared resolver, so a higher-ed admin never sees the words "class" or "section".
Org admins set this up in the onboarding wizard (/admin/onboarding) and edit it in academic setup (/admin/academic-setup).
Roles and access¶
Access is two layers: the module entitlement, then a permission check. See Roles and permissions.
Navigation¶
The Campus sidebar groups modules under Academics and Operations. A leading My Records group holds a staff member's own pages: My Leaves, My Payslips, My Library. Empty groups don't render.
Portal¶
Learners and guardians reach the parts of Campus that are about them: fee dues and pay-now, receipts, attendance, timetable, library loans, and parental consent for face enrollment.
Mobile¶
Kwilo Campus (apps/mobile-b2b, ai.kwilo.campus) is in Play internal testing. It covers courses, classes, assignments and submissions, attendance, people and the AI chat for faculty and institutional learners.