Inspiration

Standardized tests like the SAT can make or break college opportunities — but quality test prep is expensive and out of reach for many students in underserved schools. We wanted to build something that gives every student access to a tutor that actually adapts to them, not a one-size-fits-all prep book. With powerful open AI models now accessible, we saw a chance to put a real adaptive tutor in every student's pocket, for free.

What it does

AceSAT is an AI-powered SAT tutor that:

  • Diagnoses a student's strengths and weaknesses through a 3-question onboarding quiz
  • Creates a personalized 4-step study plan targeting weak categories using NVIDIA NIM (nemotron-3-super-120b-a12b)
  • Adapts question difficulty in real time based on right/wrong answers
  • Tracks progress locally — scores, weak areas, and attempt history — using a Room database
  • Navigates the curriculum automatically, always steering the student toward their next weak spot

It's not just a quiz app — it actively steers the student's learning path like a real tutor would.

How we built it

  • Android app: Kotlin + Jetpack Compose for the UI, Room for local persistence, Retrofit/OkHttp for networking
  • Backend security proxy: Node.js + Express, so API keys never touch the client — it forwards requests securely to NVIDIA NIM and includes an offline fallback mode with mock questions when no key is present
  • Web simulator: A single-page HTML/CSS/JS app that mirrors the Compose client, so judges and users can try the full experience instantly in a browser without installing an APK
  • Design system: A custom Neobrutalist theme — cream backgrounds, thick black borders, flat offset shadows, and bold Space Grotesk typography — to make the app feel distinct, playful, and confident
  • CI/CD: GitHub Actions pipeline that builds and releases the APK automatically on every push to main

Challenges we ran into

  • Balancing a fully custom Neobrutalist UI (thick borders, flat shadows, press effects) with Jetpack Compose's default Material theming took real trial and error to get it feeling native and responsive.
  • Designing the adaptive logic so difficulty scaling felt genuinely responsive rather than arbitrary — tuning how quickly the agent should escalate or ease off based on performance.
  • Making the app usable without an API key was important for accessibility and demo reliability, so we built a full offline fallback engine into the backend proxy.
  • Keeping API keys secure while still making local testing and web simulation frictionless for judges.

Accomplishments that we're proud of

  • Built a genuinely adaptive AI agent — not just a static quiz — that diagnoses, plans, and adjusts in real time.
  • Shipped three fully working pieces (Android app, backend proxy, and web simulator) that all interoperate.
  • Created a distinctive, cohesive Neobrutalist design system from scratch rather than relying on default UI kits.
  • Set up automated CI/CD so the APK builds and releases without manual steps.
  • Made the whole experience accessible offline, so the app works even without an API key.

What we learned

  • How to design and prompt an LLM (NVIDIA NIM / nemotron) to reliably generate structured, actionable study plans rather than generic advice.
  • The importance of building an offline-first fallback for demo reliability and accessibility.
  • How to architect a secure proxy layer so API keys never touch client devices.
  • Practical lessons in Jetpack Compose theming to implement a fully custom, non-Material design language.

What's next for AceSAT

  • Expand the diagnostic quiz beyond 3 questions for finer-grained weak-area detection.
  • Add spaced repetition so previously mastered topics are periodically reinforced.
  • Introduce peer/classroom features so teachers can track student progress across a whole class.
  • Support additional standardized tests (ACT, PSAT) using the same adaptive agent architecture.
  • Move from local Room-only storage to optional cloud sync so students can pick up progress across devices.

Built With

Share this project:

Updates