Task-Dashboard Migration PR Plan
Task-Dashboard Migration - PR Plan
Created: January 19, 2026
Created by: Husainuddin Mohammed, 223380186
Approach: 2 PRs
After analyzing the code dependencies, I’m proposing 2 PRs instead of splitting this into many small ones.
PR 1: Investigation & Documentation
Branch: investigate/task-dashboard-migration (CURRENT)
Status: Complete
Documents the current state and migration plan for next cohort.
Files:
task-dashboard-investigation.mdtask-dashboard-pr-plan.md
PR 2: Complete Migration
Branch: migrate/complete-task-dashboard
Status: Not Started
Changes needed:
-
Update template (
dashboard.tpl.html):<task-dashboard task="taskData.selectedTask"></task-dashboard><f-task-dashboard [task]="taskData.selectedTask"></f-task-dashboard> -
Update state (
doubtfire.states.ts):- Register Angular component route
- Remove old AngularJS state
-
Clean up module (
doubtfire-angularjs.module.ts):- Remove imports for 9 old files
-
Delete old files (9 total):
- task-dashboard:
.coffee,.tpl.html,.scss - student-task-list:
.coffee,.tpl.html,.scss - dashboard:
.coffee,.tpl.html directives.coffee
- task-dashboard:
-
Update docs (
README.md):- Mark completed: dashboard.coffee, directives.coffee, task-dashboard.coffee
Why These Changes Must Be Together
Change 1: Update template to <f-task-dashboard> ↓ └─→ If we stop here, state registration still points to old directive Result: Routing fails ✗
Change 2: Update state registration ↓ └─→ If we stop here, module still imports old files Result: Build warnings ✗
Change 3: Remove old imports ↓ └─→ If we stop here, old files still exist but aren't used Result: Confusing codebase ✗
Change 4: Delete old files ✓ Complete migrationThese are interdependent, not independent tasks. Splitting them creates broken intermediate states that don’t work or make sense.
Dependency Flow
Current State: dashboard.tpl.html → <task-dashboard> → AngularJS directive ↓ Old .coffee files ↓ Works but outdated
Target State: dashboard.tpl.html → <f-task-dashboard> → Angular component ↓ 7 card components ↓ Old files deleted ✓Risk if split: Each intermediate step leaves the codebase in a half-migrated state.
Testing Plan
Navigation testing:
- Direct URL:
/projects/123/dashboard - From project list → dashboard
- Dashboard → select task → back to dashboard
- Browser refresh while on dashboard
- Back/forward buttons
Functionality testing:
- All 7 card components render
- Task switching works
- Data loads correctly
- Console has no errors
Build testing:
- Build succeeds
- No import errors
- No missing file errors
Rollback Strategy
If issues arise, revert the single PR. Old files remain in git history and can be restored quickly.
Why atomic changes matter: One revert fixes everything vs. figuring out which of 5 PRs to revert.
Key Insight for Next Cohort
Search the codebase for <task-dashboard> before starting - make sure dashboard.tpl.html is the
only place using the old tag. Update module imports before deleting files to avoid build failures.