projects / easemysemester / decisions
Question screen drops exam marks, shows question type instead
The mobile question screen's design called for a mark allocation the AKU past papers never printed, so v2 shows the question's type (long answer, short note, explain why) in that slot instead.
decision · current · updated 2026-09-15 · EaseMySemester case study
See overview, mobile PWA design and the build.
Context
The locked design's question screen drew a band row of chip + 11 of 23 papers · 10 marks.
No mark allocation exists anywhere in the schema, the importer, or the six-file, 2,563-line
source corpus: a full text search for "marks" and for bracketed or parenthesised numbers
returned zero hits outside paper numbers. The AKU papers this project is built from simply
never printed marks per question.
Decision
Drop the marks segment and show questions.question_type in its place: long renders as
"Long answer", short as "Short note", explain_why as "Explain why". The column is
NOT NULL, CHECK-constrained to those three values, and fully populated, so the swap needed
no migration, parser change, or re-import. The mapping lives in one place
(src/lib/question-types.ts) rather than inline at the call site, and a type absent from the
mapping fails loudly in development rather than rendering a raw enum value to a student.
Alternatives rejected
- Invent a per-type mark constant (long = 10, short = 5). Rejected outright: it would sit in the same mono meta slot, beside a real verified figure ("11 of 23 papers"), and a student reads both as facts off the paper. An invented number next to a true one costs more than an empty slot.
- Drop the segment entirely, showing only the band. Considered first and built as an
interim state while the product owner decided; rejected as final because
question_typedoes the same job ("how much to write") using real data.
Why
Question type answers the same practical question marks were meant to answer, how much a student should write, using a value that came out of the papers rather than invented after the fact.
Consequences
The honest-gap state for a declined question also lists question type instead of marks, so even a question with no answer tells the student what kind of answer it wants.
Status
Decided by the product owner 2026-09-09 and shipped the same day.