ToDo Application using containers
Create a versatile Todo app using (Item/Model) based containers.
Overview
The goal of the homework is to create an application to manage you tasks. It should have all the features of main application such as menues, actions and toolbar. The application must store an archive of all the pending and finished tasks.
This homework will be a little different, since I will not be giving detailed instructions. Leaving you the responsibility and the choices to create your own application. The only restriction is to respect the use Case scenarios.
Use Cases
Here is a list of cases that the user could perform with our app:
- A user should be able to close the application of course.
- A Todo application cannot be useful, unless it offers the possibility of
creating new tasks.
- The essential components of a task will be defined later
-
The View of the main widget should be split in three areas:
- The first (en persistent) area shows the list of today tasks.
- The second one is reserved for pending task (tasks for the future).
- Finally, the third one shows the set of finished tasks.
-
Each category must be shown with a custom icon.
-
The user could either
hide/show
the pending and finished views. -
Finally, the tasks entered to your application must remains in the app in future use.
Meaning, If I create a task and I close the application, next time I opened the application, I should find my tasks and not start from scratch.
Defining a Task
A Task
is defined by the following attributes:
-
A
description
: stating the text and goal for the task like (Buying the milk). - A
finished
boolean indicating if the task is Finished or due. -
A
Tag
category to show the class of the task which is reduced to the following values:- Work
- Life
- Other
- Finally, a task should have a
DueDate
which stores the Date planned for the date.
When the user create a new task, the application must pop up a dialog for the user to get those values. Here is an example ( not mandatory, I prefer you create your own) example:
Item Based Model
As a first attempt, You could use Item Based containers for the three widgets.
MVC Model
Once you finished the first version, Try to move on to more complicated model using either
Inhancements.
- Try to add functionality to move task between views (for elites)