This project is about build a todo list application. The application will allow an user to create new tasks, assign them a title and due date, and choose a project for that task to belong to. They will need to use a text based user interface via the command-line. Once they are using the application, the user should be able to also edit, mark as done or remove tasks. They can also quit and save the current task list to file, and then restart the application with the former state restored.
As explained above, this application will allow an user to create new tasks, assign them a title and due date, and choose a project for that task to belong to.
- Main menu is showed once the application has started. It should look like this:
>> Welcome to ToDoList
>> You have X tasks todo and Y tasks are done!
>> Pick an option:
>> (1) Show Task List (by date or project)
>> (2) Add New Task
>> (3) Edit Task (update, mark as done, remove)
>> (4) Save and Quit
>>
-
If this is the user´s first time initiating the application, then, proceed to add new task by pressing the option: 2
-
Continue, naming the task when the text: ">>Write the title of the task:" and marking the due date of the task when this is shown: ">>Write the due date of the task (yyyy-MM-dd):"
(It is very important that the user mark the due date in the same way as the example)
- And finally write the name of the project for the task you are trying to save: >>Write the project name of the task
4.b This program has an option for those who wants to keep adding tasks without quiting each time. After the first task been added this will pop up: ">>Do you want to add one task more? Press Y for yes and N for no."
- As a last step (for the basic functionality of this program) save and quit by pressing the option: 4
If this is not the first time the user use this program, then after pressing the option: 1 the user should be able to see the tasks that has been saved and also have the option to sort them: "Sort by (d)ate or (p)roject, or (c)ancel?"
Each tasks has an index so when the user wants to edit an existent task only needs to select by index After that the user can chose different options for editing: "Do you want to (u)pdate, (m)ark as done or (r)emove the task"
:)