Role & navigation map
Three portals, each with its own login. The admin portal is one application whose sidebar is filtered by role; the teacher portal is a separate mobile app. Nothing in this map requires a change when a fourth branch is added.
Portals
| Portal | Roles | Device | Shell | Release |
|---|---|---|---|---|
| Admin portal | Super Admin, Owner, Branch Admin, Operator | Desktop, min 1280px | Sidebar + top bar with branch switcher (template) | v1 |
| Teacher portal | Teacher | Phone / tablet, 360px+ | Top bar + 4-tab bottom bar (template) | v1 |
| Parent portal | Parent / adult student | Phone | Same mobile shell, different tabs | v1.5 |
Admin portal sitemap
Sidebar order, top to bottom. Indented items are sub-pages reached from the parent, not separate sidebar entries. Counts in the sidebar (e.g. Attendance) are live numbers for the selected branch.
Dashboard
6.10- Branch dashboard KPIs, today, alerts
- HQ consolidated Super Admin / Owner
CRM
6.1- Leads pipeline board + list
- Lead detail: follow-up log, trial booking, convert
- Customers payers: parents, adults, renters
- Customer detail: students, invoices, replacement count
- Students enrolments, attendance, notes
- Parents emergency contacts
Timetable
6.2 / 6.3- Week by Room default view
- Week by Teacher
- Day
- Year terms, breaks, holidays, off-days
- Classes list + create
- Class detail: students, slots, attendance per slot
- Slot detail: status, chargeable flag, history
Room Booking
6.4- Availability grid 30-min cells, idle capacity
- Bookings tentative / locked
- Booking detail: deposit, slots, invoice
Attendance
6.5- Pending Work slots > 24h unmarked
- Replacement credits per customer, book make-up
Products & Enrolment
6.6- Products syllabus / per slot
- Discount codes admin-only, bound to products
- Enrolments student × class × product
- Freeze / extend / transfer (HQ admin)
- Expiry & renewal alerts
Billing
6.7- Invoices per customer, multi-line
- New invoice incl. open amount
- Record payment
- Payments
- Fee Run From/To, Calculate Fees
- Run result: buckets
- Checking Table
- Past runs
- Overdue & ageing
Salary
6.8- Salary Run From/To, Calculate Salary
- Run result: sheets per teacher
- Past runs & versions
- Salary sheets Draft → Confirmed → Signed off
- Salary rules teacher × product × style
- Payout summary CSV export
Settings
6.9- Branches & rooms
- Styles & courses
- Yearly calendar per branch, manual
- Thresholds chargeable 24h, pending 24h, deposit refund 48h
- Invoice numbering
- Users, roles & teacher-branch links
Reports (6.10) live under Dashboard in v1; a separate Reports entry is reserved for v1.5.
Teacher portal sitemap
Four bottom tabs. A teacher linked to more than one branch picks the branch in the top bar; every tab then shows only that branch.
Home
- Today's classes tap → attendance
- Pending attendance own slots > 24h
- Notices
Schedule
- Week list own classes only
- Class detail
- Attendance: present / late / absent per student
- Student notes
Students
- My students phone numbers only if setting on
- Student notes
My Salary
- Statement per branch per period
- Line-by-line breakdown read-only
Parent portal (v1.5, reserved)
Not designed in Phase 1–4. Listed so replacement-credit and invoice screens are built with a customer-facing view in mind.
Role × screen access matrix
F full (create, edit, run) V view only O own records only – no access
| Screen | Super Admin | Owner | Branch Admin | Operator | Teacher | Notes |
|---|---|---|---|---|---|---|
| Branch scope | All + toggle | Own branch(es) | Own branch | Own branch | Linked branches | Only Super Admin has the "All branches" toggle |
| Dashboard | F | F | F | V | – | Consolidated HQ view for Super Admin and Owner |
| CRM: leads, customers, students, parents | F | F | F | F | O | Teacher sees own students; contact numbers per-teacher setting |
| Timetable & classes | F | F | F | V | O | Operator books trials into slots but does not create classes |
| Room booking | F | F | F | F | – | Operator enters renter bookings and deposits |
| Attendance | F | F | F | F | O | Admin/operator marks on teacher's behalf; record shows who marked |
| Pending Work | F | F | F | F | O | Teacher sees own pending slots on Home |
| Replacement credits | F | F | F | F | – | Admin books make-ups in v1 |
| Products & discount codes | F | F | F | V | – | |
| Enrolments | F | F | F | F | – | Freeze / extend / transfer between siblings: HQ admin only |
| Invoices & payments | F | F | F | F | – | Void requires reason; audit trail |
| Fee Run & Checking Table | F | V | F | – | – | Branch Admin runs it |
| Salary Run | F | V | F | – | – | Branch Admin runs and confirms |
| Salary sheet: Confirm | F | – | F | – | – | Blocked while attendance pending |
| Salary sheet: Sign off / Reject | V | F | – | – | – | Owner only; Super Admin can view but not sign |
| Salary statement | V | V | V | – | O | Teacher: own, per branch |
| Salary rules | F | F | F | – | – | Rate changes audited; bound rule on class unchanged |
| Settings: branch-level | F | F | F | – | – | Rooms, calendar, thresholds, invoice numbering |
| Settings: global & users | F | – | – | – | – | Branches, styles, roles, teacher-branch links |
Assumption to confirm in Phase 5: Owner can view Fee Run and Salary Run results but does not run them. Adjust the matrix if the Owner also acts as Branch Admin in a small branch.
Branch scope rules
- One branch at a timeThe branch switcher in the top bar sets
branch_idfor every list, form and run on the page. Switching branch reloads the page in that branch. - "All branches" is read-onlyOnly Super Admin sees it. It shows consolidated lists and dashboards; creating or running anything requires picking one branch first.
- Teachers switch, never mergeA multi-branch teacher sees one branch at a time; salary statements are per branch and never add up across branches.
- No cross-branch pickersA form never offers rooms, teachers, classes or customers from another branch. Transfers between branches are a Settings action, not a dropdown.