Case study
AI-Powered Student Information System
In plain English
District staff manage students, attendance, and special-education plans: each person only sees what they are allowed to see.
AI cites source fields and refuses to invent missing facts.
Who it is for
- District admins who need one place for students, staff, attendance, and compliance review.
- Teachers, counsellors, and SpEd coordinators who must only see the students they are authorized to access.
Problem
Districts need day-to-day student operations that are reliable and easier to defend under compliance review.
Sensitive data must stay scoped by role and tenant so each staff member only sees the students and workflows they are authorized to access.
Solution
We built a multi-tenant SIS with authentication and RBAC, student profiles, attendance, and SpEd/504 plan management. Staff manage demographics and grades, record attendance, track IEP/504 deadlines, and use Claude for natural-language search, risk analysis, narrative reporting, and IEP compliance review, with PII minimized and sources cited.
Role-scoped analytics include date-range filters. Planning screens for scheduling, staffing, budget, and substitutes exist as UI demos, not persisted backends. Next.js, NestJS, and MongoDB ship as a Docker monorepo to AWS ECR.
Outcomes
A role-scoped, multi-tenant SIS covering profiles, attendance, SpEd/504, and AI-assisted review.
Claude cites source fields and refuses to invent missing facts. Unnecessary PII never leaves for the model.
How it works
From login to a cited AI review
What we built
Staff product
Dashboard and students
Date-range trends, profiles, demographics, grades, and risk flags. CSV grade import for district admins.
Attendance
Present, absent, tardy, and excused. Summaries feed risk and AI.
SpEd / 504
IEP and 504 plans with annual review and triennial reevaluation deadlines, plus AI compliance review.
Grounded AI
Natural-language search, risk analysis, narrative reports, and IEP review, each citing source fields.
Admin and audit
Users, roster assignments, and an audit log of UI, API, and AI queries.
How it works
The Next.js staff app talks only to a NestJS API. Tenant is bound on the JWT; every later request is rejected if the tenant does not match. Guards enforce permission keys; student access is district, roster, caseload, or SpEd caseload.
A PII minimizer sends fact tuples to Claude. Responses must cite those fields. Missing facts return as missing instead of invented. Scheduling, staffing, budget, and substitutes are demo UI only.
Integrations
Anthropic Claude
Grounded district AI with PII minimization and source citations.
MongoDB
Multi-tenant student operations with tenant id on every document.
AWS ECR and GitHub Actions
PR checks, versioned images, and Dev/QA deploys.
Have a similar challenge?
Start a project