Adds 2 units and docs for unit 3. nfr-requirements plan

This commit is contained in:
2026-06-29 22:18:37 +02:00
parent 0e01ca1e1c
commit c156107cb1
126 changed files with 15204 additions and 80199 deletions
@@ -0,0 +1,60 @@
# Functional Design Questions — Unit 3: frontend-cms-page
Please answer each question by filling in the letter after the `[Answer]:` tag.
If none of the options match, choose the last option (Other) and describe your preference.
---
## Question 1
Which columns should the `CmsInstanceList` table display?
A) Name, URL, Status
B) Name, URL, Status, Last Contact (`lastContactedAt`)
C) Name, URL, Status, DisableMessage
D) Other (please describe after [Answer]: tag below)
[Answer]: B + C
---
## Question 2
"Inactive rows greyed out" — what exactly?
A) The entire `<TableRow>` gets `opacity-50` (everything fades)
B) All `<TableCell>` text gets `text-muted-foreground` class (subtler dimming)
C) Other (please describe after [Answer]: tag below)
[Answer]: A
---
## Question 3
When the status is updated, the backend pushes to the slave and reports whether it was reachable (`UpdateStatusResult`). What does the frontend show?
A) Always a generic success toast on HTTP 200, regardless of slave details
B) Toast differs: "Status updated — slave confirmed" vs "Status saved, slave unreachable"
C) Other (please describe after [Answer]: tag below)
[Answer]: B, but don't call it slave. I'd rather see the term "cliënt"
---
## Question 4
The backend returns HTTP 400 for invalid data in `AddCmsInstanceDialog`. What does the UI show?
A) Banner error at the top of the dialog (`FormBannerError` pattern, as in LoginPage)
B) Toast on failed submit
C) Other (please describe after [Answer]: tag below)
[Answer]: A
---
## Question 5
When there are no CMS instances yet (empty state):
A) Centered placeholder with icon + "Add your first CMS" message and an Add button
B) Empty table (the Add button in the page header is sufficient)
C) Other (please describe after [Answer]: tag below)
[Answer]: A