From ee9d60d9fc51e6e3136b28c6500bbd2ee718af41 Mon Sep 17 00:00:00 2001 From: lachlan-robinson Date: Sat, 29 Mar 2025 12:19:46 +1100 Subject: [PATCH 1/3] chore: upload migration plan for visualisation components. --- .../Component Reviews/migration-plan.md | 83 +++++++++++++++++++ 1 file changed, 83 insertions(+) create mode 100644 docs/OnTrack/UI Enhancement/Component Reviews/migration-plan.md diff --git a/docs/OnTrack/UI Enhancement/Component Reviews/migration-plan.md b/docs/OnTrack/UI Enhancement/Component Reviews/migration-plan.md new file mode 100644 index 000000000..4bcfe9bcb --- /dev/null +++ b/docs/OnTrack/UI Enhancement/Component Reviews/migration-plan.md @@ -0,0 +1,83 @@ +# Visualisation Migration Plan + +## Interactions Graph + +![Alt text](https://i.imgur.com/geVaVL2.png) + +## Unused Visualisations + +Five visualisation components do not appear to be referenced elsewhere in the codebase. + +- `Summary-task-status-scatter.coffee` +- `Target-grade-pie-chart.coffee` +- `Task-completion-box-plot.coffee` +- `Task-status-pie-chart.coffee` +- `Achievement-box-plot.coffee` + +## Used Visualisations + +### project-outcome-alignment + +- `achievment-custom-bar-chart.coffee` + +### task-ilo-alignment-editor + +- `alignment-bar-chart.coffee` + +### task-ilo-alignment-viewer + +- `alignment-bullet-chart.coffee` + +### progress-dashboard + +- `progress-burndown-chart.coffee` +- `student-task-status-pie-chart.coffee` + +### project-progress-dashboard + +- `progress-burndown-chart.coffee` +- `student-task-status-pie-chart.coffee` + +## Interactions + +Each visualisation shares a common html file. The html file renders an `nvd3` graph using parameters passed from the relevant component logic. + +Each visualisation component takes a `project` parameter when the component is called in its parent. + +Each visualisation component uses logic from the `visualisations.coffee` to create the visualisation. + +## Migration Tasks + +### 1. Seperate logic: + +- `visualisations.coffee` -> `visualisation.service.ts` + +### 2. Migrate template: + +- `Visualisation.tpl.html` should remain for components yet to be migrated. +- `visualisation.tpl.html` -> `visualisation.component.html` + +### 3. Migrate Used Components + +- `achievment-custom-bar-chart.coffee` -> `achievment-custom-bar-chart.component.ts` + +- `alignment-bar-chart.coffee` -> `alignment-bar-chart.component.ts` + +- `alignment-bullet-chart.coffee` -> `alignment-bullet-chart.component.ts` + +- `progress-burndown-chart.coffee` -> `progress-burndown-chart.component.ts` +- `progress-burndown-chart.scss` -> `progress-burndown-chart.component.scss` + +- `student-task-status-pie-chart.coffee` -> `student-task-status-pie-chart.component.ts` + +### 4. Migrate Unused Components + +- `Summary-task-status-scatter.coffee` -> `Summary-task-status-scatter.component.ts` +- `Target-grade-pie-chart.coffee` ->- `Target-grade-pie-chart.component.ts` +- `Task-completion-box-plot.coffee` -> `Task-completion-box-plot.component.ts` +- `Task-status-pie-chart.coffee` -> `Task-status-pie-chart.component.ts` +- `Achievement-box-plot.coffee` -> `Achievement-box-plot.component.ts` + +### 5. Migrate Parent Components + +By completing the migration of the visualisations, the parent components should become able to be migrated. From d9f7a90fc600c70f685b604f51164d0339b7959c Mon Sep 17 00:00:00 2001 From: lachlan-robinson Date: Wed, 16 Apr 2025 12:00:12 +1000 Subject: [PATCH 2/3] component review for progress-dashboard --- .../Resources/progress-dashboard.jpg | Bin 0 -> 110757 bytes .../Component Reviews/progress-dashboard.md | 43 ++++++++++++++++++ 2 files changed, 43 insertions(+) create mode 100644 docs/OnTrack/UI Enhancement/Component Reviews/Resources/progress-dashboard.jpg create mode 100644 docs/OnTrack/UI Enhancement/Component Reviews/progress-dashboard.md diff --git a/docs/OnTrack/UI Enhancement/Component Reviews/Resources/progress-dashboard.jpg b/docs/OnTrack/UI Enhancement/Component Reviews/Resources/progress-dashboard.jpg new file mode 100644 index 0000000000000000000000000000000000000000..7173c4b1862c36568e657b91170ce540754dbfad GIT binary patch literal 110757 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 M^51|TD!-@x3qqRTm;e9( literal 0 HcmV?d00001 diff --git a/docs/OnTrack/UI Enhancement/Component Reviews/progress-dashboard.md b/docs/OnTrack/UI Enhancement/Component Reviews/progress-dashboard.md new file mode 100644 index 000000000..c453ae796 --- /dev/null +++ b/docs/OnTrack/UI Enhancement/Component Reviews/progress-dashboard.md @@ -0,0 +1,43 @@ +## Ontrack Component Review - Progress Dashboard + +### Team Member Name + +Lachlan Mackie Robinson (220325142) + +### Component Name + +`progress-dashboard` + +### Component Files + +- `progress-dashboard.coffee` +- `progress-dashboard.scss` +- `progress-dashboard.tpl.html` + +### Component Purpose + +This component is designed to present the unit progress of the user. The unit progress is presented +relative to the target grade through a burndown chart and a counter. (In previous versions, a pie +chart is present where the counter currently exists). + +![Alt text](./Resources/progress-dashboard.jpg) + +### Expected Outcomes + +1. Users can select their target grade and visualisations update. +2. As a users' task status changes, the visualisations should update. + +### Interactions + +- Uses the alert service to notify the user. +- Updates the visualisations on changes. +- Uses the grade service to handle names and values of grades for data. + +### Migration Plan + +- [] Review current component +- [] Create new component files +- [] Migrate component functionality +- [] Unlink previous component +- [] Link new component & downgrade +- [] Test for errors From 5885782211ec34e7abd2e40a917794de6747e411 Mon Sep 17 00:00:00 2001 From: lachlan-robinson Date: Wed, 16 Apr 2025 12:02:34 +1000 Subject: [PATCH 3/3] remove migration plan from branch --- .../Component Reviews/migration-plan.md | 83 ------------------- 1 file changed, 83 deletions(-) delete mode 100644 docs/OnTrack/UI Enhancement/Component Reviews/migration-plan.md diff --git a/docs/OnTrack/UI Enhancement/Component Reviews/migration-plan.md b/docs/OnTrack/UI Enhancement/Component Reviews/migration-plan.md deleted file mode 100644 index 4bcfe9bcb..000000000 --- a/docs/OnTrack/UI Enhancement/Component Reviews/migration-plan.md +++ /dev/null @@ -1,83 +0,0 @@ -# Visualisation Migration Plan - -## Interactions Graph - -![Alt text](https://i.imgur.com/geVaVL2.png) - -## Unused Visualisations - -Five visualisation components do not appear to be referenced elsewhere in the codebase. - -- `Summary-task-status-scatter.coffee` -- `Target-grade-pie-chart.coffee` -- `Task-completion-box-plot.coffee` -- `Task-status-pie-chart.coffee` -- `Achievement-box-plot.coffee` - -## Used Visualisations - -### project-outcome-alignment - -- `achievment-custom-bar-chart.coffee` - -### task-ilo-alignment-editor - -- `alignment-bar-chart.coffee` - -### task-ilo-alignment-viewer - -- `alignment-bullet-chart.coffee` - -### progress-dashboard - -- `progress-burndown-chart.coffee` -- `student-task-status-pie-chart.coffee` - -### project-progress-dashboard - -- `progress-burndown-chart.coffee` -- `student-task-status-pie-chart.coffee` - -## Interactions - -Each visualisation shares a common html file. The html file renders an `nvd3` graph using parameters passed from the relevant component logic. - -Each visualisation component takes a `project` parameter when the component is called in its parent. - -Each visualisation component uses logic from the `visualisations.coffee` to create the visualisation. - -## Migration Tasks - -### 1. Seperate logic: - -- `visualisations.coffee` -> `visualisation.service.ts` - -### 2. Migrate template: - -- `Visualisation.tpl.html` should remain for components yet to be migrated. -- `visualisation.tpl.html` -> `visualisation.component.html` - -### 3. Migrate Used Components - -- `achievment-custom-bar-chart.coffee` -> `achievment-custom-bar-chart.component.ts` - -- `alignment-bar-chart.coffee` -> `alignment-bar-chart.component.ts` - -- `alignment-bullet-chart.coffee` -> `alignment-bullet-chart.component.ts` - -- `progress-burndown-chart.coffee` -> `progress-burndown-chart.component.ts` -- `progress-burndown-chart.scss` -> `progress-burndown-chart.component.scss` - -- `student-task-status-pie-chart.coffee` -> `student-task-status-pie-chart.component.ts` - -### 4. Migrate Unused Components - -- `Summary-task-status-scatter.coffee` -> `Summary-task-status-scatter.component.ts` -- `Target-grade-pie-chart.coffee` ->- `Target-grade-pie-chart.component.ts` -- `Task-completion-box-plot.coffee` -> `Task-completion-box-plot.component.ts` -- `Task-status-pie-chart.coffee` -> `Task-status-pie-chart.component.ts` -- `Achievement-box-plot.coffee` -> `Achievement-box-plot.component.ts` - -### 5. Migrate Parent Components - -By completing the migration of the visualisations, the parent components should become able to be migrated.