←  work / case-studies
case study · academic submission

The screen where a student agrees to lose marks.

An AI evaluation platform for professional education. My part was the student's side of it — everything between opening an assignment and the moment a submission becomes a grade, including the one screen where they decide to submit anyway.

open the live product ↗ the real build — signing in is one click, and the panel at the bottom-right runs the blocked-link and unreadable-scan paths on demand
four-week client engagement designed and built in code I owned the build product renamed to publish

01The problem

A student thinks the job is upload → submit → done. The system needs complete → readable → evaluable before grading can start at all. Nearly every platform reports that gap after submission, as a failure message.

By then it is not information, it is a verdict. The deadline has passed, the file is with the instructor, and the marks for whatever was missing are already gone. The student's first accurate picture of their own submission arrives at the exact moment they can no longer act on it.

Four separate gaps sit inside that, and they fail differently:

The client's own priority was not student experience — it was instructor load. Every escalation, every "I didn't know I needed that", every grade dispute lands on faculty. That reframed the work: nothing here earns its place unless it also reduces what reaches the instructor.

02What the decisions rest on

A team of six did this work, and most of the research was not mine, so every item names the role that owned it. The last column lists what nobody did. Each item says what it found, and which part of this page it changed.

Asked the client

The first client meetingThe vision, the scope of the student module, and two rules fixed on day one: no evidence, no credit, and the instructor has the final word.minutes · documentation designer→ 03 · the constraint
A client demo, end of week oneThe prototype, walked as one student's journey. It came back with three redirects: a single-document submission, validation split into fast and queued, and reasons to submit early.strategy lead · systems designer→ 04 · the student's path
The client's action items, week threeAmong them, what a student sees when an upload fails, which became its own flow.minutes · documentation designer→ 04 · the student's path

Read the market

A competitive audit of eleven platformsGrading and submission tools, handwriting-reading services and automated-scoring engines, read for how grading is made transparent, how handwriting is handled, and the gap between a system checking something and a student understanding it.the team→ 10 · sources

Mapped the problem

A design brief: four gapsAwareness, format and scan, interpretation and recovery, set against the client's business goals.strategy lead · systems designer→ 01 · the problem
Eight personas, in four groupsFrom the team's research into who submits.strategy lead→ 09 · where it landed
Sixteen screens in six phasesThe inventory the build started from, each screen marked must-have, if time allows, or later: seven, eight and one.in the build repository→ 04 · the student's path

Checked the work

A critique of every screen: 25 problemsTwelve solved, five partly solved, eight still open.the team's critique sessions→ 08 · redone
An inventory of 57 error statesSeventeen built, twelve designed, twenty-eight not designed yet.the team→ 09 · where it landed
A decision log and 103 commitsThe day-two calls in the log, and the reason for each change after that in the commit history.the build→ 04 · what changed, and when

Not done said plainly

No usability test with a student
No observed first submission against a real deadline
No pilot, and nothing measured

03The constraint that shaped everything

Most clients hide infrastructure cost from designers. This one put it on the table in week one: reading a document with a model is expensive, and at institutional scale the difference between checking something instantly and checking it in a queue is the difference between a business and a science project.

That is a design constraint wearing an engineering costume. It decides what a student can be told and when — so it decides the shape of every screen after upload. A product that promises real-time everything either lies or bankrupts the person paying for it.

So validation runs in three tiers, and the interface is honest about which one you are in:

The split is not a compromise forced by cost. It is the correct division anyway: the fast checks are the ones you can act on standing at your laptop, and the slow one is the one you want to walk away from.

the two non-negotiables

Stated as architecture, not preference

The client fixed two rules on day one: no evidence, no credit — the system only awards for what it can actually find — and the instructor is the final authority. Stating them as constraints rather than opinions removed an entire class of design argument before it could start.

The consequence runs through every screen: the AI never scores anything. It reads, and it reports what it found and where. Every post-submission screen carries the same sentence — your instructor decides your final grade — because in a market where the adoption risk is "a machine is marking my work", trust is built by repetition, not by a tooltip somebody dismissed once.

the first client meetingthe compute spec, tier by tier

04The student's path

There is no client feature list for this one, and inventing one would defeat the point. What exists is better evidence: the flow the team planned at the start of April, the build as it shipped on 26 April, and a commit history that says what changed in between, and why. Switch between them, or pick a change to see which steps it touched.

From opening an assignment to a gradeplanned: the team's flow and the build's screen inventory · shipped: read off the running build

What changed between the two, and when

    Every date is a commit in the build's history. The planned priorities come from the build's own screen inventory, where the upload itself was marked “if time allows” and the consent screen a must-have.

    05The thread, screen by screen

    All of this is the running build, not a mockup. The countdowns are live, the data is seeded, and you can open any of it in the demo.

    The incentive design is one line, sitting under the assignment card on the dashboard: submit early to unlock feedback. Early submission is not framed as diligence — it is framed as the only way to get something the late submitter cannot have.

    Assignment detail. The early-feedback deadline sits in its own card beside the brief, and the content is split across Assignment Brief, What to Submit, and Grading Rubric tabs.
    01 · the briefThe rubric is a tab, at the top, before the upload zone — because the single most common way to lose marks is not knowing what was being marked. The early-feedback card is deliberately louder than the deadline: it is the one the student can still do something about.
    Upload screen after a successful check. Ticks for upload, format, size, page count, readable text, detected handwriting, and each of the two links found in the document verified separately.
    02 · the fast checksT1 and T2, itemised as they land. It reads the document rather than the file: twelve pages, text readable throughout, handwriting on pages 8–9, and the two links found inside it opened and checked one at a time. A student who has been told "upload failed" all their life can see exactly what passed.

    Showing the process here is right, and showing it during the rubric analysis would be wrong — the same mechanism, opposite call. On this screen every line is something the student can act on. During analysis they can only wait, and a list of checks ticking past is just a countdown to a verdict.

    The same screen with one link failing. Google Drive report is marked permission blocked, with an inline instruction giving the exact menu path to fix it and a Check again action.
    03 · the blocked linkThe failure that costs the most marks and is the least visible to the person who caused it. Every error on this screen names the thing, states the cause, and gives the actual fix — Open Google Drive → Share → set to "Anyone with the link can view" — then offers to re-check. An error that only says what went wrong is half an error.

    06The decision I'd defend

    Every platform designs the success state and the failure state. Almost nobody designs the one in between, which is the only one that is actually hard.

    the problem

    The warning state is the dangerous one

    Failures are easy: the system blocks, the student fixes, the system unblocks. Nobody has to decide anything.

    A warning asks a nineteen-year-old to make an irreversible decision, under deadline pressure, on incomplete information. Read it as a blocker and they abandon a submission that was fine. Read it as noise and they lose marks they never understood they were agreeing to lose. Both readings are reasonable responses to “some issues were found.”

    And it is the state that generates the dispute. Not the failure — the failure is unambiguous. The dispute comes from the student who proceeded without understanding what proceeding meant.

    the reframe

    Consent has to be specific enough to be indefensible to argue with

    A generic “I understand” is worth nothing to either side. It does not tell the student what they are giving up, and it does not give the institution anything to point at when the grade is challenged.

    So the dialog does not summarise. It names each criterion, prints its exact weight, and states the consequence in the student's own currency — will not receive evidence credit for this criterion — 10% of your grade. Three named risks, not "3 issues".

    Then it does the thing that makes it fair rather than merely defensible: it says you still have 1d 2h, and resubmitting cannot lower your grade. Informed consent is only real when refusing is genuinely available.

    the decision log, day twothe client's two rules

    The same three findings, summarised and then named. Both dialogs are drawn on this page rather than screenshotted — the total on the right is computed from the findings, which is exactly the sum the generic version makes impossible.

    Submission sent screen with a five-minute countdown reading four minutes fifty-eight, a draining progress bar, and the line: your instructor hasn't seen this yet.
    04 · the five minutes afterThe counterpart to consent. One sentence does most of the work — your instructor hasn't seen this yet — because the panic in that moment is social, not technical. Five minutes, visibly draining, then it locks. A safety net that stayed open indefinitely would just move the deadline.

    The argument for spending this much design on one dialog only holds if it pays off later, so here is where it lands. Two weeks on, the same student is looking at a grade.

    The grade result. A rubric table gives a score, weight and weighted contribution for each of six criteria, with the instructor's written feedback split into strengths and areas for improvement.
    05 · the gradeNot a number — an arithmetic the student can follow. Every criterion shows its score, its weight, and what it actually contributed, so 7.1 is a sum rather than a judgement. The instructor's own words sit underneath, split into what worked and what did not. This is the screen that decides whether the student trusts the platform on the next assignment.

    That is the return on the consent screen. A student who agreed to a specific, named, weighted risk is a student who can be shown that record, and an instructor facing a challenge has something better than memory. The dialog is not there to protect the institution from the student — it is there so the conversation two weeks later is about the work.

    07A comparison the build makes better than I can

    The same screen in two real states of the shipped build — nothing here is reconstructed or mocked up. Switch between them.

    Before the fix.

    The entire argument for the product, in one screen twice. Left: 68% coverage, a criterion scored zero, similarity above the limit, "1 rubric area missing" in red. Right: the same student after two rounds — 100%, and a since V2 card that names what changed and does not make them hunt for it. The loop is the value; everything else is plumbing that makes the loop possible before the deadline.

    The dashboard also comes in two voices. A student still building the habit gets coaching; an established one gets stretch work and less hand-holding. Only the copy changes between them — the layout is identical, by a team decision. The idea behind it, from the team's strategy work, was to group students by behaviour rather than grades: grades measure an outcome, behaviour measures a pattern.

    08Three times the work had to be redone

    The demo where the client agrees with everything is the one that taught you nothing.

    We presented the prototype as a walk through one student's journey rather than a tour of features — lead with the anxious first-timer, then break the story with the students who behave differently. It worked, in the sense that it produced redirection instead of polite agreement.

    He came back with three changes: support a single-document submission alongside the multi-file model, because faculty load makes consolidation matter more than structure; split validation into fast and queued rather than promising real-time; and add incentive layers to pull submissions earlier. About a third of what we had built stopped being relevant, and the rework was in the build four days later.

    What held was the four principles underneath it. We changed the surfaces without relitigating the philosophy, which is the only reason a week-two scope expansion did not become a spiral.

    the client demo, week one

    09Where it landed

    Shipped

    The student module, live at the link above: the brief and rubric, one submit page with instant and link checks, up to three rounds of queued feedback, consent that names what the student is giving up, five minutes to take it back, the grade, and a way to ask for it to be reviewed.

    What I'd defend

    The consent moment, in any room. The tier split falling out of a cost constraint rather than being bolted onto it. And spending the design effort on the warning state instead of the success state.

    Not done

    No student has used it. The personas come from the team's research, and they are still proxies. Nothing has been measured: where the internal documents project fewer disputes or support tickets, those are arguments for a design, not outcomes of one. And twenty-eight of the fifty-seven error states are not designed yet.

    First test

    One observed session with a first-generation student making their first submission, against a real deadline. The consent screen was designed calmly; it gets used by someone panicking at 11:47pm, and I do not know what it does to them.

    This was a team of six. The strategy, the persona architecture, the systems modelling and the research were owned by other people. My strand was the build: the student module end to end, the design system underneath it, the compute-tier model, and shipping the thing that is running at the link above.

    One housekeeping note, since the screenshots are the evidence: the institution branding in them is a neutral placeholder. The real build carries a named university as demo data, and putting that on my own site would imply a customer relationship that does not exist.

    10Sources

    The competitive audit behind the design covered eleven public platforms, read for three things — how grading is made transparent, how scanned and handwritten input is handled, and the gap between a system validating something and a student understanding it:

    1. 1Gradescope · Turnitin · Canvas LMS · Google Classroom · Blackboard — grading, submission and feedback surfaces
    2. 2Google Cloud Vision · Azure AI Vision · Amazon Textract — OCR behaviour, confidence reporting and failure modes on handwriting
    3. 3ETS · FICO · IBM ODM — how automated scoring and rules engines explain a decision to the person it lands on

    The build carries its own reasoning: a decision log started on day two, a history of 103 commits between 1 and 26 April whose messages carry the running record, a defence document mapping each screen to the behaviour it is trying to produce, and a design system written down so the thing stays coherent across a four-week sprint. Those live in the repository, not in a deck.

    FairMark is a name I gave this work to publish it — the client, their product and their institution partners stay unnamed, and the university in the screens is fictional for the same reason. Screens are the running build, captured at 2× — click any of them to read one at full size.

    ←  back to selected work talk about this one →