docs: create roadmap (3 phases)

This commit is contained in:
2026-02-13 11:44:07 +08:00
parent a8623841ae
commit 8779762402
3 changed files with 175 additions and 19 deletions

View File

@@ -73,28 +73,28 @@
| Requirement | Phase | Status |
|-------------|-------|--------|
| NOTE-01 | | Pending |
| NOTE-02 | | Pending |
| NOTE-03 | | Pending |
| DISP-01 | | Pending |
| DISP-02 | | Pending |
| DISP-03 | | Pending |
| DISP-04 | | Pending |
| DATA-01 | | Pending |
| DATA-02 | | Pending |
| DATA-03 | | Pending |
| ACCS-01 | | Pending |
| ACCS-02 | | Pending |
| ACCS-03 | | Pending |
| UI-01 | | Pending |
| UI-02 | | Pending |
| UI-03 | | Pending |
| NOTE-01 | Phase 2 | Pending |
| NOTE-02 | Phase 2 | Pending |
| NOTE-03 | Phase 2 | Pending |
| DISP-01 | Phase 2 | Pending |
| DISP-02 | Phase 3 | Pending |
| DISP-03 | Phase 3 | Pending |
| DISP-04 | Phase 3 | Pending |
| DATA-01 | Phase 1 | Pending |
| DATA-02 | Phase 1 | Pending |
| DATA-03 | Phase 1 | Pending |
| ACCS-01 | Phase 1 | Pending |
| ACCS-02 | Phase 1 | Pending |
| ACCS-03 | Phase 2 | Pending |
| UI-01 | Phase 2 | Pending |
| UI-02 | Phase 2 | Pending |
| UI-03 | Phase 2 | Pending |
**Coverage:**
- v1 requirements: 16 total
- Mapped to phases: 0
- Unmapped: 16 ⚠️
- Mapped to phases: 16 ✓
- Unmapped: 0 ✓
---
*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
View 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
View 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