I turned a food-safety exam blueprint into a 580-item open dataset (and what the schema taught me)
A while back I built a free ServSafe Manager exam trainer — foodsafeprep.com — and the hardest part was never the frontend. It was producing a question bank that was defensible : every item traceable to a rule, every rule traceable to a source. This post is the schema I landed on, and the three things that surprised me. The problem with "just write 500 questions" The exam is 90 questions,…
A food-safety exam developer transformed a blueprint into an extensive dataset with 580 items. The project's core was creating a defensible question bank, where each item corresponded to a rule and a source. The developer discovered that just writing 500 questions was insufficient because the questions needed to be traceable to specific rules and sources.
To address this, the developer created a schema where each question was represented as a JSON object containing various details such as id, topic, task, difficulty, question text, options, correct answer, explanation, reference, and set. The schema ensured that coverage was measurable, as it included a two-level taxonomy (topic + task).
The developer found that coverage was often uneven across different domains, with some areas being significantly underrepresented. To remedy this, the developer sorted the items by count and began writing questions from the least represented areas. Additionally, the developer realized that explanations were crucial in teaching the rules and preventing learners from falling into common traps.
The developer published the dataset as open data, which not only helped in identifying missing elements but also led to its reuse by others. The project's success demonstrated the importance of having a schema that could survive contact with other people's code and the value of making the dataset freely available under a CC BY 4.0 license.
Written by urgent.news from Dev.to's reporting — not their text. Machine-written — may contain errors; check the original before relying on it.