Acceptance Criteria — Home Page (HOME)¶
User Story¶
As a Repair Check web-app user (guest or logged in) I want to see a Home page listing all product features, with each one clearly active or inactive based on whether I'm logged in and how it's configured So that I can discover and enter the features available to me without hitting dead taps or a page that doesn't match the design
Source: RC-1 — Web app - Home page (original build: banner, feature grid split into free vs. login-required features, per-feature first-use tip, per-feature first-use intro popup, phone/tablet support) and RC-106 — Web App - Fix Home page issue (child of Epic RC-101: feature visibility must follow the Admin feature-config page, RepairCheck-logo click must redirect Home, plus a defect comment — Ann, 2026-07-09 — where a guest-accessible feature ["login required" unchecked in Admin] was a dead tap instead of working per Figma).
RC-106 extends/supersedes RC-1's static feature lists. RC-1 hardcodes which features are free (
Clever tanken,Parkplatz Suche) vs. login-required (Unfallhilfe,Werkstatt Finden,Leasing Rückläufe,Unfall Rechtsberatung,KFZ Aufbereiter,Experte für Fahrzeugdiagnose,Ein Auto Mieten). RC-106 says this must instead follow the Admin feature-config page (/admin/features) per feature. AC/BR below treat the Admin config as the source of truth (BR-HOME-01) and RC-1's lists as the baseline values at authoring time (BR-HOME-02), consistent with how theexpertandlawyerfeatures' own stakeholder overrides were handled.Grounded against
01_Features/homepage/screens/Screenshot 2026-08-06 at 09.36.25.png. This is a partial/cropped screenshot showing only the "LOGGED IN" flow — a Splash screen and a Home screen (banner text, "Book an appointment" / "Create a damage report" actions, a quick-menu icon grid, bottom nav). It is cut off before a second section (visible heading fragment "FIRST REGISTRATIO…"), and no guest-view or inactive-tile state is visible. RC-1's own Figma links (mobile + web) were not fetched — Figma access is out of scope for this skill unless a screenshots folder is passed, and none exists forhomepagebeyond this one file. Treat all exact visual/layout details as unconfirmed beyond what's stated in the ticket text.
Scenario-based AC — Given / When / Then¶
| AC ID | Scenario | Jira | Type | Criticality | Given (context) | When (action / trigger) | Then (expected outcome) | Linked TCs | Status |
|---|---|---|---|---|---|---|---|---|---|
| AC-HOME-01 | Open the Home page as a logged-in user | RC-1 | Happy | 🔴 Critical | The user is logged in | The user navigates to the Home page | The banner is shown And every feature enabled in the Admin config appears as a tile And every feature usable by a logged-in user is shown active |
TC-HOME-001 |
Draft |
| AC-HOME-02 | Open the Home page as a guest | RC-1, RC-106 | Happy | 🔴 Critical | The user is not logged in | The user navigates to the Home page | The banner is shown And features enabled in Admin and marked "login not required" appear active And features marked "login required" appear visibly inactive, matching Figma |
TC-HOME-002 |
Draft |
| AC-HOME-03 | Use a guest-accessible feature (regression) | RC-106 | Happy | 🔴 Critical | A guest is on the Home page And a feature is Admin-enabled with "login required" unchecked |
The guest taps that feature's tile | The guest is taken into that feature's page And the tap is not a silent no-op — the defect in Ann's 2026-07-09 report was the tap producing literally no reaction (no navigation, no error, no blank screen) |
TC-HOME-003 |
Draft |
| AC-HOME-04 | First-time tip on a feature | RC-1 | Happy | 🟡 Medium | The user has never seen the tip for feature X | The Home page is displayed | The first-use tip for feature X is shown to the user | TC-HOME-004 |
Draft |
| AC-HOME-05 | Skip a tip so it does not reappear | RC-1 | Alternate | 🟡 Medium | The first-use tip for feature X is showing | The user skips the tip | The tip is dismissed immediately And it does not reappear on a later visit to the Home page (same browser) |
TC-HOME-005, TC-HOME-014 |
Draft |
| AC-HOME-06 | First tap on a feature shows its intro popup | RC-1 | Happy | 🟠 High | A logged-in user has never opened feature X (e.g. Unfallhilfe) before | The user taps feature X's tile for the first time | An intro popup for feature X is shown And after the user proceeds, they reach feature X's page |
TC-HOME-006 |
Draft |
| AC-HOME-07 | Later taps skip the intro popup | RC-1 | Alternate | 🟡 Medium | The user already saw the intro popup for feature X | The user taps feature X's tile again | The user goes directly to feature X's page And the intro popup does not reappear |
TC-HOME-007 |
Draft |
| AC-HOME-08 | Return to Home via the RepairCheck logo | RC-106 | Happy | 🟠 High | The user is on any page of the web app | The user clicks/taps the RepairCheck logo | The user is redirected to the Home page | TC-HOME-008 |
Draft |
| AC-HOME-09 | Login-required feature tile redirects a guest to the Login page | RC-1, RC-106 | Alternate | 🟠 High | A guest is on the Home page And feature Y is Admin-configured "login required" |
The guest taps feature Y's tile | The guest is not taken into feature Y's page And the guest is redirected to the Login page instead |
TC-HOME-009 |
Draft |
| AC-HOME-10 | Admin-disabled feature is hidden | RC-106 | Negative | 🟠 High | Feature Z is disabled in the Admin feature-config page | Any user (guest or logged-in) opens the Home page | Feature Z's tile does not appear on the Home page at all | TC-HOME-010 |
Draft |
| AC-HOME-11 | Not-yet-implemented free feature stays inactive for everyone | RC-1 | Edge | 🟡 Medium | "Clever tanken" or "Parkplatz Suche" is Admin-enabled as a free (no-login) feature, but not implemented this phase | Any user (guest or logged-in) views the Home page | The tile is shown but inactive / non-tappable, regardless of login state | TC-HOME-011 |
Draft |
| AC-HOME-12 | Home page works on phone and tablet | RC-1 | Non-functional | 🟠 High | A user is on a phone-sized viewport, then a tablet-sized viewport | The user opens the Home page | The banner and quick menu are fully visible and operable in each And no content is clipped, overlapping, or requires horizontal scrolling |
TC-HOME-012 |
Draft |
| AC-HOME-13 | Banner and quick menu adapt to the device | RC-1 | Non-functional | ⚪ Low | The Home page is open | The user's device/viewport changes | The banner and quick-menu positioning (floating behaviour) adapts to the device — general responsive behaviour only, exact breakpoints/mechanics not required (stakeholder confirmed low priority) | TC-HOME-013 |
Draft |
Business Rules (rule-based AC)¶
| Rule ID | Business Rule | Jira | Rationale / Source | Criticality | Linked TCs | Status |
|---|---|---|---|---|---|---|
| BR-HOME-01 | Each Home-page feature tile's visibility and enablement is driven by that feature's entry in the Admin feature-config page (/admin/features) — not a list hardcoded in the app. Confirmed schema: a simple enabled + loginRequired boolean pair per feature — no per-role or per-market variants. |
RC-106 | RC-106 description + defect comment (Ann, 2026-07-09), extending RC-1's original static lists. Schema confirmed with stakeholder 2026-08-06. | 🔴 Critical | TC-HOME-002, TC-HOME-010 |
Draft |
| BR-HOME-02 | Baseline config at RC-1 authoring time: free/no-login features = "Clever tanken", "Parkplatz Suche"; login-required features = "Unfallhilfe", "Werkstatt Finden", "Leasing Rückläufe", "Unfall Rechtsberatung", "KFZ Aufbereiter", "Experte für Fahrzeugdiagnose", "Ein Auto Mieten". ⚠️ Superseded as source of truth by BR-HOME-01 — this list may drift as Admin config changes; use it only as the starting/example data set. | RC-1 | RC-1 description. | 🟡 Medium | TC-HOME-002 |
Draft |
| BR-HOME-03 | Free (no-login) features not yet implemented this phase ("Clever tanken", "Parkplatz Suche") stay inactive for every user, guest or logged-in, even though they require no login. | RC-1 | RC-1 description ("We don't implement these features in this phase so these features should be inactive"). | 🟡 Medium | TC-HOME-011 |
Draft |
| BR-HOME-04 | A feature's first-use tip and first-use intro popup are each shown at most once per feature per browser, tracked via a browser cookie — not per user account. Once seen or skipped, neither reappears in that browser; clearing cookies, switching browser, or switching device resets the "seen" state. Each feature's tip/intro state is independent — a feature only starts showing its tip/intro once that feature itself is turned on (Admin-enabled). | RC-1 | RC-1 description ("display for the first time... can skip", "first time user taps... they will see an intro popup"). Persistence mechanism confirmed with stakeholder 2026-08-06. | 🟠 High | TC-HOME-004, TC-HOME-005, TC-HOME-006, TC-HOME-007, TC-HOME-014 |
Draft |
Confirmed Decisions (resolved 2026-08-06 — all prior open questions answered)¶
| # | Item | Decision |
|---|---|---|
| 1 | Tap behaviour on an inactive/login-required tile | Navigates the guest to the Login page (not a dead tap, not an in-page prompt). Updated AC-HOME-09. |
| 2 | "Floating based on the device" exact breakpoints/mechanics | Out of scope for detailed verification — stakeholder confirmed not a priority. AC-HOME-13 downgraded to ⚪ Low; only general responsive behaviour (already covered by AC-HOME-12) needs testing. |
| 3 | Tip/intro-popup "seen" persistence scope | Stored via a browser cookie — per browser/device, not per user account. Clearing cookies or switching browser/device resets the "seen" state. Updated BR-HOME-04. |
| 4 | Tip vs. intro popup relationship | Feature-specific: a feature's tip/intro only activates once that feature itself is turned on (Admin-enabled) — independent per feature, not an all-or-nothing global mechanic. Updated BR-HOME-04. |
| 5 | Mobile vs. web visual design | Confirmed the same — no separate mobile/web breakdown needed. |
| 6 | Other RC-4 children covering the Home page |
Confirmed none — feature scope stays at RC-1 + RC-106. |
| 7 | Admin feature-config schema | Confirmed: simple enabled + loginRequired boolean pair per feature — no role/market variants. Updated BR-HOME-01. |
| 8 | Nature of the RC-106 "click doesn't show anything" defect | Confirmed a silent no-op — the tap produces literally no reaction (no blank screen, no JS error). This is exactly what AC-HOME-03 regresses against. Updated AC-HOME-03. |
Traceability¶
RC-1, RC-106 ──▶ AC-HOME-01..13 / BR-HOME-01..04 ──▶ TC-HOME-NNN
(the why) (the what — this file) (the how to verify)
- Upward: header
SRS ref+ each row'sJiracolumn link back toRC-1(EpicRC-4) andRC-106(EpicRC-101). - Downward:
Linked TCspopulated by/gen-tc homepage RC-1(covering bothRC-1andRC-106) — see01_Features/homepage/./homepage_tc.md(TC-HOME-001…013). - Coverage: every AC and business rule has ≥1 linked TC. No coverage gap remains.
Scenario classes intentionally not covered (§3 of the AC technique guide):
| Class | Why skipped |
|---|---|
| Permission (roles beyond guest/logged-in) | Confirmed no role/market variants exist (BR-HOME-01) — only guest vs. logged-in apply, both already covered. |
| State transitions (entity lifecycle) | The Home page has no entity of its own beyond per-user "tip seen" / "intro seen" flags, covered under BR-HOME-04. |
| Security, accessibility, observability | No target, threshold or requirement is stated anywhere in RC-1 or RC-106; inventing one would be unverifiable. |
| Localisation / i18n | The page appears German-labelled (feature names); scope not confirmed. |