docs: create milestone v2.0 roadmap (3 phases)
Phases: 7. GitOps Foundation: ArgoCD installation and configuration 8. Observability Stack: Prometheus/Grafana/Loki + alerts 9. CI Pipeline Hardening: Vitest, Playwright, type checking All 17 requirements mapped to phases.
This commit is contained in:
@@ -1,8 +1,13 @@
|
||||
# Roadmap: TaskPlanner
|
||||
|
||||
## Milestones
|
||||
|
||||
- ✅ **v1.0 MVP** - Phases 1-6 (shipped 2026-02-01)
|
||||
- 🚧 **v2.0 Production Operations** - Phases 7-9 (in progress)
|
||||
|
||||
## Overview
|
||||
|
||||
TaskPlanner delivers personal task and notes management with image attachments, accessible from any device via web browser. The roadmap progresses from data foundation through core features (entries, images, tags, search) to containerized deployment, with each phase delivering complete, verifiable functionality that enables the next.
|
||||
TaskPlanner delivers personal task and notes management with image attachments, accessible from any device via web browser. v1.0 established core functionality. v2.0 adds production-grade operations: GitOps deployment automation via ArgoCD, comprehensive observability via Prometheus/Grafana/Loki, and CI pipeline hardening with automated testing.
|
||||
|
||||
## Phases
|
||||
|
||||
@@ -12,137 +17,121 @@ TaskPlanner delivers personal task and notes management with image attachments,
|
||||
|
||||
Decimal phases appear between their surrounding integers in numeric order.
|
||||
|
||||
- [x] **Phase 1: Foundation** - Data model, repository layer, and project structure ✓
|
||||
- [x] **Phase 2: Core CRUD** - Entry management, quick capture, and responsive UI ✓
|
||||
- [x] **Phase 3: Images** - Image attachments with mobile camera support ✓
|
||||
- [x] **Phase 4: Tags & Organization** - Tagging system with pinning and due dates ✓
|
||||
- [x] **Phase 5: Search** - Full-text search and filtering ✓
|
||||
- [x] **Phase 6: Deployment** - Docker containerization and production configuration ✓
|
||||
<details>
|
||||
<summary>v1.0 MVP (Phases 1-6) - SHIPPED 2026-02-01</summary>
|
||||
|
||||
## Phase Details
|
||||
- [x] **Phase 1: Foundation** - Data model, repository layer, and project structure
|
||||
- [x] **Phase 2: Core CRUD** - Entry management, quick capture, and responsive UI
|
||||
- [x] **Phase 3: Images** - Image attachments with mobile camera support
|
||||
- [x] **Phase 4: Tags & Organization** - Tagging system with pinning and due dates
|
||||
- [x] **Phase 5: Search** - Full-text search and filtering
|
||||
- [x] **Phase 6: Deployment** - Docker containerization and production configuration
|
||||
|
||||
### Phase 1: Foundation
|
||||
**Goal**: Data persistence and project structure are ready for feature development
|
||||
**Depends on**: Nothing (first phase)
|
||||
**Requirements**: None (foundational — enables all other requirements)
|
||||
**Success Criteria** (what must be TRUE):
|
||||
1. SQLite database initializes with schema on first run
|
||||
2. Unified entries table supports both tasks and thoughts via type field
|
||||
3. Repository layer provides typed CRUD operations for entries
|
||||
4. Filesystem storage directory structure exists for future images
|
||||
5. Development server starts and serves a basic page
|
||||
**Plans**: 2 plans
|
||||
|
||||
Plans:
|
||||
- [x] 01-01-PLAN.md — SvelteKit project setup with Drizzle schema and unified entries table
|
||||
- [x] 01-02-PLAN.md — Repository layer with typed CRUD and verification page
|
||||
**Plans**: 2/2 complete
|
||||
|
||||
### Phase 2: Core CRUD
|
||||
**Goal**: Users can create, manage, and view entries with a responsive, accessible UI
|
||||
**Depends on**: Phase 1
|
||||
**Requirements**: CORE-01, CORE-02, CORE-03, CORE-04, CORE-05, CORE-06, CAPT-01, CAPT-02, CAPT-03, UX-01, UX-02, UX-03
|
||||
**Success Criteria** (what must be TRUE):
|
||||
1. User can create a new entry specifying task or thought type
|
||||
2. User can edit entry title, content, and type
|
||||
3. User can delete an entry with confirmation
|
||||
4. User can mark a task as complete and see visual indicator
|
||||
5. User can add notes to an existing entry
|
||||
6. Quick capture input is visible on main view with one-click submission
|
||||
7. UI is usable on mobile devices with adequate touch targets
|
||||
8. Text is readable for older eyes (minimum 16px base font)
|
||||
**Plans**: 4 plans
|
||||
|
||||
Plans:
|
||||
- [x] 02-01-PLAN.md — Form actions for CRUD operations and accessible base styling
|
||||
- [x] 02-02-PLAN.md — Entry list, entry cards, and quick capture components
|
||||
- [x] 02-03-PLAN.md — Inline editing with expand/collapse, auto-save, and completed toggle
|
||||
- [x] 02-04-PLAN.md — Swipe-to-delete gesture and mobile UX verification
|
||||
**Plans**: 4/4 complete
|
||||
|
||||
### Phase 3: Images
|
||||
**Goal**: Users can attach, view, and manage images on entries from any device
|
||||
**Depends on**: Phase 2
|
||||
**Requirements**: IMG-01, IMG-02, IMG-03, IMG-04
|
||||
**Success Criteria** (what must be TRUE):
|
||||
1. User can attach images via file upload on desktop
|
||||
2. User can attach images via camera capture on mobile
|
||||
3. User can view attached images inline with entry
|
||||
4. User can remove image attachments from an entry
|
||||
5. Images are stored on filesystem (not in database)
|
||||
**Plans**: 4 plans
|
||||
|
||||
Plans:
|
||||
- [x] 03-01-PLAN.md — Database schema, file storage, thumbnail generation, and API endpoints
|
||||
- [x] 03-02-PLAN.md — File upload form action and ImageUpload component with drag-drop
|
||||
- [x] 03-03-PLAN.md — CameraCapture component with getUserMedia and preview/confirm flow
|
||||
- [x] 03-04-PLAN.md — EntryCard integration with gallery, lightbox, and delete functionality
|
||||
**Plans**: 4/4 complete
|
||||
|
||||
### Phase 4: Tags & Organization
|
||||
**Goal**: Users can organize entries with tags and quick access features
|
||||
**Depends on**: Phase 2
|
||||
**Requirements**: TAG-01, TAG-02, TAG-03, TAG-04, ORG-01, ORG-02, ORG-03
|
||||
**Success Criteria** (what must be TRUE):
|
||||
1. User can add multiple tags to an entry
|
||||
2. User can remove tags from an entry
|
||||
3. Tag input shows autocomplete suggestions from existing tags
|
||||
4. Tags are case-insensitive ("work" matches "Work" and "WORK")
|
||||
5. User can pin/favorite an entry for quick access
|
||||
6. User can set a due date on a task
|
||||
7. Pinned entries appear in a dedicated section at top of list
|
||||
**Plans**: 3 plans
|
||||
|
||||
Plans:
|
||||
- [x] 04-01-PLAN.md — Tags schema with case-insensitive index and tagRepository
|
||||
- [x] 04-02-PLAN.md — Pin/favorite and due date UI (uses existing schema columns)
|
||||
- [x] 04-03-PLAN.md — Tag input component with Svelecte autocomplete
|
||||
**Plans**: 3/3 complete
|
||||
|
||||
### Phase 5: Search
|
||||
**Goal**: Users can find entries through search and filtering
|
||||
**Depends on**: Phase 2, Phase 4 (tags for filtering)
|
||||
**Requirements**: SRCH-01, SRCH-02, SRCH-03, SRCH-04
|
||||
**Success Criteria** (what must be TRUE):
|
||||
1. User can search entries by text in title and content
|
||||
2. User can filter entries by tag (single or multiple)
|
||||
3. User can filter entries by date range
|
||||
4. User can filter to show only tasks or only thoughts
|
||||
5. Search results show relevant matches with highlighting
|
||||
**Plans**: 3 plans
|
||||
|
||||
Plans:
|
||||
- [x] 05-01-PLAN.md — SearchBar and FilterBar components with type definitions
|
||||
- [x] 05-02-PLAN.md — Filtering logic and text highlighting utilities
|
||||
- [x] 05-03-PLAN.md — Integration with recent searches and "/" keyboard shortcut
|
||||
**Plans**: 3/3 complete
|
||||
|
||||
### Phase 6: Deployment
|
||||
**Goal**: Application runs in Docker with persistent data and easy configuration
|
||||
**Depends on**: Phase 1-5 (all features complete)
|
||||
**Requirements**: DEPLOY-01, DEPLOY-02, DEPLOY-03, DEPLOY-04
|
||||
**Plans**: 2/2 complete
|
||||
|
||||
</details>
|
||||
|
||||
### 🚧 v2.0 Production Operations (In Progress)
|
||||
|
||||
**Milestone Goal:** Production-grade operations with GitOps deployment, observability stack, and CI test pipeline
|
||||
|
||||
- [ ] **Phase 7: GitOps Foundation** - ArgoCD deployment automation with Git as source of truth
|
||||
- [ ] **Phase 8: Observability Stack** - Metrics, dashboards, logs, and alerting
|
||||
- [ ] **Phase 9: CI Pipeline Hardening** - Automated testing before build
|
||||
|
||||
## Phase Details
|
||||
|
||||
### Phase 7: GitOps Foundation
|
||||
**Goal**: Deployments are fully automated via Git - push triggers deploy, manual changes self-heal
|
||||
**Depends on**: Phase 6 (running deployment)
|
||||
**Requirements**: GITOPS-01, GITOPS-02, GITOPS-03, GITOPS-04
|
||||
**Success Criteria** (what must be TRUE):
|
||||
1. Application runs in a Docker container
|
||||
2. Configuration is provided via environment variables
|
||||
3. Data persists across container restarts via named volumes
|
||||
4. Single docker-compose.yml starts the entire application
|
||||
5. Backup of data directory preserves all entries and images
|
||||
**Plans**: 2 plans
|
||||
1. ArgoCD server is running and accessible at argocd.tricnet.be
|
||||
2. TaskPlanner Application shows "Synced" status in ArgoCD UI
|
||||
3. Pushing a change to helm/taskplaner/values.yaml triggers automatic deployment within 3 minutes
|
||||
4. Manually deleting a pod results in ArgoCD restoring it to match Git state
|
||||
5. ArgoCD UI shows deployment history with sync status for each revision
|
||||
**Plans**: TBD
|
||||
|
||||
Plans:
|
||||
- [x] 06-01-PLAN.md — Docker configuration with adapter-node, Dockerfile, and docker-compose.yml
|
||||
- [x] 06-02-PLAN.md — Health endpoint, environment documentation, and backup script
|
||||
- [ ] 07-01: ArgoCD Helm installation with Traefik ingress
|
||||
- [ ] 07-02: Application sync and self-heal verification
|
||||
|
||||
### Phase 8: Observability Stack
|
||||
**Goal**: Full visibility into cluster and application health via metrics, logs, and dashboards
|
||||
**Depends on**: Phase 7 (ArgoCD can deploy observability stack)
|
||||
**Requirements**: OBS-01, OBS-02, OBS-03, OBS-04, OBS-05, OBS-06, OBS-07, OBS-08
|
||||
**Success Criteria** (what must be TRUE):
|
||||
1. Grafana is accessible at grafana.tricnet.be with pre-built Kubernetes dashboards
|
||||
2. Prometheus scrapes metrics from TaskPlanner, Traefik, and k3s nodes
|
||||
3. Logs from all pods are queryable in Grafana Explore via Loki
|
||||
4. Alert fires when a pod crashes or restarts repeatedly (KubePodCrashLooping)
|
||||
5. TaskPlanner /metrics endpoint returns Prometheus-format metrics
|
||||
**Plans**: TBD
|
||||
|
||||
Plans:
|
||||
- [ ] 08-01: kube-prometheus-stack installation (Prometheus + Grafana)
|
||||
- [ ] 08-02: Loki + Alloy installation for log aggregation
|
||||
- [ ] 08-03: Critical alerts and TaskPlanner metrics endpoint
|
||||
|
||||
### Phase 9: CI Pipeline Hardening
|
||||
**Goal**: Tests run before build - type errors and test failures block deployment
|
||||
**Depends on**: Phase 8 (observability shows test/build failures)
|
||||
**Requirements**: CI-01, CI-02, CI-03, CI-04, CI-05
|
||||
**Success Criteria** (what must be TRUE):
|
||||
1. `npm run test:unit` runs Vitest and reports pass/fail
|
||||
2. `npm run check` runs svelte-check and catches type errors
|
||||
3. Pipeline fails before Docker build when unit tests fail
|
||||
4. Pipeline fails before Docker build when type checking fails
|
||||
5. E2E tests run in pipeline using Playwright Docker image
|
||||
**Plans**: TBD
|
||||
|
||||
Plans:
|
||||
- [ ] 09-01: Vitest setup and unit test structure
|
||||
- [ ] 09-02: Pipeline integration with fail-fast behavior
|
||||
|
||||
## Progress
|
||||
|
||||
**Execution Order:**
|
||||
Phases execute in numeric order: 1 -> 2 -> 3 -> 4 -> 5 -> 6
|
||||
Phases execute in numeric order: 7 -> 8 -> 9
|
||||
|
||||
| Phase | Plans Complete | Status | Completed |
|
||||
|-------|----------------|--------|-----------|
|
||||
| 1. Foundation | 2/2 | Complete ✓ | 2026-01-29 |
|
||||
| 2. Core CRUD | 4/4 | Complete ✓ | 2026-01-29 |
|
||||
| 3. Images | 4/4 | Complete ✓ | 2026-01-31 |
|
||||
| 4. Tags & Organization | 3/3 | Complete ✓ | 2026-01-31 |
|
||||
| 5. Search | 3/3 | Complete ✓ | 2026-01-31 |
|
||||
| 6. Deployment | 2/2 | Complete ✓ | 2026-02-01 |
|
||||
| Phase | Milestone | Plans Complete | Status | Completed |
|
||||
|-------|-----------|----------------|--------|-----------|
|
||||
| 1. Foundation | v1.0 | 2/2 | Complete | 2026-01-29 |
|
||||
| 2. Core CRUD | v1.0 | 4/4 | Complete | 2026-01-29 |
|
||||
| 3. Images | v1.0 | 4/4 | Complete | 2026-01-31 |
|
||||
| 4. Tags & Organization | v1.0 | 3/3 | Complete | 2026-01-31 |
|
||||
| 5. Search | v1.0 | 3/3 | Complete | 2026-01-31 |
|
||||
| 6. Deployment | v1.0 | 2/2 | Complete | 2026-02-01 |
|
||||
| 7. GitOps Foundation | v2.0 | 0/2 | Not started | - |
|
||||
| 8. Observability Stack | v2.0 | 0/3 | Not started | - |
|
||||
| 9. CI Pipeline Hardening | v2.0 | 0/2 | Not started | - |
|
||||
|
||||
---
|
||||
*Roadmap created: 2026-01-29*
|
||||
*Depth: standard (5-8 phases)*
|
||||
*Coverage: 31/31 v1 requirements mapped*
|
||||
*v2.0 phases added: 2026-02-03*
|
||||
*Depth: standard*
|
||||
*v1.0 Coverage: 31/31 requirements mapped*
|
||||
*v2.0 Coverage: 17/17 requirements mapped*
|
||||
|
||||
Reference in New Issue
Block a user