OpenVision

Write the questions. Sit the exam. Grade it. Read the results.

A digital examination platform, built as an open replica of the assessment system universities like the VU run on. It was my bachelor thesis project, and then the subject of the thesis itself.

Bachelor thesis2026Next.js · FastAPI · PostgreSQL · Prisma · Dockeropenvision.davidcvet.com

OpenVision's exam sessions: schedule an exam window, create a course, and the completed sessions below

The product

The whole life of an exam, in one place.

Four roles, constructor, reviewer, admin and student, each seeing only what their role allows, enforced on the server rather than hidden in the interface.

  1. Write

    Questions are versioned: editing one never rewrites the one an exam already used.

  2. Assemble

    An exam is a recipe, with rules for drawing questions from a bank at random.

  3. Schedule

    Scheduling freezes the exact versions of every question in it.

  4. Sit

    With extra time per student, such as thirty percent more, where it is needed.

  5. Grade

    Marking, question by question, and then the results.

The thesis

Can structure help an AI agent build software?

An AI coding agent rebuilt OpenVision from nothing but a specification, three times for each form of it, with the model and the prompt locked. Then every build was run, to see which ones actually worked.

SpecificationBuild 1Build 2Build 3Worked
Flat191 requirements in one long list
login fails
login fails
does not start
0 / 3
TreeThe same requirements, as a tree
works
login flaky
login fails
1 / 3
Tree + planThe tree, plus an implementation plan
works
works
works
3 / 3

One design choice separated them.

Every build whose login worked gave each sign-in a refresh token with a random part. The rest did not, so two sign-ins in the same second collided in the database. Only the implementation plan spelled that out.

The agents marked their own work as done.

Builds ticked off all 191 requirements while their login returned an error. You only find that by running it.

Nine builds are case studies, not a statistical proof, but the gradient held every time. I wrote the thesis with two fellow students, each of us running the same experiment on our own product; OpenVision was mine.

An exam platform, and the experiment it made possible.

One command, ./dev-up.sh --seed, starts the database, the API and the front end, filled with demo data.