In this assignment, you will build a simple To-Do List mobile application using Flutter.
The assignment focuses on UI layout, state management, and local data persistence.
This is an individual assignment.
🎯 Learning Outcomes
By completing this assignment, the learner will be able to:
-
Build UI screens using common Flutter widgets.
-
Use
setState()for basic state management. -
Perform CRUD operations (Create, Read, Update, Delete).
-
Store data locally using SharedPreferences.
-
Structure a simple Flutter project and publish it on GitHub.
📱 Assignment Requirements
You must implement all of the following features:
1. Add a Task
-
User can enter a task title using a dialog or text field.
2. Display All Tasks
-
Tasks must be shown in a scrollable list (ListView).
-
Each task must show:
-
Title
-
Checkbox
-
Edit button/icon
-
3. Mark Task as Completed
-
Checking the box marks the task as completed.
-
Completed tasks must show strikethrough text.
4. Edit a Task
-
User can update the title of an existing task.
5. Delete a Task
-
Support swipe-to-delete or a delete button/icon.
6. Data Persistence
-
Use SharedPreferences to save the task list.
-
Tasks must remain after app restart.
7. Clear Completed Tasks
-
Include a button or action that removes all completed tasks at once.
📂 Deliverables
You must submit only one item:
🔗 A public GitHub (or GitLab/Bitbucket) repository link
The repository must contain:
-
The complete Flutter project
-
A README that includes:
-
App description
-
Instructions on how to run the project
-
📨 Submission Instructions
-
Submit the public repository link in Moodle.
-
After submitting, notify the instructor via Moodle message or course communication tools.
-
There is no deadline for this assignment.
📏 Grading Rubric (100 points)
Functionality — 70 pts
| Feature | Points |
|---|---|
| Add Task | 10 |
| List Tasks | 10 |
| Mark Completed | 10 |
| Edit Task | 10 |
| Delete Task | 10 |
| Data Persistence (SharedPreferences) | 10 |
| Clear Completed Tasks (required) | 10 |
Code Quality — 20 pts
| Criteria | Points |
|---|---|
| Clean project structure & naming | 10 |
| Proper use of Flutter widgets & state | 10 |
Documentation — 10 pts
| Criteria | Points |
|---|---|
| README with description + run instructions | 10 |