docs: create roadmap (3 phases)
This commit is contained in:
@@ -73,28 +73,28 @@
|
|||||||
|
|
||||||
| Requirement | Phase | Status |
|
| Requirement | Phase | Status |
|
||||||
|-------------|-------|--------|
|
|-------------|-------|--------|
|
||||||
| NOTE-01 | — | Pending |
|
| NOTE-01 | Phase 2 | Pending |
|
||||||
| NOTE-02 | — | Pending |
|
| NOTE-02 | Phase 2 | Pending |
|
||||||
| NOTE-03 | — | Pending |
|
| NOTE-03 | Phase 2 | Pending |
|
||||||
| DISP-01 | — | Pending |
|
| DISP-01 | Phase 2 | Pending |
|
||||||
| DISP-02 | — | Pending |
|
| DISP-02 | Phase 3 | Pending |
|
||||||
| DISP-03 | — | Pending |
|
| DISP-03 | Phase 3 | Pending |
|
||||||
| DISP-04 | — | Pending |
|
| DISP-04 | Phase 3 | Pending |
|
||||||
| DATA-01 | — | Pending |
|
| DATA-01 | Phase 1 | Pending |
|
||||||
| DATA-02 | — | Pending |
|
| DATA-02 | Phase 1 | Pending |
|
||||||
| DATA-03 | — | Pending |
|
| DATA-03 | Phase 1 | Pending |
|
||||||
| ACCS-01 | — | Pending |
|
| ACCS-01 | Phase 1 | Pending |
|
||||||
| ACCS-02 | — | Pending |
|
| ACCS-02 | Phase 1 | Pending |
|
||||||
| ACCS-03 | — | Pending |
|
| ACCS-03 | Phase 2 | Pending |
|
||||||
| UI-01 | — | Pending |
|
| UI-01 | Phase 2 | Pending |
|
||||||
| UI-02 | — | Pending |
|
| UI-02 | Phase 2 | Pending |
|
||||||
| UI-03 | — | Pending |
|
| UI-03 | Phase 2 | Pending |
|
||||||
|
|
||||||
**Coverage:**
|
**Coverage:**
|
||||||
- v1 requirements: 16 total
|
- v1 requirements: 16 total
|
||||||
- Mapped to phases: 0
|
- Mapped to phases: 16 ✓
|
||||||
- Unmapped: 16 ⚠️
|
- Unmapped: 0 ✓
|
||||||
|
|
||||||
---
|
---
|
||||||
*Requirements defined: 2026-02-13*
|
*Requirements defined: 2026-02-13*
|
||||||
*Last updated: 2026-02-13 after initial definition*
|
*Last updated: 2026-02-13 after roadmap creation*
|
||||||
|
|||||||
93
.planning/ROADMAP.md
Normal file
93
.planning/ROADMAP.md
Normal file
@@ -0,0 +1,93 @@
|
|||||||
|
# Roadmap: Member Notes System (會員備註系統)
|
||||||
|
|
||||||
|
## Overview
|
||||||
|
|
||||||
|
This roadmap delivers inline note-taking capabilities for the Taiwan NPO admin member list, enabling quick annotation without page navigation. The implementation follows a foundation-first approach: database schema and backend API (Phase 1), followed by inline quick-add UI delivering core value (Phase 2), and concluding with full note history and display features (Phase 3). All work leverages the existing Laravel 10 + Alpine.js + Tailwind stack with zero new dependencies.
|
||||||
|
|
||||||
|
## Phases
|
||||||
|
|
||||||
|
**Phase Numbering:**
|
||||||
|
- Integer phases (1, 2, 3): Planned milestone work
|
||||||
|
- Decimal phases (2.1, 2.2): Urgent insertions (marked with INSERTED)
|
||||||
|
|
||||||
|
Decimal phases appear between their surrounding integers in numeric order.
|
||||||
|
|
||||||
|
- [ ] **Phase 1: Database Schema & Backend API** - Foundation layer with polymorphic relationships
|
||||||
|
- [ ] **Phase 2: Inline Quick-Add UI** - Core value: quick annotation from member list
|
||||||
|
- [ ] **Phase 3: Note History & Display** - Full note viewing and search capabilities
|
||||||
|
|
||||||
|
## Phase Details
|
||||||
|
|
||||||
|
### Phase 1: Database Schema & Backend API
|
||||||
|
**Goal**: Establish database foundation and backend endpoints for note storage and retrieval
|
||||||
|
|
||||||
|
**Depends on**: Nothing (first phase)
|
||||||
|
|
||||||
|
**Requirements**: DATA-01, DATA-02, DATA-03, ACCS-01, ACCS-02
|
||||||
|
|
||||||
|
**Success Criteria** (what must be TRUE):
|
||||||
|
1. Notes table exists with polymorphic columns (`notable_type`, `notable_id`) and proper indexes
|
||||||
|
2. Admin can create a note via POST endpoint with text, member ID, and author auto-captured
|
||||||
|
3. Admin can retrieve all notes for a member via GET endpoint with author name and timestamps
|
||||||
|
4. Member list shows accurate note count for each member without N+1 queries
|
||||||
|
5. Note creation events are logged in audit trail with action and metadata
|
||||||
|
|
||||||
|
**Plans**: TBD
|
||||||
|
|
||||||
|
Plans:
|
||||||
|
- [ ] TBD (will be defined in plan-phase)
|
||||||
|
|
||||||
|
### Phase 2: Inline Quick-Add UI
|
||||||
|
**Goal**: Deliver core value — admins can annotate members inline without page navigation
|
||||||
|
|
||||||
|
**Depends on**: Phase 1
|
||||||
|
|
||||||
|
**Requirements**: NOTE-01, NOTE-02, NOTE-03, DISP-01, UI-01, UI-02, UI-03, ACCS-03
|
||||||
|
|
||||||
|
**Success Criteria** (what must be TRUE):
|
||||||
|
1. Each member row displays a note count badge showing number of notes
|
||||||
|
2. Admin can click an inline form to add a note without leaving the member list page
|
||||||
|
3. After submitting a note, the badge updates immediately and the form clears
|
||||||
|
4. Note submission shows loading state during AJAX request (disabled button)
|
||||||
|
5. Validation errors display in Traditional Chinese below the form field
|
||||||
|
6. All note UI elements work correctly in both light and dark mode
|
||||||
|
7. Quick-add functionality works across paginated member list pages (pages 1, 2, 3+)
|
||||||
|
|
||||||
|
**Plans**: TBD
|
||||||
|
|
||||||
|
Plans:
|
||||||
|
- [ ] TBD (will be defined in plan-phase)
|
||||||
|
|
||||||
|
### Phase 3: Note History & Display
|
||||||
|
**Goal**: Complete the note feature with full history viewing and search
|
||||||
|
|
||||||
|
**Depends on**: Phase 2
|
||||||
|
|
||||||
|
**Requirements**: DISP-02, DISP-03, DISP-04
|
||||||
|
|
||||||
|
**Success Criteria** (what must be TRUE):
|
||||||
|
1. Admin can click the note count badge to expand an inline panel showing all notes for that member
|
||||||
|
2. Notes display in chronological order (newest first) with author name and formatted datetime
|
||||||
|
3. Panel shows empty state message ("尚無備註") when member has no notes
|
||||||
|
4. Admin can filter/search notes by text content within a member's note history
|
||||||
|
5. Expanded panel collapses cleanly without affecting other member rows
|
||||||
|
|
||||||
|
**Plans**: TBD
|
||||||
|
|
||||||
|
Plans:
|
||||||
|
- [ ] TBD (will be defined in plan-phase)
|
||||||
|
|
||||||
|
## Progress
|
||||||
|
|
||||||
|
**Execution Order:**
|
||||||
|
Phases execute in numeric order: 1 → 2 → 3
|
||||||
|
|
||||||
|
| Phase | Plans Complete | Status | Completed |
|
||||||
|
|-------|----------------|--------|-----------|
|
||||||
|
| 1. Database Schema & Backend API | 0/TBD | Not started | - |
|
||||||
|
| 2. Inline Quick-Add UI | 0/TBD | Not started | - |
|
||||||
|
| 3. Note History & Display | 0/TBD | Not started | - |
|
||||||
|
|
||||||
|
---
|
||||||
|
*Roadmap created: 2026-02-13*
|
||||||
|
*Last updated: 2026-02-13*
|
||||||
63
.planning/STATE.md
Normal file
63
.planning/STATE.md
Normal file
@@ -0,0 +1,63 @@
|
|||||||
|
# Project State
|
||||||
|
|
||||||
|
## Project Reference
|
||||||
|
|
||||||
|
See: .planning/PROJECT.md (updated 2026-02-13)
|
||||||
|
|
||||||
|
**Core value:** The chairman can annotate any member with timestamped notes directly from the member list, without navigating away from the page.
|
||||||
|
|
||||||
|
**Current focus:** Phase 1 - Database Schema & Backend API
|
||||||
|
|
||||||
|
## Current Position
|
||||||
|
|
||||||
|
Phase: 1 of 3 (Database Schema & Backend API)
|
||||||
|
Plan: 0 of TBD in current phase
|
||||||
|
Status: Ready to plan
|
||||||
|
Last activity: 2026-02-13 — Roadmap created with 3 phases covering all 16 v1 requirements
|
||||||
|
|
||||||
|
Progress: [░░░░░░░░░░] 0%
|
||||||
|
|
||||||
|
## Performance Metrics
|
||||||
|
|
||||||
|
**Velocity:**
|
||||||
|
- Total plans completed: 0
|
||||||
|
- Average duration: - min
|
||||||
|
- Total execution time: 0.0 hours
|
||||||
|
|
||||||
|
**By Phase:**
|
||||||
|
|
||||||
|
| Phase | Plans | Total | Avg/Plan |
|
||||||
|
|-------|-------|-------|----------|
|
||||||
|
| - | - | - | - |
|
||||||
|
|
||||||
|
**Recent Trend:**
|
||||||
|
- Last 5 plans: None yet
|
||||||
|
- Trend: Not enough data
|
||||||
|
|
||||||
|
*Updated after each plan completion*
|
||||||
|
|
||||||
|
## Accumulated Context
|
||||||
|
|
||||||
|
### Decisions
|
||||||
|
|
||||||
|
Decisions are logged in PROJECT.md Key Decisions table.
|
||||||
|
Recent decisions affecting current work:
|
||||||
|
|
||||||
|
- Enhance existing member list vs new page: User wants notes integrated into existing workflow (outcome pending)
|
||||||
|
- Shared notes (all admin roles): Chairman wants transparency across admin roles (outcome pending)
|
||||||
|
- Append-only notes (no edit/delete): Maintains audit integrity for member observations (outcome pending)
|
||||||
|
- Alpine.js inline UI: Matches existing stack and avoids full page reloads (outcome pending)
|
||||||
|
|
||||||
|
### Pending Todos
|
||||||
|
|
||||||
|
None yet.
|
||||||
|
|
||||||
|
### Blockers/Concerns
|
||||||
|
|
||||||
|
None yet.
|
||||||
|
|
||||||
|
## Session Continuity
|
||||||
|
|
||||||
|
Last session: 2026-02-13
|
||||||
|
Stopped at: Roadmap creation complete, ready to plan Phase 1
|
||||||
|
Resume file: None
|
||||||
Reference in New Issue
Block a user