List view
**Goal**: Prepare codebase for backend integration #### Tasks - [ ] Design API endpoints - [ ] Create API service layer structure - [ ] Abstract storage layer - [ ] Plan migration from localStorage to API - [ ] Document API integration plan - [ ] Identify breaking changes needed - [ ] Create migration guide - [ ] Update architecture diagrams #### Learning Objectives - Learn API design principles - Understand service layer abstraction - Plan for scalability - Migration strategies #### Deliverables - ✅ API design document - ✅ Service layer abstraction - ✅ Migration plan - ✅ Updated architecture #### Assignment Distribution - **Both Students**: Collaborative planning
No due date**Goal**: Achieve comprehensive test coverage and documentation #### Tasks - [ ] Achieve 80%+ test coverage - [ ] Migrate from Jest to Vitest - [ ] Add integration tests - [ ] Test all user flows - [ ] Update documentation - [ ] Create user guide - [ ] Add inline code comments - [ ] Create demo video/screenshots - [ ] Prepare for presentation #### Learning Objectives - Master testing strategies - Learn Vitest migration - Practice technical documentation - Presentation skills #### Deliverables - ✅ 80%+ test coverage - ✅ All tests passing - ✅ Complete documentation - ✅ Ready for demo #### Assignment Distribution - **Both Students**: Collaborative testing and documentation
No due date**Goal**: Refine application and optimize performance #### Tasks - [ ] Add loading states - [ ] Add empty states - [ ] Improve error handling - [ ] Add toast notifications (optional) - [ ] Optimize re-renders - [ ] Add keyboard shortcuts (optional) - [ ] Improve mobile responsiveness - [ ] Accessibility audit and fixes - [ ] Code refactoring - [ ] Documentation updates #### Learning Objectives - Learn performance optimization - Understand accessibility best practices - Practice code refactoring - User experience improvements #### Deliverables - ✅ Polished user interface - ✅ Smooth user experience - ✅ Accessible application - ✅ Clean, maintainable code #### Assignment Distribution - **Rohit Sharma**: Loading/empty states, performance optimization - **Arnab Mandal**: Error handling, accessibility
No due date**Goal**: Complete note editing functionality #### Tasks - [ ] Create NoteEditorPage - [ ] Implement create note flow - [ ] Implement edit note flow - [ ] Add auto-save functionality (optional) - [ ] Add word count display - [ ] Add last saved timestamp - [ ] Implement form validation - [ ] Add unsaved changes warning - [ ] Connect all components together #### Learning Objectives - Learn complex page composition - Understand form state management - Practice user experience patterns - Integration testing #### Deliverables - ✅ Complete note creation flow - ✅ Complete note editing flow - ✅ Auto-save or manual save - ✅ Form validation and error handling #### Assignment Distribution - **Both Students**: Pair programming on NoteEditorPage
No due date**Goal**: Integrate Quill editor for rich note content #### Tasks - [ ] Install and configure Quill - [ ] Create RichTextEditor component - [ ] Configure editor toolbar - [ ] Implement editor styling - [ ] Add image support (optional) - [ ] Handle HTML content sanitization - [ ] Update Note model for HTML content - [ ] Implement TagSelector component - [ ] Test editor functionality thoroughly #### Learning Objectives - Learn third-party library integration - Work with refs and DOM manipulation - Understand HTML sanitization - Practice complex component testing #### Deliverables - ✅ Fully functional rich text editor - ✅ Formatted content (bold, italic, lists, etc.) - ✅ HTML content storage - ✅ Safe content rendering #### Assignment Distribution - **Both Students**: Pair programming on RichTextEditor - **Arnab Mandal**: TagSelector
No due date**Goal**: Add search and filtering capabilities #### Tasks - [ ] Implement searchUtils - [ ] Create useSearch hook - [ ] Implement SearchBar component - [ ] Implement Dropdown component (for FilterBar) - [ ] Implement FilterBar component - [ ] Add search to DashboardPage - [ ] Add filter by tags functionality - [ ] Add sort functionality (date, title) - [ ] Implement debounced search #### Learning Objectives - Learn array filtering and sorting - Understand debouncing - Practice derived state - Work with multiple filters #### Deliverables - ✅ Search notes by title/content - ✅ Filter by tags - ✅ Sort by date/title - ✅ Performant search with debouncing #### Assignment Distribution - **Rohit Sharma**: FilterBar, Dropdown, sorting logic - **Arnab Mandal**: SearchBar, useSearch, search logic
No due date**Goal**: Implement basic note creation, display, and management #### Tasks - [ ] Create Note model and types - [ ] Implement noteService (CRUD operations) - [ ] Create useNotes hook - [ ] Implement TagBadge component - [ ] Implement TagInput component - [ ] Implement NoteCard component - [ ] Implement NotePreview component - [ ] Implement NotesList component - [ ] Create basic DashboardPage - [ ] Implement delete note functionality #### Learning Objectives - Master CRUD operations - Learn list rendering and keys - Practice data transformation - Understand component communication #### Deliverables - ✅ Create notes (basic text) - ✅ Display notes list - ✅ Delete notes - ✅ Tag management basics #### Assignment Distribution - **Rohit Sharma**: TagBadge, NoteCard, NotesList - **Arnab Mandal**: TagInput, NotePreview, noteService
No due date**Goal**: Implement user authentication with local storage #### Tasks - [ ] Create User model and types - [ ] Implement storageService - [ ] Implement authService - [ ] Create AuthContext - [ ] Implement useAuth hook - [ ] Create LoginForm component - [ ] Create LoginPage - [ ] Setup ProtectedRoute component - [ ] Implement logout functionality #### Learning Objectives - Learn service layer pattern - Understand authentication flow - Practice form handling and validation - Work with local storage API #### Deliverables - ✅ Working login/logout system - ✅ Protected routes - ✅ User session persistence #### Assignment Distribution - **Rohit Sharma**: LoginPage, ProtectedRoute - **Arnab Mandal**: LoginForm, authService, useAuth
No due date**Goal**: Build application layout and implement theme switching #### Tasks - [ ] Create ThemeContext - [ ] Implement ThemeToggle component - [ ] Configure DaisyUI themes - [ ] Implement Header component - [ ] Implement Layout component - [ ] Setup React Router - [ ] Create basic routing structure - [ ] Implement 404 Not Found page #### Learning Objectives - Understand React Context API - Learn about theme management - Practice component composition - Introduction to React Router #### Deliverables - ✅ Complete layout structure - ✅ Working theme switching - ✅ Basic routing setup #### Assignment Distribution - **Rohit Sharma**: ThemeToggle, Layout - **Arnab Mandal**: Header, NotFoundPage
No due date•3/4 issues closed**Goal**: Complete development environment setup and basic UI components #### Tasks - [x] Repository setup and initial commit - [x] Install and configure dependencies - [x] Setup ESLint, Prettier, and Git hooks - [x] Configure TailwindCSS v4 and DaisyUI - [x] Setup Jest and React Testing Library - [x] Create project structure (folders/files) - [x] Implement Button component with tests - [x] Implement Input component with tests - [x] Implement Card component with tests - [x] Implement Badge component with tests #### Learning Objectives - Understand React project structure - Learn component props and TypeScript types - Practice TDD workflow (Red-Green-Refactor) - Learn basic testing with React Testing Library #### Deliverables - ✅ Working development environment - ✅ 4 UI components with passing tests - ✅ Code coverage >80% #### Assignment Distribution - **Rohit Sharma**: Button, Card - **Arnab Mandal**: Input, Badge
No due date•6/6 issues closed