This project aims to develop a basic command-line interface (CLI) task management tool that enables users to efficiently manage their tasks and lists directly from the terminal. The tool is designed to provide a straightforward and intuitive interface for creating, organizing, and tracking tasks. Use any language you like.
A working agreement is essentially a promise to you or to your team on habits and processes you agree to follow while working on a project.
Tip: Try to incorporate as many of these habits as possible, as is they aim to reflect a real-world workflow vs just hacking away at something. They are designed to keep you organized and ensure you deliver a quality product.
As a developer, I agree to handle errors gracefully and provide feedback to the user.
As a developer, I agree to ensure each story is properly tested. (A lot of times it can be a pain to test a CLI's tool main function, you'll understand when you get there, try your best, 100% code coverage is not required)
As a developer, I agree to create a new git branch for each story I work on.
Set up the project environment and initial CLI tool structure to ensure smooth development and usability.
As a developer, I want to set up the development environment, so that I can begin building the CLI tool efficiently.
As a developer, I want to create the basic structure of the CLI tool, so that I can start adding features and commands.
As a user, I want to access help for commands, so that I can easily understand how to use the tool.
Implement commands to add, delete, and complete tasks within lists, with persistent storage.
As a user, I want to add tasks to a list using a command, so that I can keep track of things I need to do.
As a user, I want to delete tasks from a list using a command, so that I can remove tasks I no longer need to complete.
As a user, I want to mark tasks as complete, so that I can track which tasks I have finished.
Create and manage lists to organize tasks, with persistent storage.
As a user, I want to create new lists, so that I can organize tasks into different categories.
As a user, I want to see all my lists and their tasks, so that I can review and manage them effectively.
As a user, I want to delete entire lists, so that I can remove obsolete or unwanted task categories.
Improve usability and user experience with intuitive commands and clear feedback.
As a user, I want to configure settings and preferences for the tool, so that I can customize my experience.
As a user, I want to filter tasks by status, so that I can view only incomplete or completed tasks.