EdTech · Student Information SystemDistrict Pilot

AISIS

One system for grades, attendance, and compliance - built role-first for a school district pilot, so a teacher, a counsellor, and a SpEd coordinator each see exactly what their role needs.

5
Scoped Roles
District Admin, Teacher, Substitute, Counsellor, SpEd Coordinator
4
Cited AI Features
Search, risk analysis, narrative reports, compliance review
100%
Audit-Traced Edits
Every attendance change is traceable, not just editable

Client Challenge

AISIS needed a Student Information System MVP that a real school district could pilot - not a single shared admin screen with visibility toggles, but genuinely scoped access per role. Compliance tracking for SpEd/504 cases needed to be a real workflow with an engine behind it rather than a spreadsheet bolted onto a grading tool, attendance records needed to be defensible with a full audit trail, and the platform had to isolate each district's data cleanly by subdomain from day one, with no possibility of cross-tenant leakage as more districts came on board.

Objectives

  • Give five distinct roles - District Admin, Teacher, Substitute, Counsellor, SpEd Coordinator - dashboards scoped to exactly what each needs.
  • Turn SpEd/504 compliance tracking into a real, engine-backed workflow rather than a spreadsheet.
  • Guarantee tenant isolation and a defensible attendance audit trail from the first pilot district onward.

Solution Design

We built the multi-tenant platform underneath the pilot: NestJS and MongoDB on the backend, Next.js 15 and shadcn/ui on the frontend, tied together by a shared contracts package.

A shared Zod DTOs and RBAC matrix package defines permissions once, with Jest tests covering route access and tenant scope directly against it, so access rules can't silently drift between frontend and backend. Every request resolves its tenant from the subdomain and cross-checks it against the JWT's tenant claim - a mismatch is rejected outright, not just filtered out downstream. Four AI features - natural-language search, risk analysis, narrative reports, and compliance review - run through an optional Anthropic API integration, with every output tied back to source-field citations, and a demo-mode fallback when no key is set.

Implementation Process

01

Phase 1: Discovery & Contracts

Mapped the five roles against every module and encoded the resulting RBAC matrix as shared Zod DTOs.

02

Phase 2: Backend & Tenant Isolation

Built the NestJS + MongoDB backend with subdomain-based tenant resolution and JWT tenant-matching per request.

03

Phase 3: Frontend, AI & Launch

Shipped role-scoped Next.js dashboards, wired the cited AI features, and launched via Dockerized services with GitHub Actions CI/CD.

Results & Business Outcomes

Role-First, Not Admin-First

A teacher sees their gradebook and attendance, a SpEd coordinator sees the compliance engine, and a District Admin sees it all - replacing a patchwork of spreadsheets and shared logins.

Verifiable AI, Not Blind Trust

Every AI-assisted read cites the source fields behind it, so staff can verify before acting rather than taking it on faith.

Technology Stack

NestJSMongoDBNext.js 15shadcn/uiZodAnthropic APIDockerGitHub ActionsJest

System Architecture Flow

01
Discovery

Mapped five roles against every module to define the RBAC matrix.

02
Contracts & Data Model

Shared Zod DTOs and RBAC matrix used by backend and frontend.

03
Backend Build

NestJS + MongoDB, tenant resolution via subdomain.

04
Frontend Build

Next.js 15 with shadcn/ui, role-scoped dashboards.

05
Launch

Dockerized services, GitHub Actions CI/CD.

Scope Note

Scheduling, staffing forecast, budget, and substitute coverage are demo-only modules in this build (no persistence) - shown to validate direction with the district, not yet shipped as production features.

ARCHITECTURE FIRST

Need an AI Strategy Before You Build?

Book a complimentary AI Architecture Review. We'll assess your use case, identify opportunities, evaluate technical feasibility, and provide clear implementation recommendations.