TestGPT
AI exam question generator for Test-Correct
A proof of concept for Test-Correct that stores teaching notes and generates exam questions from them with AI. I worked on the backend structure.
Goal
Build a proof of concept for Test-Correct that helps teachers turn source material into exam questions. Teachers store and find their notes, generate questions from them with AI, and export the questions as CSV for Test-Correct.
This was our second project with the same five-person team.
Constraints
The assignment required Flask, server-rendered Jinja2 templates, HTML/CSS and SQLite, with handwritten SQL instead of an ORM. The code had to follow the MVC pattern.
We also had to reflect Test-Correct's visual identity and put a usable note-management workflow first, all within the teaching period.
Process
I focused on the backend so it could be maintained as the team added features: refactoring to MVC, models for notes and tables, category queries, SQL definitions in one place and a shared database connection.
I also built an early note-entry form, a notes table with filtering, category labels, navigation, template inheritance and the login integration. For setup I moved the API key into environment variables, fixed dependency compatibility, and kept the documentation and task notes up to date.
I worked across the whole app, but looking back I put more energy into the backend structure than into turning it into something coherent to demo.
Result
The team built a prototype, but the project did not pass assessment. By the presentation, the frontend and the workflow we demonstrated didn't show off the backend work.
A lot of implementation work didn't add up to a convincing demo. Individual retake projects followed, and mine is the event calendar below.
What I learned
Working on both frontend and backend doesn't automatically give you a coherent user experience. I put too much weight on internal structure compared to the complete workflow we had to demonstrate.
The failed assessment made me rethink how I balanced technical depth, integration and presentation. What I took from it: check the complete user journey earlier, so the work behind the interface turns into something people can understand and use.