Improving the README further

This commit is contained in:
Joseph Ferano 2023-06-17 23:28:25 +07:00
parent 6e91544cfe
commit d3ea9fc160

View File

@ -1,11 +1,14 @@
#+OPTIONS: toc:nil #+OPTIONS: toc:nil
* kanban-tui * kanban-tui
** Why kanban-tui? ** About
kanban-tui is a lightweight, minimalist, terminal-based [[https://en.wikipedia.org/wiki/Kanban_board][Kanban]] tool built in kanban-tui is a lightweight, minimalist, terminal-based [[https://en.wikipedia.org/wiki/Kanban_board][Kanban]] tool built in
Rust. Keybindings are vim-like, making it pretty fast to navigate and handle Rust. Keybindings are vim-like, making it pretty fast to navigate and handle
tasks. Currently it's not that feature-rich, but it provides all the essential tasks. Currently it's not that feature-rich, but it provides all the essential
functionality you need to manage tasks in the classic Kanban way. functionality you need to manage tasks in the classic Kanban way.
It uses [[https://crates.io/crates/ratatui][ratatui]] for the TUI interface rendering and [[https://crates.io/crates/rusqlite][rusqlite]] for data
persistence. Both awesome crates to work with.
** Motivation ** Motivation
Decided to make kanban-tui to work on a non-trivial Rust application. I enjoy Decided to make kanban-tui to work on a non-trivial Rust application. I enjoy
TUIs for their simplicity and efficiency. I don't really plan on using this, as TUIs for their simplicity and efficiency. I don't really plan on using this, as
@ -18,25 +21,32 @@ of minimalism, then I might consider working on it more.
- No bloat: Just create a task and move it around - No bloat: Just create a task and move it around
** Building and Installing ** Building and Installing
To build and install kanban-tui, follow these steps: To build and install kanban-tui, follow these steps:
- Install Rust: If you don't have Rust installed, you can get it from - Install Rust: If you don't have Rust installed, you can get it from [[https://www.rust-lang.org/tools/install][here]].
[here](https://www.rust-lang.org/tools/install). - Clone this repository, cd into it
- Clone this repository
- Build the project: `cargo build --release` - Build the project: `cargo build --release`
- The built binary can be found in `target/release/kanban-tui` - The built binary can be found in `target/release/kanban-tui`
- Optionally, you can move the binary to a directory in your PATH for easier - Optionally, you can move the binary to a directory in your PATH for easier
access. access.
** Usage ** Usage
kanban-tui keeps it super simple. Just create tasks and move them to the columns It is recommended to run `kanban-tui` from the root of your project so it can
that indicate their status. pick up the project's name. This automatically creates a SQLite database there
named ~kanban.db~.
If you prefer a different name for the database file, you can specify the file
name when running the app, like ~kanban-tui todos.kanban~ as an example.
Once open, start creating tasks, then move them across columns to track their
status - from "To Do", through "In Progress", to "Done". All task and navigation
operations are performed through simple keybindings.
** Keybindings ** Keybindings
- Quit: "q" - Quit: ~q~
- Navigation: "hjkl" - Navigation: ~hjkl~
- Move Task: "HJKL" - Move Task: ~HJKL~
- New Task: "n" - New Task: ~n~
- Edit Task: "e" - Edit Task: ~e~
- Cycle Edit Fields: "Tab" - Cycle Form Fields: ~Tab~
- Column Top: "g" - Column Top: ~g~
- Column Bottom: "G" - Column Bottom: ~G~
** Potential Future Features ** Potential Future Features
- Timestamps for tasks (created, moved, completed) - Timestamps for tasks (created, moved, completed)
- Customizable column (name, amount, etc;) - Customizable column (name, amount, etc;)
@ -47,6 +57,9 @@ that indicate their status.
- Copy task - Copy task
- Reports - Reports
- Export to other formats - Export to other formats
** Acknolwedgements
[[https://github.com/Karrq][Karrq]] helped suggest a lot of things design wise and even contributed a handie
little macro.
** Contributions ** Contributions
While the project is primarily developed to practice Rust, if for some reason While the project is primarily developed to practice Rust, if for some reason
you like this and want to contribute, open an issue and we can discuss whatever. you like this and want to contribute, open an issue and we can discuss whatever.