AI Student Summarizer
An AI-agent prototype that turns a student's attendance, notes and grades into one narrative teacher-facing summary
A TypeScript backend prototype built around one idea: give a teacher a single narrative overview of a student — strengths, gaps, and next steps — generated by an OpenAI agent that decides which of six data tools to call (student info, attendance, notes, grades, assessment results, attendance register) rather than being handed one flat prompt.


A prototype that runs against mock data rather than a production feature; the repository is private. The agent's tool architecture is explained below.
About this project
The agent, built on OpenAI's agent/tool-use primitives rather than a hand-rolled prompt loop, is instructed to act as "a helpful assistant for teachers" and to always return four sections: an overall summary, strengths, areas for improvement, and actionable recommendations. It's given six Zod-validated data tools — student info, attendance, notes, results, assessments and the attendance register — and left to decide which to call and in what order to answer a single request: "provide a student overview for user {id}."
Each tool is a thin Axios GET back to the same Express server's own REST endpoints, which stand in for what would be real school-data APIs. That data shape — a profile, an attendance summary, freeform teacher notes, per-subject homework/quiz/exam grades, a separate assessment/quiz-sets schema, and a separate present/absent/leave attendance register — mirrors a typical school-data vocabulary without being wired into any production system: this is a standalone exploration of the pattern, not a shipped integration.
The whole thing is one endpoint driving one agent run against a mock student held in memory — no database, no auth, no persistence. It's a small, working demonstration of OpenAI's agent/tool-use pattern applied to a real domain problem — not a production AI feature.
Key features
- Six typed, Zod-validated tools (student info, attendance, notes, grades, assessment results, attendance register) that the agent chooses among and sequences on its own to answer a single "give me a student overview" request
- A single structured instruction set that requires the model's reply to always cover four sections: overall summary, strengths, areas for improvement, actionable recommendations
- One endpoint drives the full agent run keyed by student ID; the six GET endpoints double as the tool backends the agent calls into
- Built on OpenAI's tool-use primitives rather than a hand-rolled prompt-and-parse loop
More in AI & Automation
Streaming AI Chat App
AI chat that streams replies live — with visible reasoning, tool calls and a multi-provider model catalog
A Flutter AI-conversations app where every reply streams over a live WebSocket connection, with the model's reasoning steps and tool calls (web search, automatic model routing) visible as they happen. Sign-in is a passwordless magic link — the app is usable as a guest before that — and users pick from a searchable, multi-provider model catalog with free and premium tiers.
~/sherazi.dev$./say-hello
Say hello.
Questions about a case study, one of the packages, AI tooling or Flutter in general are always welcome.
// or browse the packages on pub.dev(opens in a new tab)