Glossary
Shared vocabulary for NexSchool. When a term is used across the knowledge base, this is what it means.
Product & business
- NexSchool — the multi-tenant School ERP SaaS product.
- Tenant — one school. Has isolated data, its own subdomain, a plan, and its own users. “Tenant” and “school” are used interchangeably.
- Operator / Platform admin / Super-admin — a NexSchool employee who manages all tenants from the panel. Not a school user.
- Plan — a subscription bundle assigned to a tenant; its
features_jsonlists which modules the tenant may use. - Plan feature key — a string (e.g.
attendance,transport) that gates a module at the plan level. - Pilot — the initial paid rollout to a small set of Gujarat schools.
People & roles
- School admin — a tenant user with the seeded Admin role; runs the school from admin-web.
- Sub-admin — a delegated tenant admin with a narrowed, explicitly-chosen set of module permissions; optionally branch-restricted.
- Class teacher — teacher assigned to a class; can mark its attendance.
- Role — a named bundle of permissions, tenant-scoped and customisable.
- Permission — a global
resource.actionstring (e.g.student.read) checked on requests.
Academic structure
- Academic year — the school year that scopes classes, terms, fees, etc. One is “current” at a time.
- Term — a subdivision of an academic year.
- School unit / branch — a unit in the school’s hierarchy; the anchor for branch scoping (
Class.school_unit_id). - Grade — a grade/standard level.
- Medium — language of instruction.
- Class — a teaching group (grade + section + medium/programme), the anchor most other domains hang off.
- Subject / subject context — a taught subject and its contextual configuration.
Modules (product domains)
- Attendance — marking and viewing presence per class/date.
- Fees / Finance — fee structures, invoices, payments, receipts.
- Timetable / Schedule — the weekly slot grid and today’s derived schedule.
- Transport — buses, routes, stops, drivers, student enrollments.
- Hostel — buildings, rooms, beds, allocations, gate-pass and visitor workflow.
- Notifications / Announcements — templated messages, in-app + SSE + push, and school announcements.
Technical
- admin-web — the tenant-facing Next.js dashboard (
school-admin-panel). - panel — the operator-facing Next.js control plane (
super-admin-panel). - client — the Expo React Native mobile app.
- server — the Flask REST API.
tenant_id— the column present on every tenant-scoped row that enforces isolation.TenantBaseModel— the SQLAlchemy base that addstenant_id,created_at,updated_atand enables automatic scoping.- Tenant resolution — deriving the current tenant per request from subdomain/headers (
core/tenant.py). - Branch scoping — restricting a sub-admin to specific school units, anchored on Class, fail-closed (
core/branch_scope.py). - Plan gate —
@require_plan_feature('x'), orthogonal to permission checks. - God-login / impersonation — a super-admin entering a tenant’s admin-web with their own credentials.
- Login link — a Redis one-time code letting the panel open a tenant’s admin-web without re-entering a password.
- Access / refresh token — short-lived JWT for requests / long-lived token to mint new access tokens.
- SSE — server-sent events; the real-time channel for in-app notifications.
- Celery — the async task runner (Redis broker) for imports, dispatch, sweeps.
- Idempotency key — a per-attempt UUID that prevents a payment being recorded twice on retry.
- Envelope — the consistent
{ success, data }API response shape all clients unwrap.
Infrastructure
- EC2 / RDS / ECR / SSM — AWS compute / managed Postgres / container registry / remote-command service (used for deploy instead of SSH).
- Vercel — hosts the marketing site (and, prospectively, this knowledge base).
ADMIN_WEB_BASE_URL— env var used to build reset and login links; must be set in prod.