Navigation Sets
Control which sidebar menu items each role can see — configure per parent item and individual child item
Overview
Navigation Sets let admins control exactly which sidebar menu items each role sees. Instead of every staff member seeing the full sidebar, you can customize visibility down to individual sub-menu items per role.
For example:
- Teachers see Students, Attendance, Academics — but not Finance or HR
- Finance Officers see Finance and Analytics — but not Transport or Library
- Drivers see only Transport > Vehicles and Transport > Routes
- Librarians see only Library items
- Principals see everything except Database and Customisation
Admin and Super Admin roles always have full access and are not configurable.
The Matrix Editor
Navigate to Administration > Navigation Sets to open the visibility matrix.
Layout
The page shows a table with:
- Rows: Every sidebar section, parent item, and child item (expandable)
- Columns: Each configurable role (Principal, HOD, Teacher, Counsellor, Finance, Librarian, Staff)
- Cells: Checkboxes — checked means the role can see that item
How to Read It
| Principal | HOD | Teacher | Finance | Librarian |
─── CORE ───────────────
▸ Students | ✓ | ✓ | ✓ | | |
▸ Finance | ✓ | | | ✓ | |
Fee Structure | ✓ | | | ✓ | |
Invoices | ✓ | | | ✓ | |
Receipts | | | | ✓ | |
─── OPERATIONS ─────────
▸ Transport | ✓ | | | | |
Vehicles | ✓ | | | | |
Routes | ✓ | | | | |
▸ Library | ✓ | | | | ✓ |
Books | ✓ | | ✓ | | ✓ |In this example:
- Teachers can see Students and Library > Books, but nothing else in Finance or Transport
- Finance Officers see all Finance sub-items but not Students or Library
- Librarians see only Library items
Checking and Unchecking
- Click a child checkbox — toggles that specific item for that role
- Click a parent checkbox — toggles all children at once:
- If all children are checked → unchecks all
- If some or none are checked → checks all
- Parent shows a dash (—) when some but not all children are checked for that role
Expanding Parents
Click the arrow next to a parent item (e.g., "Finance") to expand and see its children (Fee Structure, Invoices, Receipts, etc.). Each child can be toggled independently.
Saving Changes
Click Save in the top-right to persist your changes. The configuration is stored per-institution, so different institutions can have different navigation setups.
Click Reset to discard unsaved changes and reload the current saved configuration.
Sticky Header
The role header row stays fixed at the top when scrolling down through the long list of menu items. The "Menu Item" column also stays fixed when scrolling right if there are many roles.
How It Works Technically
- Parent item visibility is stored in the
NavigationItem.visibleToRolesfield in the database - Child item visibility is stored in
Institution.settings.navVisibilityas a JSON map - The sidebar reads both when rendering: parent items are filtered by the navigation API, child items are filtered client-side using the visibility config
- If no visibility config exists for a child item, it inherits its parent's visibility
Available Roles
| Role | Typical Access |
|---|---|
| Principal | Full access to Core, Operations, Analytics, Automation |
| HOD | Core modules, Operations, Analytics, Users & Access (contacts) |
| Teacher | Students, Attendance, Academics, Self Service |
| Counsellor | Students, Admissions, Communication |
| Finance | Finance modules, Analytics |
| Librarian | Library modules |
| Staff | Basic Core modules, Self Service |
These are defaults — the whole point of Navigation Sets is to customize them per your institution's needs.
Tips
- Start with defaults — the pre-configured visibility works for most schools. Customize only when roles need different access
- Use child-level toggles — instead of hiding all of Finance from teachers, you might want them to see Invoices (so they know their own payment status) but not Fee Structure or Expenses
- Test after saving — log in as the role you just changed to verify the sidebar looks right
- Don't forget Self Service — this section (My Approvals, My Leave, My Attendance) should usually be visible to all staff roles