diff options
| author | nsfisis <nsfisis@gmail.com> | 2025-12-30 22:58:54 +0900 |
|---|---|---|
| committer | nsfisis <nsfisis@gmail.com> | 2025-12-30 22:58:54 +0900 |
| commit | 8b00732936d0470fd2d01cec9e6d9822d0e9ff32 (patch) | |
| tree | d1d61ebbe2a62d7bc66a4601493388b48ac2fd61 /docs | |
| parent | 9c8f77665248086005d7c1926b1ada3844ca763f (diff) | |
| download | kioku-8b00732936d0470fd2d01cec9e6d9822d0e9ff32.tar.gz kioku-8b00732936d0470fd2d01cec9e6d9822d0e9ff32.tar.zst kioku-8b00732936d0470fd2d01cec9e6d9822d0e9ff32.zip | |
docs: replace dev roadmap with user-facing feature list
Roadmap served its purpose through development phases. Added a
feature list in docs/manual for users to understand capabilities.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Diffstat (limited to 'docs')
| -rw-r--r-- | docs/dev/roadmap.md | 216 | ||||
| -rw-r--r-- | docs/manual/features.md | 37 |
2 files changed, 37 insertions, 216 deletions
diff --git a/docs/dev/roadmap.md b/docs/dev/roadmap.md deleted file mode 100644 index 498ef11..0000000 --- a/docs/dev/roadmap.md +++ /dev/null @@ -1,216 +0,0 @@ -# Kioku Development Roadmap - -Each feature is implemented end-to-end (backend to frontend) before moving to the next. -Smaller features first to enable early MVP validation. - ---- - -## Phase 1: Foundation ✅ - -### Project Setup -- [x] Create docs/dev/architecture.md -- [x] Create docs/dev/roadmap.md -- [x] Initialize pnpm workspace -- [x] Configure TypeScript -- [x] Configure Biome - -### Server Foundation -- [x] Initialize Hono app -- [x] Setup Vitest -- [x] Add simple test to test that Hono works -- [x] Error handling middleware -- [x] Logger middleware - -### Database -- [x] Docker Compose with PostgreSQL -- [x] Drizzle ORM setup -- [x] Database migrations - -### Shared Package -- [x] Create pkgs/shared -- [x] Define types (User, Deck, Card, ReviewLog) -- [x] Zod validation schemas - -### Authentication API -- [x] User registration endpoint -- [x] Login endpoint (JWT) -- [x] Refresh token endpoint -- [x] Auth middleware -- [x] Add tests -- [x] Define repository types and avoid direct use of DB - ---- - -## Phase 2: Auth UI - -**Goal**: Minimal UI for user login and registration - -### Frontend Foundation -- [x] Initialize React + Vite -- [x] Setup routing -- [x] API client (fetch wrapper with auth headers) -- [x] Auth store (token management) - -### Auth Pages -- [x] Register page -- [x] Login page -- [x] Protected route handling (redirect to login) -- [x] Add tests - -**✅ Milestone**: Users can log in from the browser - ---- - -## Phase 3: Deployment - -### Docker -- [x] Dockerfile for server -- [x] Dockerfile for web (static build) -- [x] compose.yml (full stack) - -### Documentation -- [x] README.md (setup, usage) - -**✅ Milestone**: Ready for production deployment - ---- - -## Phase 4: Deck Management - -**Goal**: Create, edit, and delete decks - -### Server API -- [x] Deck CRUD endpoints (GET, POST, PUT, DELETE) -- [x] Add tests - -### Frontend -- [x] Deck list page (empty state, list view) -- [x] Create deck modal/form -- [x] Edit deck -- [x] Delete deck (with confirmation) -- [x] Add tests - -**✅ Milestone**: Users can create and manage decks - ---- - -## Phase 5: Card Management - -**Goal**: Create, edit, and delete cards - -### Server API -- [x] Card CRUD endpoints (GET, POST, PUT, DELETE) -- [x] Add tests - -### Frontend -- [x] Card list view (in deck detail page) -- [x] Create card form (front/back) -- [x] Edit card -- [x] Delete card -- [x] Add tests - -**✅ Milestone**: Users can create and manage cards - ---- - -## Phase 6: Study Session (MVP Complete) - -**Goal**: Study with FSRS algorithm - -### Server API -- [x] ts-fsrs integration -- [x] GET /api/decks/:deckId/study - Get due cards -- [x] POST /api/decks/:deckId/study/:cardId - Submit review -- [x] Add tests - -### Frontend -- [x] Study session page -- [x] Card flip interaction -- [x] Rating buttons (Again, Hard, Good, Easy) -- [x] Progress display (remaining cards) -- [x] Session complete screen -- [x] Add tests - -**✅ Milestone**: MVP complete - basic study flow works - ---- - -## Phase 7: PWA & Offline Support - -**Goal**: Study offline - -### PWA Setup -- [x] vite-plugin-pwa configuration -- [x] Web manifest -- [x] Service Worker -- [x] Offline fallback page -- [x] Add tests - -### IndexedDB (Local Storage) -- [x] Dexie.js setup -- [x] Local schema (with _synced flag) -- [x] Local CRUD operations for Deck/Card/ReviewLog -- [x] Add tests - -### Sync Engine -- [x] POST /api/sync/push endpoint -- [x] GET /api/sync/pull endpoint -- [x] Client: Sync queue management -- [x] Client: Push implementation -- [x] Client: Pull implementation -- [x] Conflict resolution (Last-Write-Wins) -- [x] Auto-sync on reconnect -- [x] Add tests - -### Sync UI -- [x] Sync status indicator -- [x] Manual sync button -- [x] Offline mode indicator - -**✅ Milestone**: Study offline and sync when back online - ---- - -## Phase 8: Anki Import - -**Goal**: Import existing Anki decks (.apkg, .colpkg) - -### Parser -- [x] ZIP extraction -- [x] SQLite database reading -- [x] Note/Card mapping to Kioku format -- [x] Add tests - -### Server command -- [x] Add `src/server/scripts/import-anki.ts` - -**✅ Milestone**: Anki users can migrate their decks - ---- - -## Phase 9: Security Hardening - -**Goal**: Address security vulnerabilities identified in code review - -### High Priority -- [x] Add rate limiting to login endpoint (brute force protection) -- [x] Configure CORS middleware - -### Medium Priority -- [x] Fix card update authorization in sync push (verify existing card ownership) -- [x] Unify password length requirement (add-user.ts: 8 chars → 15 chars) - -### Low Priority -- [ ] Consider httpOnly cookie for token storage (XSS mitigation) - ---- - -## Future Considerations - -By priority: - -1. **Statistics and analytics** - Visualize learning progress -2. **Keyboard shortcuts** - Improve study efficiency -3. **Tags and search** - Organize decks and cards -4. **Export functionality** - Data portability -5. **Multiple card types** - Cloze deletion, etc. diff --git a/docs/manual/features.md b/docs/manual/features.md new file mode 100644 index 0000000..0d712cd --- /dev/null +++ b/docs/manual/features.md @@ -0,0 +1,37 @@ +# Kioku Features + +A list of features available in Kioku. + +## Deck Management + +- Create, edit, and delete decks +- View all decks at a glance +- Confirmation dialog before deletion + +## Card Management + +- Create, edit, and delete cards within decks +- Browse all cards in a deck +- Front/back text fields for flashcards + +## Study Session + +- Smart scheduling using the FSRS algorithm +- Flip cards to reveal answers +- Rate your recall: Again, Hard, Good, Easy +- See remaining cards in the session +- Completion screen when finished + +## Offline Support & Sync + +- Works offline: Study anywhere without an internet connection +- Installable: Add to your home screen as a native-like app (PWA) +- Cloud sync: Your progress syncs across devices when online +- Sync indicator: See your sync status at a glance +- Manual sync: Force sync with a button tap +- Offline indicator: Know when you're working offline + +## Anki Import + +- Import existing Anki decks (`.apkg` / `.colpkg` files) +- Seamlessly migrate your flashcards to Kioku |
