66 lines
2.9 KiB
Markdown
66 lines
2.9 KiB
Markdown
# Learning Planner
|
||
|
||
A polished, local-first React application for turning learning goals into focused, trackable tasks. The project was created as a practical engineering competency artifact: it combines product planning, typed implementation, persistence, responsive design, cross-browser automation, and a traceable evidence pack.
|
||
|
||

|
||
|
||
## What it demonstrates
|
||
|
||
- Goal and task CRUD with confirmation, search, filtering and sorting.
|
||
- Derived progress and dashboard statistics without duplicated state.
|
||
- Versioned `localStorage` behind a validated storage adapter.
|
||
- Validated JSON backup/import, corruption recovery and sample-data reset.
|
||
- Semantic navigation, form labels, visible focus and reduced-motion support.
|
||
- Deliberate layouts for 1920×1080, 1680×1050, 1920×1200 and a narrow robustness viewport.
|
||
- Vitest/Testing Library and Playwright checks in Chromium and Firefox.
|
||
|
||
## Run locally
|
||
|
||
Requirements: Node.js 22+ and npm 10+.
|
||
|
||
```bash
|
||
npm install
|
||
npm run dev
|
||
```
|
||
|
||
The application has no server-side services and sends no planner data over the network.
|
||
|
||
## Quality commands
|
||
|
||
```bash
|
||
npm run check # lint, 9 unit/component tests, type-check and build
|
||
npm run test:e2e # Chromium, Firefox, required viewports and narrow viewport
|
||
npm run evidence:capture # regenerate non-sensitive evidence screenshots
|
||
npm run preview # serve the production build
|
||
```
|
||
|
||
Playwright browser binaries can be installed with `npx playwright install chromium firefox`.
|
||
|
||
## Project and evidence records
|
||
|
||
- [Project overview](docs/project/overview.md)
|
||
- [Backlog and dependency register](docs/project/backlog.md)
|
||
- [Roadmap and critical path](docs/project/roadmap.md)
|
||
- [Test strategy](docs/project/test-strategy.md)
|
||
- [Manual test checklist](docs/project/manual-test-checklist.md)
|
||
- [Executed test log](docs/project/test-log.md)
|
||
- [Decision log](docs/project/decision-log.md)
|
||
- [Current status checkpoint](docs/project/status-2026-08-14.md)
|
||
- [Evidence index](docs/evidence/evidence-index.md)
|
||
|
||
## Data format
|
||
|
||
Backups contain `AppStateV1` with `version: 1`, `goals`, and `tasks`. Import rejects unsupported versions, malformed records, invalid priorities/statuses, negative estimates, and tasks whose goal does not exist. The storage adapter is isolated in `src/storage.ts` so future migrations can be added without coupling them to the UI.
|
||
|
||
## Browser support
|
||
|
||
The automated baseline is current Chromium and Firefox. Microsoft Edge uses the Chromium engine, but the formal Edge evidence must still be run manually on the intended Windows device using the checklist in this repository. Standards-based Grid/Flexbox, feature detection for `crypto.randomUUID`, system fonts and progressive enhancement reduce compatibility risk.
|
||
|
||
## Repository remote
|
||
|
||
The intended origin is:
|
||
|
||
```text
|
||
ssh://git@git.zainezq.com:222/zaine/learning-planner.git
|
||
```
|