Glossary

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_json lists 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.action string (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 adds tenant_id, created_at, updated_at and 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.