Student Task Management
Current Tasks
- Initially presented as a single stream of all tasks for all sections
- Filtering available by section, due dates, and task status
- Task details can be opened by clicking the task in the Current Tasks list
- Once a task is completed, the task is removed from the Current Tasks list and moved to the Past Tasks (Portfolio) section
To Do List
- Student created list of items to do
- Due dates optionally set by students
- When completed, To Do items move to the Completed Items seciton
- Clearing completed items occurs one at a time or thourgh the Clear All button
Past Tasks
- Summary of all completed and rated tasks for a given section
- Specifies the number of skills associated with a given task and how many were rated on and below the current level for that skill
Submitting a Task
- After opening a task, students can view all relvant information as well as add links and attachments
- When ready, students submit the task and any associated documents to a teacher for rating
State flow
```mermaid
graph TD
VIEW_MAIN[Dashboard View]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101 | NAV_USER_HASH --> |Browser-driven navigation| ROUTER
NAV_ROUTER_HASH --> |App-driven navigation| ROUTER
CTRL_DASH_ROUTER --> |"setStudent(...)"| VIEW_MAIN
CTRL_DASH_ROUTER --> |"setSection(...)"| VIEW_MAIN
VIEW_MAIN -.-> |"control: { studentchange }"| CTRL_DASH_CHANGE
VIEW_MAIN -.-> |"control: { sectionchange }"| CTRL_DASH_CHANGE
VIEW_MAIN -.-> |"control: { studentchange }"| CTRL_TASKS
VIEW_MAIN -.-> |"control: { sectionchange }"| CTRL_TASKS
VIEW_MAIN -.-> |"control: { studentchange }"| CTRL_TODOS
VIEW_MAIN -.-> |"control: { sectionchange }"| CTRL_TODOS
subgraph User navigates via browser
NAV_USER_HASH>Browser Address Bar]
end
subgraph User navigates via UI components
NAV_STUDENT_IN>Student Selector]
NAV_SECTION_IN>Section Selector]
CTRL_MAIN_NAV("
Dashboard Controller
<code>
<li>onStudentSelectorSelect</li>
<li>onStudentSelectorClear</li>
<li>onSectionSelectorSelect</li>
<li>onSectionSelectorClear</li>
</code>
")
NAV_STUDENT_IN -.-> |select| CTRL_MAIN_NAV
NAV_STUDENT_IN -.-> |clear| CTRL_MAIN_NAV
NAV_SECTION_IN -.-> |select| CTRL_MAIN_NAV
NAV_SECTION_IN -.-> |clear| CTRL_MAIN_NAV
CTRL_MAIN_NAV --> |"redirectTo(...)"| NAV_ROUTER_HASH
end
subgraph Route parameters applied to top-level view state
NAV_ROUTER_HASH>Browser Address Bar]
ROUTER(Ext.app.route.Router)
CTRL_DASH_ROUTER("
Dashboard Controller
<code>
<li>showDashboard(studentUsername, sectionCode)</li>
</code>
")
ROUTER --> |"routes: { ':studentUsername/:sectionCode' }"| CTRL_DASH_ROUTER
end
subgraph New state propagates throughout application
CTRL_TASKS("
Tasks Controller
<code>
<li>onStudentChange</li>
<li>onSectionChange</li>
</code>
")
CTRL_TODOS("
Todos Controller
<code>
<li>onStudentChange</li>
<li>onSectionChange</li>
</code>
")
STORE_TASKS((Tasks Store))
STORE_TODOS((Todos Store))
VIEW_TASKS[Tasks View]
VIEW_TODOS[Todos View]
CTRL_TASKS --> |"setReadOnly(...)"| VIEW_TASKS
CTRL_TASKS --> |"setStudent(...)"| STORE_TASKS
CTRL_TASKS --> |"setSection(...)"| STORE_TASKS
CTRL_TODOS --> |"setReadOnly(...)"| VIEW_TODOS
CTRL_TODOS --> |"setStudent(...)"| STORE_TODOS
CTRL_TODOS --> |"setSection(...)"| STORE_TODOS
STORE_TASKS -.-> |data events| VIEW_TASKS
STORE_TODOS -.-> |data events| VIEW_TODOS
VIEW_TASKS -.-> |User Intents| CTRL_TASKS
VIEW_TODOS -.-> |User Intents| CTRL_TODOS
end
subgraph New state reflected back to all navigation UI
CTRL_DASH_CHANGE("
Dashboard Controller
<code>
<li>onStudentChange</li>
<li>onSectionChange</li>
</code>
")
NAV_STUDENT_OUT>Student Selector]
NAV_SECTION_OUT>Section Selector]
CTRL_DASH_CHANGE --> |"setValue(...)"| NAV_STUDENT_OUT
CTRL_DASH_CHANGE --> |"setValue(...)"| NAV_SECTION_OUT
end
|
```