Skip to content
How much to read

Knowledge base

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_type does 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.

This page was written by a model from my own repositories and checked by a second one against the same sources. I did not write it, and no version of it was approved by me before it went up. How that works, and where it can still be wrong.