Capability 001: Basic Page¶
Status: Accepted
Context¶
The Superordinate Controller provides a rudimentary API for remote control and inspection, the Remote Control API. The Web App provides a convenient web interface to it for the Robot Operator: it shows the state of the robot and steers it with a simple navigation model of translation and rotation.
The first step is a single-page web app without any function beyond showing its title. It establishes the build, the tests, and the container image that later capabilities build on.
References¶
- Mission statement:
mission_statement.md - Remote Control API, Robot Operator, and Web App: glossary of the Superordinate Controller
- Responsive web and user experience: directives in
responsive_web.mdanduser_experience.md - Container image: directives in
containerization.md - Supported browsers and form factors: ADR-001
Details¶
| Element | Content |
|---|---|
| Document title (browser tab) | Kiwi Robot Supervisor |
| Heading of the page | Kiwi Robot Supervisor |
The user interface is in English.
Functional Requirements¶
- Opened at
/, the Web App shows its title as given under Details.
Non-Functional Requirements¶
- The page needs no horizontal scrolling at viewport widths from 320 px to 1920 px, measured in the browser at 320 px, 768 px, and 1920 px.
- The heading meets WCAG 2.1 AA: its contrast ratio against the background is at least 4.5:1, computed from the rendered colors.
Technical Requirements¶
- The Web App is built with React, TypeScript, and Vite.
- Styling is plain CSS, without a CSS framework.
- The container image serves the static build with nginx on port 8080.
- The Web App runs in the browsers and on the form factors of ADR-001.
Error Handling¶
None.
Out of Scope¶
- Any connection to the Remote Control API: driving, rotating, stopping, health
- Telemetry of the robot
- Further pages and navigation
- Authentication
- Visual design beyond legibility, such as a logo, a color theme, or a dark mode
- Languages other than English
Acceptance Criteria¶
- Opened at
/: the document title and the heading areKiwi Robot Supervisor. - Opened at
/at viewport widths of 320 px, 768 px, and 1920 px: the page is not wider than the viewport. - Opened at
/: the contrast ratio of the heading against the background is at least 4.5:1. - Opened at
/: the browser console shows no error. - The release image started with port 8080 published: a browser opened at
/shows the page as in Acceptance Criterion 1 (manual testtest/manual/image.md).
Decisions¶
- Plain CSS instead of a CSS framework. The page holds a title only; a framework would add a technology without benefit. Consequence: a later capability that needs one decides on it then.
- React renders the heading, despite the directive "core functionality without JavaScript". Every later capability needs React, which renders in the browser; a static heading would duplicate the title for no use. Consequence: without JavaScript, the page shows only the document title.