Repository navigation
Releases: Manikya-Sharma/todo-cli
Release list
0.3.0
New changes
Editor
- Better UI with unicode characters
- Dates associated with each task
- A better list with more intuitive UI
CLI
- tasks can now be updated using CLI
v0.2.0
A mini todo-cli
Documentation available at docs.rs
About
This is a small todo app written in rust for learning purposes.
Features
- An easy to use TUI with explanation of all keymaps
- Tasks stored in local storage so that they can be accessed later
- High performance and no lag even on slow devices
- cli commands for advanced users who do not need a tui
How to install
Using binary
Download the executable for your platform from the github latest release!
Using cargo
Clone this repository using git
git clone "https://github.com/Manikya-Sharma/todo-cli"
cd to directory and build using Cargo
cd todo-cli
cargo build --releaseSimply run the exetuable created in target/release directory
Alternatively, use cargo run while providing opt-level=3 in Cargo.toml.
Usage
Begin TUI
Run without any arguments to start the TUI
todo-cliHelp
Get help regarding cli
todo-cli helpYou can also run help on any subcommand, e.g.
todo-cli list helpList
List out all the tasks
todo-cli listList out all the tasks which are not yet completed
todo-cli list -p true # p stands for pendingList out all the tasks which are completed
todo-cli list -c trueFind out tasks using fuzzy search
todo-cli list -f "buy" # list all tasks with buyYou cna combine multiple flags for more specific searches
todo-cli list -p true -f "cmp" # all pending tasks with fuzzy
# e.g. "organize computer" task
# which is pending will matchClear all data
todo-cli cleanEdit a task
Currently, only TUI supports editing a task but CLI feature will be added soon!
How its made
The todo-cli follows a very simple approach, keep all the tasks in a csv and access them efficiently as and when needed.
This project stand on the shoulder of giants, by managing majority of requirements from external dependencies.
Scope for improvement
This project is far from complete yet and needs many improvements
- Improve performance while navigation the tasks in tui
- Add a hash value to tasks and store then properly in csv for fast access and management
- Add options to use only CLI for adding and managing tasks
- Use hashing algorithm instead of RNG for task ID
Missing features / Bugs
- Tasks cannot yet be edited using CLI
- Excess tasks will overflow from TUI
- No method yet to know about ID or status of a task in TUI
- Tasks are rendered naively in TUI which does not offer customization.
- No provision for storing dates when tasks are created/edited
Some ambitious features
This list includes those features which are not currently high priority but can improve User Experience
- Allow customization of themes using yml/toml
- Make tasks richer by allowing bold, italic, highlight, internal and external links
- Tags for tasks which follow common ideas
- Extra status for tasks in-progress
v0.1.0
A mini todo-cli
About
This is a small todo app written in rust for learning purposes.
Features
- An easy to use TUI with explanation of all keymaps
- Tasks stored in local storage so that they can be accessed later
- High performance and no lag even on slow devices
- cli commands for advanced users who do not need a tui
How to install
Using binary
Download the executable for your platform from the github latest release!
Using cargo
Clone this repository using git
git clone "https://github.com/Manikya-Sharma/todo-cli"
cd to directory and build using Cargo
cd todo-cli
cargo build --releaseSimply run the exetuable created in target/release directory
Alternatively, use cargo run while providing opt-level=3 in Cargo.toml.
Usage
Get help regarding cli
todo-cli helpRun without any arguments to start the TUI
todo-cli # starts tui in alternate screenList all the existing tasks in the terminal
todo-cli listRemove all the existing tasks
todo-cli cleanNavigating in TUI
You can use either the arrow keys or j and k to move down and up respectively
How its made
Some of the amazing crates which have been used to build this project are: -
ratatuiandcrosstermclapdirscsv
Intensive documentation has been done for almost all the functions and methods to make the code easy to understand
Scope for improvement
This project is far from complete yet and needs many improvements
- Improve performance while navigation the tasks in tui
- Add option to use only CLI for adding and managing tasks
- Add a hash value to tasks and store then properly in csv for fast access and management
Missing features
- Tasks can only be deleted but not marked as complete
- Updating task is using poor makeshift method by replacing instead of actually updating it