|
1 | 1 | # Canopy - JIRA-like Project Management App |
2 | 2 |
|
3 | | -## Project Status: ✅ COMPLETE AND VERIFIED (Issue #29 - Japanese Language Toggle) |
| 3 | +## Project Status: ✅ COMPLETE AND VERIFIED (Issue #30 - Team and Bandwidth) |
4 | 4 |
|
5 | | -## Latest Session (Issue #29 - Japanese Language Toggle - COMPLETE) |
| 5 | +## Latest Session (Issue #30 - Team and Bandwidth - COMPLETE) |
| 6 | +Added team capacity management feature that allows users to add team members, set available weeks per member, and assign tasks to team members. |
| 7 | + |
| 8 | +### Feature Description: |
| 9 | +Users can now: |
| 10 | +1. Navigate to a dedicated Team page at /project/{key}/team |
| 11 | +2. View team capacity stats (Team Size, Total Available Weeks, Total Capacity Hours) |
| 12 | +3. Add team members with name, email, available weeks, hours per week, and avatar color |
| 13 | +4. Edit and delete team members |
| 14 | +5. See assigned task counts and progress per team member |
| 15 | +6. Assign team members to issues from Create Issue modal and Issue Detail panel |
| 16 | + |
| 17 | +### New Files Created: |
| 18 | +- src/pages/TeamPage.tsx - Full team management page with capacity tracking |
| 19 | + |
| 20 | +### Files Modified: |
| 21 | +- src/types/index.ts - Added TeamMember and TeamMemberWithStats types |
| 22 | +- src/lib/db.ts - Added teamMembers table (v3 schema), helper functions (createTeamMember, updateTeamMember, deleteTeamMember, getTeamMembersForProject), updated deleteProject and clearAllData to include teamMembers |
| 23 | +- src/lib/translations.ts - Added 'team' translation for English and Japanese |
| 24 | +- src/App.tsx - Added route for /project/:projectKey/team and TeamPage import |
| 25 | +- src/components/layout/Sidebar.tsx - Added Team link with Users icon under PROJECT section |
| 26 | +- src/components/modals/CreateIssueModal.tsx - Added team members to assignee dropdown with "Team Members" section header |
| 27 | +- src/components/board/IssueDetailPanel.tsx - Added team members to assignee dropdown in issue detail sidebar |
| 28 | + |
| 29 | +### Team Page Features: |
| 30 | +- Header with "Team" title, Users icon, and "Add Team Member" button (coral accent) |
| 31 | +- Stats overview cards: Team Size, Total Available Weeks, Total Capacity (Hours) |
| 32 | +- Team members table with columns: Member (avatar + name + email), Available Weeks, Hours/Week, Assigned Tasks (with progress bar), Actions |
| 33 | +- Add/Edit team member dialog with fields: Name, Email, Available Weeks dropdown (1-52), Hours per Week dropdown, Avatar Color picker with preview |
| 34 | +- Empty state with "No team members yet" message and "Add your first team member" CTA |
| 35 | +- Capacity Planning Tip info box explaining how available weeks help with sprint planning |
| 36 | +- Team member deletion with automatic unassignment from issues |
| 37 | + |
| 38 | +### Assignee Dropdown Updates: |
| 39 | +- Both CreateIssueModal and IssueDetailPanel now show team members grouped under "Team Members" section |
| 40 | +- System users shown under "System Users" section |
| 41 | +- Team members display with colored avatar showing initials |
| 42 | + |
| 43 | +### New Tests Added (test-244 through test-247): |
| 44 | +- test-244: Team page displays with stats overview when navigating to a project's team page ✅ |
| 45 | +- test-245: Team link appears in sidebar under Project section ✅ |
| 46 | +- test-246: User can add a team member with name and available weeks ✅ |
| 47 | +- test-247: Team member can be assigned to tasks from Create Issue modal ✅ |
| 48 | + |
| 49 | +### E2E Tests: |
| 50 | +- e2e-tests/team-setup.spec.ts - Project creation and team page navigation |
| 51 | +- e2e-tests/team-all-tests.spec.ts - Comprehensive tests for all team features (4/4 passing) |
| 52 | + |
| 53 | +### Build Status: |
| 54 | +- `npm run build` succeeds without errors ✅ |
| 55 | +- All new tests pass (4/4) ✅ |
| 56 | +- All console logs show NO_CONSOLE_ERRORS ✅ |
| 57 | +- Application loads correctly ✅ |
| 58 | + |
| 59 | +### Screenshots Captured: |
| 60 | +- test-244-final.png: Team page with stats overview and empty state |
| 61 | +- test-245-final.png: Sidebar with Team link under PROJECT section |
| 62 | +- test-246-final.png: Team member "John Doe" added with "4 weeks" badge |
| 63 | +- test-247-final.png: Create Issue modal showing Team Members dropdown with "Jane Smith" |
| 64 | +- final-a1b2c3.png: Final app state |
| 65 | + |
| 66 | +--- |
| 67 | + |
| 68 | +## Previous Session (Issue #29 - Japanese Language Toggle - COMPLETE) |
6 | 69 | Added a Japanese language toggle feature that allows users to switch the app UI between English and Japanese. |
7 | 70 |
|
8 | 71 | ### Feature Description: |
@@ -322,14 +385,24 @@ Built a complete JIRA-like project management application called "Canopy" with: |
322 | 385 | - [x] Timeline view with epics |
323 | 386 | - [x] Month view with date columns |
324 | 387 |
|
325 | | -### Epics (NEW) |
| 388 | +### Epics |
326 | 389 | - [x] Dedicated Epics page with hierarchy view |
327 | 390 | - [x] Stats overview (Total, Open, In Progress, Done) |
328 | 391 | - [x] Child issues grouped under epics |
329 | 392 | - [x] Progress tracking with bars and percentages |
330 | 393 | - [x] Filter and search functionality |
331 | 394 | - [x] Issue hierarchy legend |
332 | 395 |
|
| 396 | +### Team & Capacity (NEW - Issue #30) |
| 397 | +- [x] Dedicated Team page at /project/{key}/team |
| 398 | +- [x] Team capacity stats (Team Size, Total Available Weeks, Total Capacity Hours) |
| 399 | +- [x] Add/Edit/Delete team members with name, email, available weeks, hours per week |
| 400 | +- [x] Avatar color picker with preview |
| 401 | +- [x] Assigned tasks count and progress tracking per team member |
| 402 | +- [x] Team members selectable in Create Issue modal assignee dropdown |
| 403 | +- [x] Team members selectable in Issue Detail panel assignee dropdown |
| 404 | +- [x] "Team Members" and "System Users" sections in assignee dropdowns |
| 405 | + |
333 | 406 | ### Calendar |
334 | 407 | - [x] Monthly calendar view |
335 | 408 | - [x] Due date visualization |
@@ -364,15 +437,16 @@ Built a complete JIRA-like project management application called "Canopy" with: |
364 | 437 | - [x] Contribution guidelines |
365 | 438 |
|
366 | 439 | ## Tests |
367 | | -- tests.json: 239 comprehensive tests (test-001 through test-239) |
| 440 | +- tests.json: 247 comprehensive tests (test-001 through test-247) |
368 | 441 | - e2e-tests/: Playwright test suite |
369 | | -- All Epics tests (test-236 through test-239) passing |
| 442 | +- All Team tests (test-244 through test-247) passing |
370 | 443 |
|
371 | 444 | ## Key Files |
372 | 445 | - src/lib/db.ts - Dexie database schema |
373 | 446 | - src/context/AppContext.tsx - Global state |
374 | 447 | - src/pages/*.tsx - All page components |
375 | | -- src/pages/EpicsPage.tsx - NEW Epics page |
| 448 | +- src/pages/EpicsPage.tsx - Epics page |
| 449 | +- src/pages/TeamPage.tsx - NEW Team page (Issue #30) |
376 | 450 | - src/components/board/* - Board components |
377 | 451 | - src/components/modals/* - Modal dialogs |
378 | 452 | - src/styles/globals.css - Theme variables |
0 commit comments