Practice site
The pages the Learn kaprevo lessons drive. Everything here runs on your own machine.
Course pages
- Sign in: a login form with a short delay and a welcome message (lesson 1).
- Products: a table loaded from
/api/products, with empty and error states (lessons 2, 4, 7). - Dashboard: fixed-size cards with a live clock and a spinner, for screenshot baselines (lesson 5).
- Who am I: what the browser context tells a page: stored user, cookies, language, time zone, viewport, color scheme, location (lesson 6).
- Gallery: three pictures and a count of those that loaded, for blocking requests (lesson 7).
- Events: console messages, a page error, alert, confirm and prompt dialogs, a download, a new tab and a popup (lesson 8); the popup is Help.
- Notes: one Save button in version 1, two identical ones in version 2 (lesson 12).
Other sites served here
- kaprevo's integration-test pages (forms, frames, shadow DOM, drag and drop).
- ControlLab, a larger single-page app (used in the capstone).
API endpoints
| Path | Method | Returns |
|---|---|---|
/api/products | GET | the product list as JSON |
/api/echo | POST | the request's method, headers and body, as JSON |
/api/slow?seconds=1.5 | GET | JSON, after a delay (at most 10 seconds) |
/api/status/<code> | GET | an empty response with that status code |
/api/report.csv | GET | a CSV file sent as a download |
/api/basic-auth | GET | HTTP basic authentication (ada / secret) |
/api/login | POST | sign in with JSON {"user", "password"}; sets the cookie session=<user> |
/api/me | GET | the signed-in user from the session cookie, {"user": ...} |