Normalize inputs first
Every supported file and web source enters the generation pipeline through a common textual representation.
Award-winning hackathon build
Testif.AI helps teachers and students turn documents and web sources into configurable tests and answer keys. I built the AI backend, including document preparation, parallel candidate generation, and the judge stage that selects the final non-duplicate questions.

A useful test generator cannot simply ask for ten questions and accept the first ten lines. Users choose question type, count, difficulty, grade level, and testing philosophy, while uploaded sources arrive as PDFs, presentations, documents, text, images, or URLs.
The backend normalizes the source material, then generates a candidate exam from each document concurrently. This preserves source coverage and avoids one long prompt becoming the only point of failure.
A second model stage sees the candidate pool and selects the best non-duplicate questions at the exact requested count for each question type. The judge can optimize the test as a whole instead of scoring isolated outputs with no view of redundancy.
Engineering choices
The implementation details matter because each one closes a specific failure mode or keeps an important boundary visible.
Every supported file and web source enters the generation pipeline through a common textual representation.
Independent candidates improve source coverage and keep ingestion latency bounded during the hackathon build.
The final model call enforces requested counts and removes duplicate or weaker questions across candidates.
Where it landed
The project won Best Educational Hack and placed second overall at HackUMBC 2024. The public repository remains available as an archived snapshot of the build.
Next case study
TermBook