224 Implementing core features (Sprint 1)
Sprint 1 delivers a working foundation by implementing the core Task and TaskManager classes, supported by manual testing and internal documentation.
Sprint 1 begins the development cycle by translating the class design into working Python code. The goal is to build and test the core object-oriented structure of the Task Tracker app, including class definitions, internal state handling, and basic user interaction via a test harness. This sprint models best practice in structured implementation and incremental testing.
Sprint goal
To implement the core object-oriented structure of the Task Tracker app, including:
Definition of the Task and TaskManager classes
Methods for creating, storing, and displaying tasks
Manual testing via main.py
Internal documentation and preparation for future extension
Tasks completed
Created
task.py
containing theTask
class with attributes:title
,description
,due_date
,is_complete
Implemented
Task
methods:mark_complete()
,mark_incomplete()
,display_summary()
,display_details()
Created
task_manager.py
containing theTaskManager
class with an internal list ofTask
objectsImplemented
TaskManager
methods:add_task()
,list_tasks()
,find_task()
,remove_task(),
get_completed_tasks()
,get_incomplete_tasks()
,display_all_tasks()
Developed
main.py
to manually instantiate objects and verify behaviour through print-based testingUsed controlled test data to verify functionality and validate core logic
Testing log
Testing is conducted manually using main.py
. Known tasks are added and manipulated in code to observe expected output and verify object behaviour. Outputs from method calls are printed and compared to expected results. Tasks are marked complete, filtered, and displayed in different formats to verify correctness.
Testing log example
Create new Task
"Finish homework", "2025-07-01"
Task object with correct attributes
Correct attributes shown in printout
Basic instantiation check
Toggle completion
Call toggle_complete()
on a Task
Task marked as complete/incomplete
Correct status toggled each time
State change confirmed
Add task to TaskManager
add_task(task)
Task appears in task list
Found in list
Success
Display tasks (all)
Call display_tasks()
All tasks printed
Output matches
Display incomplete tasks
Call display_tasks(False)
Only incomplete tasks printed
Output matches
Mark task complete
mark_task_complete(index)
Task status updated
Worked as expected
Version control
Git repository initialised using SSH key authentication
Commits follow a clear structure: initial class creation, method implementation, test driver setup, and documentation
GitHub is used to store projects remotely with public visibility
A
.gitignore
added to exclude Python cache files
Reflections
This sprint establishes the core structure of the app and validates that the object-oriented model holds up under basic usage. Manual testing provides enough coverage for now, but automated testing will be introduced in future sprints. The method stubs prove helpful in guiding development, and Git has been used effectively to manage commits and push updates.
Checklist
This checklist provides a structured method for verifying the completion of Sprint 1. It helps you confirm that all essential files, features, tests, and documentation are in place before moving on. Reviewing each item encourages careful reflection on what has been implemented, ensuring that your project aligns with professional development practices. The checklist also serves as a repeatable template for future sprints.
Last updated
Was this helpful?