UI Pages

Every screen in the product, by surface.

Public site — /

Path Page
/ Home
/about About the school
/gallery Photo gallery
/blogs, /blogs/[slug] News and notices
/faq Frequently asked questions
/contact, /enquiry Contact and admission enquiry — enquiries land in the admissions pipeline
/privacy-policy, /terms-and-conditions, /cookie-policy Policies

Content, branding and navigation all come from settings. No school name is hardcoded anywhere.

Admin — /admin

Dashboard

Strength, attendance today, fees collected and outstanding, admissions in flight, and what needs attention.

Academics

Path Screen
/admin/academics/years, /terms Academic years and terms
/admin/academics/classes, /sections Year groups and their divisions
/admin/academics/subjects, /allocation Subjects and who teaches them
/admin/academics/periods The bell schedule
/admin/academics/timetable The grid — tap a period to set it. Clashes refused with the reason
/admin/academics/timetable/teacher The same grid from a teacher's side
/admin/academics/calendar Events and holidays
/admin/academics/syllabus, /lesson-plans Coverage and dated plans

Admissions

/admin/admissions — the pipeline, with the application form as a full page (identity, what they are applying for, guardian, assessment). /admin/admissions/waitlist — the waiting list with positions.

Students

Path Screen
/admin/students The roll
/admin/students/guardians Parent accounts
/admin/students/import Bulk CSV import
/admin/students/id-cards Printable ID cards
/admin/students/promote Year-end roll-over

Staff

/admin/staff (directory) · /admin/staff/qualifications · /admin/staff/documents · /admin/staff/salary-structures · /admin/staff/payroll.

Attendance

/admin/attendance (daily register) · /admin/attendance/period · /admin/attendance/staff (with staff-type and department filters).

Fees

/admin/fees/heads · /structures · /concessions · /invoices · /payments · /collect.

Examinations

/admin/exams · /admin/exams/schedules · /admin/exams/marks · /admin/exams/report-cards · /admin/exams/grade-scale.

Homework, communication, facilities

/admin/homework · /admin/communication/circulars, /leave, /notifications · /admin/library/* · /admin/transport/* · /admin/hostel/* · /admin/inventory/*.

Reports and settings

/admin/reports/* — nine reports, one self-describing screen, CSV export. /admin/settings/* — school, users and roles, master data, channels, theme, notifications.

Parent portal — /parent

Path Screen
/parent/login Email or phone, then a code, then a password
/parent/dashboard The home feed
/parent/attendance Day by day, with the recorded-days percentage
/parent/homework Set, due, submitted, graded
/parent/results Published results only
/parent/fees Invoices, balance, pay, receipts
/parent/circulars Announcements
/parent/settings Profile, channels, password

Teacher portal — /teacher

/teacher/dashboard (today) · /attendance · /timetable · /homework · /marks · /circulars · /settings.

Student portal — /student

/student/dashboard · /timetable · /homework · /attendance · /results · /circulars · /settings.

Screen conventions

Loading — every data-fetching screen renders a layout-shaped skeleton, not a spinner, so nothing shifts when the rows land.

Lists — DataTable gives search, sort, column visibility, CSV/print export and bulk actions. Tables scroll horizontally on mobile.

Forms — under 12 fields opens a modal, keeping the list on screen. Longer records take a full page: two columns, the record itself as titled panels on the left, and a sticky rail on the right holding Save and the photo. That rail is why Save is reachable on a 23-field form without scrolling back to the top.

Breadcrumbs sit above the page header, never inside it.

Overlays animate in and out from one shared motion vocabulary, and honour a reduced-motion preference by fading instead.

Dialogs become bottom sheets on mobile, because a sheet that scales looks like a mistake and one that travels does not.