This Dart project is a simple window-based task management application that demonstrates the use of design patterns such as the Memento pattern for undo/redo functionality and various other design principles.
- Task Creation: Add tasks to the task list.
- Display Tasks: View and display the list of tasks.
- Change Task Status: Update the status of tasks.
- Change Sort Type: Change the sorting strategy for displaying tasks.
- Undo/Redo Functionality: Use undo and redo to navigate through task history.
- Add Deadline to Task: Assign a deadline to a task for time-sensitive operations.
- Change Task Priority: Adjust the priority level of tasks.
- Memento Pattern: Captures and externalizes the state of a task for undo and redo functionality.
- Strategy Pattern: Used for sorting tasks based on different strategies.
- Observer Pattern: Allows the observation of changes in tasks, such as saving to a text file.
- Prototype Pattern: Used for creating a copy of a task, allowing for efficient cloning of task instances.
- Abstract Factory Pattern: Employed for creating instances of tasks and task-related objects.
- State Pattern: Allows tasks to transition between different states, such as
To Do
,In Progress
, andDone
. - Singleton Pattern: Ensures a single instance of critical components, enhancing efficiency and consistency, such as
TaskManager
.
-
Clone the repository:
git clone https://github.com/yourusername/dart-task-management.git cd dart-task-management
-
Run application (intended for wider screens, such as tablets):
flutter run
Contributions are welcome! Feel free to open issues or submit pull requests.