Moat: Ensure that the past papers UIUC students practice on the open-book website can genuinely help them improve their exam performance.

What did you build and how does it address the prompt?

OpenBook is a past-exam sharing site for UIUC students. Upload one exam to earn a Credit, and spend a Credit to unlock another.

Target users: UIUC students studying for midterms and finals.

Their pain points:

  • Past exams are scattered across group chats and old sites, so they're hard to find.
  • Most people take and few give back.
  • Files can be blank, blurry, duplicated, or from the wrong course.
  • Nobody checks that users are actually UIUC students.

How OpenBook solves them:

  • Only @illinois.edu emails can sign up.
  • New users get 3 Credits. Uploads earn Credits, and downloads cost them.
  • Every upload is checked automatically (duplicates, real course and semester, and quality), so no human reviewers are needed.

How did you build it? What tools did you use, what issues did you run into, and how did you overcome them?

Tools: plain HTML, CSS and JavaScript for the frontend. Firebase (Auth, Firestore, Storage, Cloud Functions) for the backend. The OpenAI API for the AI checks. The official UIUC Course Explorer data for course search and verification.

Issues and fixes:

  • Frontend and backend built at the same time: we put all data calls behind one module with a mock, so swapping in Firebase later is easy.
  • Duplicate exams in different formats (scans, re-exports): we compare the text of each paper, then let AI make the final call, since sharing the same exam can be legitimate.
  • Credit farming: Credits are paid only once per paper, only after it passes every check, and only by the server.
  • AI cost: we send text instead of images, which keeps each check under 1 cent.

Status: the backend is built and tested. The frontend is finished and demoable. Connecting the two is the next step.

How can you implement this further?

  • Connect the frontend to Firebase and deploy it.
  • Add a "report this paper" button and upload limits to prevent abuse.
  • Add OCR so scanned papers get the same checks as PDFs.
  • Add a takedown process for instructors, so OpenBook follows UIUC academic integrity rules.
  • Expand to other universities, since the system only needs a school email domain and a course catalog.

Built With

Share this project:

Updates

Submission history