School funding is tied to attendance accuracy
Incomplete records create funding gaps and compliance exposure. Most schools have no automated way to flag patterns before they become problems.
Hackathon project — Agents Track
School funding depends on accurate attendance. Tracking time outside class is often incomplete and follow-up is manual. Ava connects the teacher dashboard, hall-pass iPad, policy backend, and outbound voice agent into one working loop.
Attendance and hall-pass tracking are often disconnected. Teachers record absences. Students disappear for restroom breaks. Guardians are never contacted unless someone manually follows up. Ava was built to close that gap.
Incomplete records create funding gaps and compliance exposure. Most schools have no automated way to flag patterns before they become problems.
When a student misses class or spends 40 minutes on a restroom pass, no one calls the guardian automatically. Ava does — in English or Spanish.
Four components share a single FastAPI/Postgres backend. The teacher dashboard and hall-pass iPad both drive real database writes. The outbound voice agent closes the loop with guardians.
React/TypeScript app. Teachers view rosters, record present/absent/excused/unexcused, and see live pass status via WebSocket.
Same frontend app at a student-facing route. Students check out and back in. Pass events flow into the shared event stream instantly.
FastAPI + Postgres + pgvector. Ingests attendance and pass events, evaluates policy thresholds, raises alerts, and queues guardian calls.
Node.js + OpenAI Realtime API. Calls guardians bilingually, asks for a reason, confirms, and records the explanation back to the datastore.
Opens the dashboard, views today's class, and marks each student. Changes hit the backend in real time. Dashboards on other devices update via WebSocket without a reload.
Selects a destination on the iPad app. Ava saves the reason, start time, and student context. If the student isn't back in 15 minutes, an alert fires.
The dispatcher loop runs every N seconds. It detects overdue passes, raises alerts, and posts to the parent-comms endpoint. No manual trigger required.
Starts with a bilingual identity check. Guardian can answer in English or Spanish. Ava summarizes, confirms, and saves the explanation. Full transcript captured.
Python 3.12, FastAPI, SQLAlchemy 2 async, asyncpg, Alembic, PostgreSQL 16 + pgvector, Pydantic v2. Real-time events via Postgres LISTEN/NOTIFY and WebSocket fan-out.
React 18, TypeScript, Vite 5, React Router, Tailwind CSS, lucide-react. Calls the Ava backend over /api/* and subscribes to live events over WebSocket.
Node.js 20 ESM server, browser WebRTC audio, gpt-realtime-2, gpt-4o-transcribe, semantic VAD turn detection, Realtime function calling for excuse submission.
Ava's policy layer uses pgvector for semantic search across policy documents and a rule expression evaluator for threshold-based alerts. The 15-minute restroom rule is the demo case, but the architecture supports arbitrary policy rules.
Policy documents are chunked, embedded with OpenAI, and stored in pgvector. Ava can find the relevant policy for any attendance or behavior pattern.
Policy rules are stored as expressions. The evaluator runs against student timelines and raises typed alerts when thresholds are crossed.
Built at a hackathon in 2025 by a four-person team across product, engineering, and AI.
Source code
Includes the FastAPI backend, React/Vite frontend, outbound voice agent, Alembic migrations, pgvector policy search, alert dispatcher, and a quickstart.sh that brings up the full demo in one command.