UX10: Capstone: three design projects for SehatSlot

Lesson 3 of 5 · reading 15–25 minutes; practice and project time is on the module page

Project 2: a journey that works for everyone

🎯You'll be able to

Complete the prototype project so that all ten prototype tests pass and the journey works by keyboard, screen reader and touch.

🏠The everyday picture

A good building isn't finished when it looks right; it's finished when everyone can get in, find their way and get out safely.

📘What it really is

📝A worked example

Input: test 3 failing on the starter ("the 10:30 slot should be reachable with Tab").

Steps:

  1. Replace the starter's div.slot-box elements with <button class="slot" type="button" aria-pressed="false">.
  2. On click, set aria-pressed="true" on the chosen button and false on the others, and update a role="status" line.
  3. Run npm run test:prototype.

Expected output: test 3 passes. Repeat for each failing test; in the reference, all ten pass in about 10 seconds.

🌍Where it's used

📝Case scenario

A learner's prototype passed tests 1 to 9 but failed test 10: after "Change time", the name field was empty. They had saved details only on submit. Saving on every input, as the reference does, fixed it, and the fix answered finding F3.

🖱️Try it

Pick one failing prototype test on your draft, read its code in tests/prototype.test.js, and explain in one sentence what it checks before changing anything. Success: your sentence matches what the test does.

⚠️Common mistakes

🛠️For your project

The project page's safety items: no full phone number after booking, and no personal data in the prototype's files.

✅Quick check

What does test 10 check besides the confirmation details?

Show the answer

That typed details survive "Change time", and that only the last four digits of the phone number appear.

Why run the whole prototype test file after each change?

Show the answer

Because a change on one screen can break another check.

← PreviousProject 1: a study reported honestly
ProLearners Assist