Skip to content

Commit a277e43

Browse files
authored
Merge pull request #178 from rashi-agrawal29/feature/task_prioritisation-recommender
Design Document for Task prioritization recommender
2 parents e94e0d9 + 1d6e389 commit a277e43

1 file changed

Lines changed: 272 additions & 0 deletions

File tree

Lines changed: 272 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,272 @@
1+
---
2+
title: Task Prioritization Recommender Feature
3+
---
4+
5+
## 1. Introduction
6+
7+
The Task Prioritization feature is designed to help students identify which tasks to focus on next
8+
within OnTrack. The system evaluates multiple factors to generate a priority score for each task,
9+
enabling students to manage their workload more effectively and reduce the risk of missed deadlines.
10+
11+
---
12+
13+
## 2. Purpose
14+
15+
The purpose of this feature is to:
16+
17+
- Recommend tasks based on urgency and workload
18+
- Support better time management
19+
- Integrate with AI-based effort prediction for smarter prioritisation
20+
21+
---
22+
23+
## 3. Approach
24+
25+
Tasks are ranked using a **weighted priority scoring system** based on:
26+
27+
- Deadline urgency
28+
- Estimated effort required
29+
- Current student workload
30+
31+
---
32+
33+
## 4. Prioritization Logic
34+
35+
### 4.1 Deadline Urgency
36+
37+
Tasks with closer due dates receive higher priority. The system calculates urgency based on the
38+
number of days remaining until the task due date.
39+
40+
#### Deadline Calculation Logic
41+
42+
1. Retrieve the task due date from the task definition
43+
2. Calculate the number of days remaining:
44+
45+
**days_left = due_date − current_date**
46+
- The current date is obtained using `Time.zone.today` to ensure timezone consistency
47+
- If no due date is available, the score defaults to **0**
48+
49+
---
50+
51+
#### Deadline Scoring
52+
53+
- ≤ 1 day → Score 100
54+
- ≤ 3 days → Score 80
55+
- ≤ 7 days → Score 60
56+
- ≤ 14 days → Score 40
57+
- > 14 days → Score 20
58+
59+
---
60+
61+
#### Behaviour
62+
63+
- Tasks due very soon receive the highest priority
64+
- Tasks with longer deadlines receive lower scores
65+
- Ensures students focus on urgent tasks first
66+
67+
---
68+
69+
### 4.2 Estimated Effort
70+
71+
Tasks requiring more effort are prioritised earlier to allow sufficient time for completion.
72+
73+
Currently, effort is approximated using **task weighting** as a temporary measure.
74+
This will be replaced by the AI-based effort prediction feature in future.
75+
76+
#### Effort Scoring (Current Implementation)
77+
78+
- Weighting ≤ 10 → Score 30
79+
- Weighting ≤ 20 → Score 50
80+
- Weighting ≤ 40 → Score 70
81+
- Weighting > 40 → Score 90
82+
83+
---
84+
85+
### 4.3 Workload
86+
87+
Tasks are prioritised higher when a student has multiple competing tasks across their enrolled
88+
units.
89+
90+
Workload is determined by a combination of:
91+
92+
- **Number of incomplete tasks** across all active units (task pressure)
93+
- **Student target grade** (academic ambition)
94+
95+
---
96+
97+
#### Target Grade Values
98+
99+
Each project (unit) has a target grade represented numerically:
100+
101+
- 0 → Pass
102+
- 1 → Credit
103+
- 2 → Distinction
104+
- 3 → High Distinction
105+
106+
The workload calculation uses the **average target grade** across all enrolled units to reflect the
107+
student’s overall academic goal.
108+
109+
---
110+
111+
#### Workload Calculation Logic
112+
113+
**1. Task Pressure Score (0–100)**
114+
Based on the number of incomplete tasks:
115+
116+
- 0–4 tasks → Score 30 (Low)
117+
- 5–9 tasks → Score 60 (Medium)
118+
- 10+ tasks → Score 90 (High)
119+
120+
---
121+
122+
**2. Target Grade Score (0–100)**
123+
Based on the student’s average target grade:
124+
125+
- High Distinction (3) → Score 90
126+
- Distinction (2) → Score 75
127+
- Credit (1) → Score 60
128+
- Pass (0) → Score 40
129+
130+
---
131+
132+
**3. Final Workload Score**
133+
134+
**Workload Score = (0.6 × Task Pressure Score) + (0.4 × Target Grade Score)**
135+
136+
---
137+
138+
#### Behaviour
139+
140+
- Students with more incomplete tasks receive higher workload scores
141+
- Students aiming for higher grades receive higher prioritisation sensitivity
142+
- Ensures personalised recommendations based on both workload and ambition
143+
144+
---
145+
146+
## 5. Scoring Model
147+
148+
### 5.1 Priority Score Formula
149+
150+
**Priority Score = (0.5 × Deadline Score) + (0.3 × Effort Score) + (0.2 × Workload Score)**
151+
152+
Each factor is converted into a score between **0–100**.
153+
154+
---
155+
156+
### 5.2 Deadline Score
157+
158+
| Time Remaining | Score |
159+
| -------------- | ----- |
160+
| ≤ 1 day | 100 |
161+
| ≤ 3 days | 80 |
162+
| ≤ 7 days | 60 |
163+
| ≤ 14 days | 40 |
164+
| > 14 days | 20 |
165+
166+
---
167+
168+
### 5.3 Effort Score (Will be replaced with AI Effort Prediction)
169+
170+
| Task Weighting | Score |
171+
| -------------- | ----- |
172+
| ≤ 10 | 30 |
173+
| ≤ 20 | 50 |
174+
| ≤ 40 | 70 |
175+
| > 40 | 90 |
176+
177+
---
178+
179+
### 5.4 Workload Score
180+
181+
| Workload Level | Score |
182+
| -------------- | ----- |
183+
| Low | 30 |
184+
| Medium | 60 |
185+
| High | 90 |
186+
187+
---
188+
189+
## 6. Example Calculation
190+
191+
### Task A
192+
193+
- Due in 2 days → Deadline Score = 80
194+
- Effort = 8 hours → Effort Score = 70
195+
- Workload = Medium → Workload Score = 60
196+
Priority Score = (0.5 × 80) + (0.3 × 70) + (0.2 × 60) = 40 + 21 + 12 = 73
197+
198+
---
199+
200+
### Task B
201+
202+
- Due in 10 days → Deadline Score = 40
203+
- Effort = 2 hours → Effort Score = 30
204+
- Workload = Low → Workload Score = 30
205+
206+
Priority Score = (0.5 × 40) + (0.3 × 30) + (0.2 × 30) = 20 + 9 + 6 = 35
207+
208+
---
209+
210+
### Result
211+
212+
Task A is prioritised higher than Task B due to a higher overall score.
213+
214+
---
215+
216+
## 7. System Flow
217+
218+
1. Retrieve all tasks for the student
219+
2. Calculate:
220+
- Deadline score
221+
- Effort score (from AI prediction)
222+
- Workload score
223+
3. Compute total priority score
224+
4. Rank tasks in descending order
225+
5. Recommend highest priority tasks to the user
226+
227+
---
228+
229+
## 8. Integration
230+
231+
- Effort scores will be derived from the **AI-Based Effort Prediction feature**
232+
- The system will consume predicted effort (in hours) and map it to scoring ranges
233+
- Designed to integrate seamlessly with backend APIs
234+
235+
---
236+
237+
## 9. Design Rationale
238+
239+
- **Deadline urgency (50%)**
240+
Highest weight to reduce missed submissions
241+
242+
- **Effort (30%)**
243+
Encourages early start on complex tasks
244+
245+
- **Workload (20%)**
246+
Balances tasks across multiple units using task pressure and academic ambition
247+
248+
---
249+
250+
## 10. Outcome
251+
252+
Tasks with higher priority scores will be recommended first, helping students:
253+
254+
- Stay on track
255+
- Reduce stress
256+
- Improve task planning
257+
258+
---
259+
260+
## 11. Dependencies
261+
262+
- AI-based effort prediction feature (external team)
263+
- Task metadata (deadlines, units, etc.)
264+
- Backend API integration
265+
266+
---
267+
268+
## 12. Conclusion
269+
270+
The Task Prioritization feature enhances OnTrack by providing a structured and intelligent way to
271+
manage student tasks. By combining urgency, effort, and workload, the system delivers meaningful
272+
recommendations that improve productivity and academic outcomes.

0 commit comments

Comments
 (0)