-
Notifications
You must be signed in to change notification settings - Fork 0
๐ฏ Component Development Order
Components are ordered by complexity and dependencies. Build in this sequence for optimal learning.
Learning Focus: Basic React concepts, props, state, events
-
Button โญ
-
Files:
src/components/ui/Button/ -
Props:
label,variant,size,disabled,onClick,type, - Tests: Rendering with label, variants styles (primary, secondary, ghost), Size styles (sm, md, lg), click handling, disabled state, Button type attribute
- Assigned to: Rohit Sharma (@rohit3171999)
-
Files:
-
Input โญ
-
Files:
src/components/ui/Input/ -
Props:
type,value,onChange,placeholder,error,disabled - Tests: Value changes, validation, error display
- Assigned to: Arnab Mandal (@Arnab-Mandal1)
-
Files:
-
Card โญ
-
Files:
src/components/ui/Card/ -
Props:
children,className,onClick - Tests: Rendering, styling, click handling
- Assigned to: Rohit Sharma (@rohit3171999)
-
Files:
-
Badge โญ
-
Files:
src/components/ui/Badge/ -
Props:
text,color,variant,onRemove - Tests: Rendering, colors, remove functionality
- Assigned to: Arnab Mandal (@Arnab-Mandal1)
-
Files:
Learning Focus: Component composition, routing, context
-
ThemeToggle โญโญ
-
Files:
src/components/layout/ThemeToggle/ - Props: None (uses context)
- Tests: Theme switching, persistence
- Dependencies: ThemeContext
- Assigned to: Rohit Sharma (@rohit3171999)
-
Files:
-
Header โญโญ
-
Files:
src/components/layout/Header/ -
Props:
user,onLogout - Tests: User display, logout, navigation
- Dependencies: ThemeToggle, Button
- Assigned to: Arnab Mandal (@Arnab-Mandal1)
-
Files:
-
Layout โญโญ
-
Files:
src/components/layout/Layout/ -
Props:
children - Tests: Rendering, responsive behavior
- Dependencies: Header
- Assigned to: Rohit Sharma (@rohit3171999)
-
Files:
Learning Focus: Forms, validation, services, local storage
-
LoginForm โญโญโญ
-
Files:
src/components/features/auth/LoginForm/ -
Props:
onLogin,onError - Tests: Form submission, validation, error handling
- Dependencies: Input, Button, authService
- Assigned to: Arnab Mandal (@Arnab-Mandal1)
-
Files:
-
LoginPage โญโญ
-
Files:
src/pages/LoginPage/ - Props: None
- Tests: Login flow, redirection
- Dependencies: LoginForm, AuthContext
- Assigned to: Rohit Sharma (@rohit3171999)
-
Files:
Learning Focus: CRUD operations, lists, conditional rendering
-
TagBadge โญโญ
-
Files:
src/components/features/tags/TagBadge/ -
Props:
tag,onRemove,onClick,removable - Tests: Display, click, remove
- Dependencies: Badge
- Assigned to: Rohit Sharma (@rohit3171999)
-
Files:
-
TagInput โญโญโญ
-
Files:
src/components/features/tags/TagInput/ -
Props:
tags,onChange,suggestions - Tests: Input, add tag, remove tag, suggestions
- Dependencies: Input, TagBadge
- Assigned to: Arnab Mandal (@Arnab-Mandal1)
-
Files:
-
NoteCard โญโญโญ
-
Files:
src/components/features/notes/NoteCard/ -
Props:
note,onEdit,onDelete,onClick - Tests: Display, actions, click handling
- Dependencies: Card, TagBadge, Button
- Assigned to: Rohit Sharma (@rohit3171999)
-
Files:
-
NotePreview โญโญ
-
Files:
src/components/features/notes/NotePreview/ -
Props:
content,maxLength - Tests: Content truncation, HTML stripping
- Assigned to: Arnab Mandal (@Arnab-Mandal1)
-
Files:
-
NotesList โญโญโญโญ
-
Files:
src/components/features/notes/NotesList/ -
Props:
notes,onEdit,onDelete,onNoteClick - Tests: List rendering, empty state, actions
- Dependencies: NoteCard
- Assigned to: Rohit Sharma (@rohit3171999)
-
Files:
Learning Focus: Filtering, searching, derived state
-
SearchBar โญโญโญ
-
Files:
src/components/features/search/SearchBar/ -
Props:
value,onChange,onClear,placeholder - Tests: Input, debouncing, clear
- Dependencies: Input
- Assigned to: Arnab Mandal (@Arnab-Mandal1)
-
Files:
-
FilterBar โญโญโญโญ
-
Files:
src/components/features/search/FilterBar/ -
Props:
selectedTags,onTagSelect,availableTags,sortBy,onSortChange - Tests: Tag filtering, sorting, multiple filters
- Dependencies: TagBadge, Dropdown
- Assigned to: Rohit Sharma (@rohit3171999)
-
Files:
Learning Focus: Third-party integration, complex state, refs
-
RichTextEditor โญโญโญโญโญ
-
Files:
src/components/features/notes/RichTextEditor/ -
Props:
value,onChange,placeholder,readOnly - Tests: Content editing, toolbar, formatting
- Dependencies: Quill library
- Note: Most complex component, requires careful testing
- Assigned to: Both students (pair programming)
-
Files:
-
TagSelector โญโญโญโญ
-
Files:
src/components/features/tags/TagSelector/ -
Props:
selectedTags,onChange,allTags - Tests: Tag selection, creation, removal
- Dependencies: TagInput, TagBadge
- Assigned to: Arnab Mandal (@Arnab-Mandal1)
-
Files:
Learning Focus: Page composition, routing, full feature integration
-
DashboardPage โญโญโญโญ
-
Files:
src/pages/DashboardPage/ - Props: None
- Tests: Note loading, search, filter, navigation
- Dependencies: SearchBar, FilterBar, NotesList
- Assigned to: Rohit Sharma (@rohit3171999)
-
Files:
-
NoteEditorPage โญโญโญโญโญ
-
Files:
src/pages/NoteEditorPage/ - Props: None (uses route params)
- Tests: Create, edit, save, validation
- Dependencies: RichTextEditor, TagSelector, Input, Button
- Note: Most complex page, integrates multiple features
- Assigned to: Both students (pair programming)
-
Files:
Learning Focus: Custom hooks, service layer, separation of concerns
-
useLocalStorage โญโญโญ
-
Files:
src/hooks/useLocalStorage.ts -
Returns:
[value, setValue] - Tests: Get, set, sync across tabs
- Assigned to: Arnab Mandal (@Arnab-Mandal1)
-
Files:
-
useAuth โญโญโญโญ
-
Files:
src/hooks/useAuth.ts -
Returns:
{ user, login, logout, isAuthenticated } - Tests: Login, logout, persistence
- Dependencies: AuthContext, authService
- Assigned to: Rohit Sharma (@rohit3171999)
-
Files:
-
useNotes โญโญโญโญโญ
-
Files:
src/hooks/useNotes.ts -
Returns:
{ notes, createNote, updateNote, deleteNote, loading } - Tests: CRUD operations, error handling
- Dependencies: noteService
- Assigned to: Arnab Mandal (@Arnab-Mandal1)
-
Files:
-
useSearch โญโญโญโญ
-
Files:
src/hooks/useSearch.ts -
Returns:
{ filteredNotes, searchQuery, setSearchQuery, filters, setFilters } - Tests: Search, filter, sort
- Assigned to: Rohit Sharma (@rohit3171999)
-
Files: