aboutsummaryrefslogtreecommitdiffhomepage
path: root/docs/dev
AgeCommit message (Collapse)Author
2025-12-07feat(pwa): add PWA support with vite-plugin-pwansfisis
Configure Progressive Web App functionality: - Add vite-plugin-pwa with workbox for service worker - Create web manifest with app metadata and icons - Add offline fallback page for when network is unavailable - Update index.html with PWA meta tags and theme color 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-07feat(client): add study session page with card flip and rating UInsfisis
Implements the complete study flow frontend: - Study session page with card display and flip interaction - Rating buttons (Again, Hard, Good, Easy) with keyboard shortcuts - Progress display showing remaining cards count - Session complete screen with review summary - Study Now button on deck detail page 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-07feat(server): add study session API with FSRS integrationnsfisis
Implement study endpoints for spaced repetition learning: - GET /api/decks/:deckId/study to fetch due cards - POST /api/decks/:deckId/study/:cardId to submit reviews - Integrate ts-fsrs library for scheduling algorithm - Add ReviewLog repository for tracking review history 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-07feat(client): add delete card modal with confirmationnsfisis
Completes Phase 5 card management by adding the ability to delete cards with a confirmation dialog. Includes unit tests for the modal component and integration tests for the delete flow in DeckDetailPage. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-07feat(client): add edit card modal with form validationnsfisis
Add EditCardModal component allowing users to edit existing cards. Includes Edit button on each card in the deck detail page and comprehensive unit tests. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-07feat(client): add create card modal with form validationnsfisis
Add CreateCardModal component to allow users to create new flashcards with front and back text fields. Integrate the modal into DeckDetailPage with an "Add Card" button. Include comprehensive unit tests. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-07feat(client): add card list view in deck detail pagensfisis
Add DeckDetailPage component that displays all cards in a deck with their front/back content, state, review count, and lapses. Deck names on HomePage are now clickable links to navigate to the deck detail view. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-07feat(server): add card CRUD endpointsnsfisis
Implement card management API with create, read, update, and delete operations. Cards are nested under decks (/api/decks/:deckId/cards) with deck ownership verification on all operations. - Add Card interface and CardRepository to repository types - Create cardRepository with CRUD operations and soft delete - Add card routes with Zod validation and auth middleware - Include 29 tests covering all endpoints and error cases 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-07test(client): add deck management integration testsnsfisis
Add Edit Deck and Delete Deck integration tests to HomePage.test.tsx, verifying modal interactions and list refresh behavior after CRUD operations. Completes Phase 4 frontend testing. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-07feat(client): add delete deck modal with confirmationnsfisis
Add DeleteDeckModal component that prompts users for confirmation before deleting a deck. Includes warning about permanent deletion and all associated cards. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-07feat(client): add edit deck modal with form validationnsfisis
Add EditDeckModal component that allows users to edit existing decks. The modal pre-populates with current deck values and supports updating name and description fields with proper validation and error handling. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-07feat(client): add create deck modal with form validationnsfisis
Add CreateDeckModal component that allows users to create new decks with name and optional description fields. Integrates with HomePage via a "Create Deck" button that opens the modal, and refreshes the deck list after successful creation. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-07feat(client): add deck list page with empty state and list viewnsfisis
Implement HomePage to display user's decks fetched from the API. Includes loading state, error handling with retry, and empty state messaging. Also adds comprehensive tests for the deck list page. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-07feat(server): add Deck CRUD endpoints with testsnsfisis
Implement complete Deck management API: - GET /api/decks - List user's decks - POST /api/decks - Create new deck - GET /api/decks/:id - Get deck by ID - PUT /api/decks/:id - Update deck - DELETE /api/decks/:id - Soft delete deck All endpoints require authentication and scope data to the authenticated user. Includes 22 unit tests covering success and error cases. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-07docs: add comprehensive README with setup and usage instructionsnsfisis
Add production quick start guide, development setup instructions, environment variables reference, scripts table, and Docker commands. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-07feat(client): remove registration pagensfisis
2025-12-06build(server): add Dockerfilesnsfisis
Add build pipeline with esbuild for production bundling. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-06chore(dev): update roadmapnsfisis
2025-12-06feat(client): add protected route handling with login redirectnsfisis
Unauthenticated users accessing protected pages (like HomePage) are now redirected to the login page. Includes ProtectedRoute component with loading state support. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-06feat(client): add auth store with React contextnsfisis
Implements token management via AuthProvider context that wraps the app. Provides useAuth hook for components to access auth state and actions (login, register, logout). Includes comprehensive tests. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-06feat(client): add API client with auth header supportnsfisis
Implements fetch wrapper that handles JWT authentication, automatic token refresh on 401 responses, and provides typed methods for REST operations. Includes comprehensive tests. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-06feat(client): setup routing with wouternsfisis
Add wouter router with pages for home, login, register, and 404. Include tests for all routes using @testing-library/react. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-06feat(client): initialize React + Vite frontend foundationnsfisis
Set up the client-side React application with Vite bundler: - Add React 19 and Vite 7 with the React plugin - Create index.html entry point and App component - Configure Vite with API proxy to backend server - Add client build scripts to package.json - Update tsconfig for React JSX and DOM types - Fix TypeScript errors in auth code (JWT_SECRET type narrowing) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-06feat(dev): change architecture and directory structurensfisis
2025-12-04chore(dev): update roadmap.mdnsfisis
2025-12-04refactor(auth): introduce repository pattern for database accessnsfisis
Add repository types and implementations to abstract database operations, improving testability and separation of concerns. The auth routes now use dependency injection with UserRepository and RefreshTokenRepository interfaces, making tests simpler by mocking interfaces instead of Drizzle query builders. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-04test(auth): add tests for refresh token endpointnsfisis
Add comprehensive tests for POST /refresh endpoint covering: - Valid refresh token returns new access/refresh tokens - Invalid refresh token returns 401 - Expired refresh token returns 401 - User not found returns 401 - Missing/empty refresh token returns 422 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-04feat(auth): add auth middleware for JWT validationnsfisis
Add middleware that validates JWT tokens from Authorization header and sets authenticated user in request context. Includes helper function getAuthUser() to retrieve user from context with proper error handling. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-04feat(auth): add refresh token endpointnsfisis
Implement refresh token functionality for authentication: - Add refresh_tokens table to database schema with user reference - Generate migration for the new table - Login endpoint now returns both access token and refresh token - Add POST /api/auth/refresh endpoint with token rotation - Refresh tokens are hashed (SHA256) before storage for security - Tokens expire after 7 days, access tokens after 15 minutes - Update tests to cover new functionality 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-04chore(dev): update roadmap.mdnsfisis
2025-12-04feat(auth): add login endpoint with JWTnsfisis
Implement POST /api/auth/login endpoint that validates credentials and returns a JWT access token on successful authentication. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-04feat(auth): add user registration endpointnsfisis
Implement POST /api/auth/register endpoint with: - Argon2 password hashing - Zod validation for username (1-255 chars) and password (8-255 chars) - Duplicate username check (returns 409 Conflict) - Returns created user with id, username, and createdAt 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-04feat(shared): add Zod validation schemasnsfisis
Add Zod validation schemas for all data models (User, Deck, Card, ReviewLog) along with input schemas for API endpoints (create, update, login, submit review). 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-04feat(shared): define types (User, Deck, Card, ReviewLog)nsfisis
Add TypeScript type definitions for core data models used across client and server. Types are consistent with Drizzle schema defined in server. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-04feat(db): add database migrationsnsfisis
Generate initial migration file for all schema tables (users, decks, cards, review_logs) using Drizzle Kit. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-04feat(db): add Drizzle ORM setupnsfisis
Add Drizzle ORM with PostgreSQL for database access. Includes: - Schema definitions for users, decks, cards, and review_logs tables - Database connection with node-postgres driver - Drizzle Kit configuration for migrations - npm scripts for db:generate, db:migrate, db:push, db:studio 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-04feat(db): add Docker Compose for PostgreSQLnsfisis
Add docker-compose.yml with PostgreSQL 17 Alpine image for local development. Includes healthcheck, volume persistence, and environment variable configuration. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-04feat(server): add logger middlewarensfisis
Use Hono's built-in logger middleware to log HTTP requests with method, path, status, and response time. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-04feat(server): add error handling middlewarensfisis
Add global error handling middleware for Hono with: - AppError class for application-specific errors with status codes - Errors factory for common HTTP errors (badRequest, unauthorized, etc.) - Consistent JSON error response format - Tests covering all error types 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-04test(server): add Hono app integration testsnsfisis
Add tests for the root endpoint and /api/health endpoint to verify the Hono server is working correctly. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-04feat(server): setup Vitest testing frameworknsfisis
Add Vitest as the test runner for the server package with configuration for global test APIs. Update root package.json to run tests across all packages. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-04feat(server): initialize Hono appnsfisis
Setup basic Hono server with health check endpoint. Adds dev, build, and start scripts using Node.js native TypeScript execution. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-04feat(dev): configure Biome linternsfisis
Add Biome for linting and formatting with recommended rules. Reformat existing JSON files to use tabs. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-04chore(dev): update roadmapnsfisis
2025-11-30setup pnpm and tscnsfisis
2025-11-30prepare docsnsfisis