Taskly is a lightweight command-line interface (CLI) application for efficient task management.
Built as the final project for CS50P, it allows you to add, update, delete, list, and track tasks directly from your terminal.
- Add a Task → Create tasks with descriptions. Each task gets a unique ID and a default
todostatus. - Update a Task → Modify the description or status of a task.
- Mark as In-Progress → Quickly change a task’s status to
in-progress. - Mark as Done → Quickly change a task’s status to
done. - Delete a Task → Remove tasks by their ID.
- List Tasks → Display all tasks or filter them by:
- status:
todo,in-progress,done, orall - date: filter by creation date with operators
<,>,=
- status:
-
taskly.py → Core CLI implementation
main()→ Entry point, parses CLI arguments and runs commands.load_database(path)→ Loads tasks from a JSON file.save_database(database, path)→ Saves tasks to JSON.add_task(database, description)→ Adds a new task.update_task(database, id, description?, status?)→ Updates description or status.mark_in_progress_task(database, id)→ Marks a task as in-progress.mark_done_task(database, id)→ Marks a task as done.delete_task(database, id)→ Deletes a task.list_task(database, status?, date?)→ Lists tasks with optional filters.
-
test_taskly.py → Unit tests for all features using
pytest. -
pyproject.toml → Project metadata, dependencies, and packaging config.
You can install Taskly directly from GitHub:
pip install git+https://github.com/brkahmed/taskly.git$ taskly add [-h] description
$ taskly update [-h] [-d description] [-s {done,in-progress,todo}] id
$ taskly mark-done [-h] id
$ taskly mark-in-progress [-h] id
$ taskly delete [-h] id
$ taskly list [-h] [-s {done,in-progress,todo,all}] [-d DATE]This project is licensed under the MIT License. You are free to use, modify, and distribute it.