~/nabeel
Back to projects

Jul 2025 — Mar 2026

GenStudy AI

An AI-driven learning environment with dynamically generated quizzes and real-time coding interviews, built on Flask and the Gemini API.

Private project — no public repo or demo yet.
GenStudy AI preview

Problem & context

Static practice material — the same fixed question bank for every student — doesn't adapt to where an individual student is actually struggling, and gives teachers little visibility into how a class is progressing in real time.

Built as an AI-driven learning platform where quizzes and coding interview prompts are generated dynamically rather than pulled from a fixed bank, with separate teacher and student experiences.

Constraints

  • Teacher and student roles need clearly separated permissions and views
  • Quiz and interview content had to be generated on demand, not pre-authored
  • Needed a monitoring dashboard teachers could actually read at a glance

Trade-offs

  • Dynamic generation vs. predictability: AI-generated quizzes are more adaptive than a static bank, at the cost of needing guardrails so question difficulty and format stay consistent.
  • Kept the stack intentionally lean (Flask + SQLite) for a project of this scope rather than reaching for heavier infrastructure the use case didn't need yet.

How it fits together

A Flask backend exposes REST APIs consumed by the student and teacher-facing views. Quiz and coding-interview content is generated on request through the Gemini API rather than served from a static bank, and role-based authentication determines which endpoints and views a given user can reach.

Screenshots

Add UI screenshots or state walkthroughs here — the student quiz view, the teacher monitoring dashboard, and the coding interview interface are good candidates.

Results

  • Dynamically generated quizzes and real-time coding interviews via the Gemini API
  • Role-based authentication separating teacher and student experiences
  • Monitoring dashboards giving teachers visibility into student progress

Lessons learned

Designing role-based access early — before adding features — made it much easier to keep the teacher and student experiences from leaking into each other as the platform grew.

Talk about a similar project