Inspiration

Many students who want a higher SAT score never get a real tutor. Families who can pay get diagnosis, accountability, and a plan that changes when the student stalls. Everyone else gets static question banks or chatbots that only answer if you know what to ask. We wanted something closer to the tutor underserved students deserve: a system that notices struggle, chooses the next practice, rebuilds the week, and keeps going—not just a FAQ in a chat box.

What it does

AceSAT is an adaptive SAT learning agent that: Runs a short check-in (Math first, then Reading & Writing) Tracks mastery per skill and projects a rough score toward the student’s goal Runs focused practice on one skill at a time—no random Math ↔ Reading jumps Lowers difficulty when they miss, raises it after streaks, and reviews carefully Builds a weekly study plan and gentle reminders Lets students choose Math, Reading & Writing, or both Includes a Desmos-style graphing calculator on Math items Guides Reading with a short “read → think → answer” flow Generates more practice when the bank runs low (local generator + optional OpenAI) Students see a skill map, estimated score, plan, coach chat, and practice—all driven by the same model Ace uses to decide what comes next.

How we built it

Next.js + TypeScript + Tailwind web app Client mastery model and decision policy (diagnose, practice, scaffold, raise difficulty, switch skill, rebuild plan) Curated question bank plus procedural generation for endless unique items Optional /api/generate-question with OpenAI when a key is set Desmos embed for Math Progress saved in localStorage so demos work without a backend Structured write-up in docs/WRITEUP.md and a clear README

Challenges we ran into

Making it feel like an agent, not a chat UI with random questions Stopping repeat questions when the bank for one skill was small Keeping Math and Reading separate (Khan-style focus) without bad UX Running without paid APIs so classrooms still work offline-ish Cleaning UI copy so it sounded human, not “Level-up d5 · Mission 3/5” Accomplishments that we're proud of A real observe → decide → act loop students can feel in practice Skill missions, plans, reminders, and section choice that work as one product Unlimited practice without requiring an OpenAI key Desmos + guided reading in the same flow Ship-ready repo: source, README, write-up—no secrets or node_modules

What we learned

Great tutoring is mostly good decisions about the next action, not long essays Small skill banks need generation + anti-repeat rules or students notice immediately Product language matters as much as the algorithm Equity-minded tools should degrade gracefully when cloud APIs aren’t available

What's next for AceSAT

Larger certified item bank and better score calibration Teacher dashboard and multi-student progress (without privacy drama) Spaced review and email/SMS reminders tied to the weekly plan Stronger LLM tutoring explanations when keys exist, still with a solid offline mode Classroom pilots with counselors in schools that rarely get SAT tutoring

Built With

Share this project:

Updates

Submission history