docs: define v1 requirements
31 requirements across 8 categories: - Core (6): CRUD, task/thought distinction, completion - Images (4): attachments, camera capture, view/remove - Tags (4): add/remove, autocomplete, case-insensitive - Organization (3): pin/favorite, due dates - Search (4): full-text, tag filter, date filter, type filter - Capture (3): quick capture mode - UX (3): mobile, readable fonts, browser support - Deployment (4): Docker, env config, volumes 10 requirements deferred to v2 11 features explicitly out of scope
This commit is contained in:
148
.planning/REQUIREMENTS.md
Normal file
148
.planning/REQUIREMENTS.md
Normal file
@@ -0,0 +1,148 @@
|
|||||||
|
# Requirements: TaskPlanner
|
||||||
|
|
||||||
|
**Defined:** 2026-01-29
|
||||||
|
**Core Value:** Capture and find anything from any device — especially laptop. If cross-device capture with images doesn't work, nothing else matters.
|
||||||
|
|
||||||
|
## v1 Requirements
|
||||||
|
|
||||||
|
Requirements for initial release. Each maps to roadmap phases.
|
||||||
|
|
||||||
|
### Core
|
||||||
|
|
||||||
|
- [ ] **CORE-01**: User can create a new entry (task or thought)
|
||||||
|
- [ ] **CORE-02**: User can edit an existing entry
|
||||||
|
- [ ] **CORE-03**: User can delete an entry
|
||||||
|
- [ ] **CORE-04**: User can mark entry as task or thought when creating
|
||||||
|
- [ ] **CORE-05**: User can mark a task as complete
|
||||||
|
- [ ] **CORE-06**: User can add notes to an existing entry
|
||||||
|
|
||||||
|
### Images
|
||||||
|
|
||||||
|
- [ ] **IMG-01**: User can attach images to an entry via file upload
|
||||||
|
- [ ] **IMG-02**: User can attach images via camera capture (mobile)
|
||||||
|
- [ ] **IMG-03**: User can view attached images on an entry
|
||||||
|
- [ ] **IMG-04**: User can remove an image attachment
|
||||||
|
|
||||||
|
### Tags
|
||||||
|
|
||||||
|
- [ ] **TAG-01**: User can add tags to an entry
|
||||||
|
- [ ] **TAG-02**: User can remove tags from an entry
|
||||||
|
- [ ] **TAG-03**: User sees autocomplete suggestions from existing tags
|
||||||
|
- [ ] **TAG-04**: Tags are case-insensitive ("work" = "Work" = "WORK")
|
||||||
|
|
||||||
|
### Organization
|
||||||
|
|
||||||
|
- [ ] **ORG-01**: User can pin/favorite an entry for quick access
|
||||||
|
- [ ] **ORG-02**: User can set a due date on a task
|
||||||
|
- [ ] **ORG-03**: Pinned entries appear in a dedicated section
|
||||||
|
|
||||||
|
### Search
|
||||||
|
|
||||||
|
- [ ] **SRCH-01**: User can search entries by text (title and content)
|
||||||
|
- [ ] **SRCH-02**: User can filter entries by tag
|
||||||
|
- [ ] **SRCH-03**: User can filter entries by date range
|
||||||
|
- [ ] **SRCH-04**: User can filter to show only tasks or only thoughts
|
||||||
|
|
||||||
|
### Capture
|
||||||
|
|
||||||
|
- [ ] **CAPT-01**: User can quickly capture a new entry with minimal friction
|
||||||
|
- [ ] **CAPT-02**: Quick capture defaults to thought (less friction than choosing)
|
||||||
|
- [ ] **CAPT-03**: Quick capture is accessible from main view
|
||||||
|
|
||||||
|
### UX
|
||||||
|
|
||||||
|
- [ ] **UX-01**: UI works well on mobile devices (touch targets, layout)
|
||||||
|
- [ ] **UX-02**: Font sizes are readable for older eyes (configurable or large default)
|
||||||
|
- [ ] **UX-03**: UI works in any modern browser (Chrome, Firefox, Safari, Edge)
|
||||||
|
|
||||||
|
### Deployment
|
||||||
|
|
||||||
|
- [ ] **DEPLOY-01**: App runs in a Docker container
|
||||||
|
- [ ] **DEPLOY-02**: Configuration via environment variables
|
||||||
|
- [ ] **DEPLOY-03**: Data persists via named Docker volumes
|
||||||
|
- [ ] **DEPLOY-04**: Single docker-compose.yml for easy deployment
|
||||||
|
|
||||||
|
## v2 Requirements
|
||||||
|
|
||||||
|
Deferred to future release. Tracked but not in current roadmap.
|
||||||
|
|
||||||
|
### Polish
|
||||||
|
|
||||||
|
- **POL-01**: Dark mode with theme toggle
|
||||||
|
- **POL-02**: Keyboard shortcuts for common actions
|
||||||
|
- **POL-03**: Export entries to JSON/Markdown
|
||||||
|
- **POL-04**: Drag-and-drop reorder of entries
|
||||||
|
|
||||||
|
### Advanced
|
||||||
|
|
||||||
|
- **ADV-01**: Markdown support in entry content
|
||||||
|
- **ADV-02**: Natural language date parsing ("tomorrow", "next Monday")
|
||||||
|
- **ADV-03**: Recurring tasks
|
||||||
|
- **ADV-04**: OCR text extraction from images
|
||||||
|
- **ADV-05**: Note linking with backlinks
|
||||||
|
- **ADV-06**: Offline support with sync
|
||||||
|
|
||||||
|
## Out of Scope
|
||||||
|
|
||||||
|
Explicitly excluded. Documented to prevent scope creep.
|
||||||
|
|
||||||
|
| Feature | Reason |
|
||||||
|
|---------|--------|
|
||||||
|
| Real-time collaboration | Personal tool, single user — massive complexity for no value |
|
||||||
|
| Multi-user authentication | Single-user by design, no need for user management |
|
||||||
|
| AI-powered categorization | Over-engineering; manual tags are clearer and simpler |
|
||||||
|
| Complex folder hierarchies | Flat + tags is more flexible; nesting creates friction |
|
||||||
|
| Kanban boards | Overhead for personal tasks; simple list is enough |
|
||||||
|
| Multiple note types | Task/thought distinction is enough; more types complicate model |
|
||||||
|
| Social features | Out of scope for self-hosted personal app |
|
||||||
|
| Heavy WYSIWYG editor | Bloated and complex; plain text or defer to Markdown |
|
||||||
|
| Push notifications | Browser notifications are unreliable and annoying |
|
||||||
|
| Version history | Storage overhead; simple edit is fine for personal use |
|
||||||
|
| Mobile native app | Web-first; browser works on all devices |
|
||||||
|
|
||||||
|
## Traceability
|
||||||
|
|
||||||
|
Which phases cover which requirements. Updated during roadmap creation.
|
||||||
|
|
||||||
|
| Requirement | Phase | Status |
|
||||||
|
|-------------|-------|--------|
|
||||||
|
| CORE-01 | TBD | Pending |
|
||||||
|
| CORE-02 | TBD | Pending |
|
||||||
|
| CORE-03 | TBD | Pending |
|
||||||
|
| CORE-04 | TBD | Pending |
|
||||||
|
| CORE-05 | TBD | Pending |
|
||||||
|
| CORE-06 | TBD | Pending |
|
||||||
|
| IMG-01 | TBD | Pending |
|
||||||
|
| IMG-02 | TBD | Pending |
|
||||||
|
| IMG-03 | TBD | Pending |
|
||||||
|
| IMG-04 | TBD | Pending |
|
||||||
|
| TAG-01 | TBD | Pending |
|
||||||
|
| TAG-02 | TBD | Pending |
|
||||||
|
| TAG-03 | TBD | Pending |
|
||||||
|
| TAG-04 | TBD | Pending |
|
||||||
|
| ORG-01 | TBD | Pending |
|
||||||
|
| ORG-02 | TBD | Pending |
|
||||||
|
| ORG-03 | TBD | Pending |
|
||||||
|
| SRCH-01 | TBD | Pending |
|
||||||
|
| SRCH-02 | TBD | Pending |
|
||||||
|
| SRCH-03 | TBD | Pending |
|
||||||
|
| SRCH-04 | TBD | Pending |
|
||||||
|
| CAPT-01 | TBD | Pending |
|
||||||
|
| CAPT-02 | TBD | Pending |
|
||||||
|
| CAPT-03 | TBD | Pending |
|
||||||
|
| UX-01 | TBD | Pending |
|
||||||
|
| UX-02 | TBD | Pending |
|
||||||
|
| UX-03 | TBD | Pending |
|
||||||
|
| DEPLOY-01 | TBD | Pending |
|
||||||
|
| DEPLOY-02 | TBD | Pending |
|
||||||
|
| DEPLOY-03 | TBD | Pending |
|
||||||
|
| DEPLOY-04 | TBD | Pending |
|
||||||
|
|
||||||
|
**Coverage:**
|
||||||
|
- v1 requirements: 31 total
|
||||||
|
- Mapped to phases: 0
|
||||||
|
- Unmapped: 31 (will be mapped during roadmap creation)
|
||||||
|
|
||||||
|
---
|
||||||
|
*Requirements defined: 2026-01-29*
|
||||||
|
*Last updated: 2026-01-29 after initial definition*
|
||||||
Reference in New Issue
Block a user