CoderSchool FTW - To Do List

Created with love by: Viet Anh Nguyen

Requirements

[x] The user can run your program from the command line.

[x] If the user does not supply the correct arguments, or supplies a --help flag, the user sees a "usage" message.

[x] The user can add a todo from the command line, by calling add_todo. The fields specified should be text, due_date, and project_id. The fields due_date and project_id are optional. Text is required.

[x] Todos added, by default should be marked as incomplete.

[x] The user should see a message giving information about the todo that was added.

[x] The user can call a function called mark_complete and pass the id of the todo to mark complete.

[x] The user can see all todos from the command line by passing a list command, sorted with the ones due first.

[x] The user can supply arguments to the list command to only see todos that are complete.

[x] The user can supply arguments to the list command to only see todos of a particular project_id.

[x] The user can supply arguments to the list command to reverse the default sort, to now see the todos by due_date descending.

[x] The user can supply arguments to the list command to combine the above options.

Optional Requirements

[x] The user can add a project by calling add_project. Each project must have a name.

[x] The user can see all projects from the command line.

Bonus Requirements

[x] The user can add a user_id to each todo.

[x] The user can add a user to the system by passing add_user. Each user should have a name, email_address, and id.

[x] The user can call a list_users command that shows all the users in the system.

[x] The user can call a staff command that shows each project, combined with each of the users working on that project.

[x] The user can call a who_to_fire command that lists all users who are not currently assigned a todo.