

Kanban App for the terminal written in rust
This kanban app will allow the user to be more productive by prioritizing tasks and achieving goals faster
Why?
I am new to rust and wanted to learn the language in a project-oriented manner, feel free to drop feedback on my code😁. Another reason for building a TUI is that I spend the majority of my time in the terminal whether it is testing or running code or writing code in neovim. I haven't been able to find any other alternatives so I have started to make my own!
Contribution
Feel free to make a pull request or make a new issue, I am open to suggestions ✌️
** I currently do not own a Mac so I am unable to test the app on Mac, if you can test it on Mac, please let me know if there are any issues.
TODO
- [ ] Improve performance/optimize code (card view can take upwards of 1ms to render)
- [ ] Improve error handling by implementing best practices
- [ ] Allow for more mouse Interactions (Dragging cards maybe?)
- [ ] Implement animations for UI elements
- [ ] Implement a way to sync with other services like notion
- [ ] Write Tests
- [ ] Add a Tutorial for new users (Preferably in the app itself with animations and highlighting of UI elements)
- [ ] (Chore) Add documentation to functions and useful comments
- [ ] (Chore) Refactor convoluted functions with many nested statements
Completed Features
- [X] Allow for vertical movement in text fields (e.g. card description)
- [X] Encryption for Cloud Saves
- [X] Implement Cloud saves
- [X] Ability to scroll through logs
- [X] Ability to Undo and Redo actions
- [X] Ability to change date formats
- [X] Ability to search for cards and boards in the command palette
- [X] Ability to filter cards by tags
- [X] Allow Card to be modified in Card View
- [X] Implement a way to add custom colors (Theme support)
- [X] Implement a way to interact with the kanban board using the mouse (Clicking, Scrolling are supported as of now)
- [X] Added ability to export kanban data to JSON
- [X] Implement a Command Palette (like in vs code (Ctrl + Shift + P)) as a way to interact with the app instead of using keybindings
- [X] Implement previews for loading a save
- [X] Toast Message Implementation -- (Inspired by nvim-notify)
- [X] Improve Help Messages
- [X] Custom Keybindings
- [X] Implement the Kanban Boards ( the main UI basically )
- [X] Auto Save on exit
- [X] Save/Load Kanban state
- [X] Hide/Un-hide UI elements
- [X] Refactoring UI Logic
- [X] Focusing and highlighting UI elements
- [X] Input Handling
- [X] Logging
Known Issues
None as of now
PSA (i.e. Public service announcement)
Cloud saves are now encrypted. Please keep your generated key safe. It is usually located in "config/rustkanban/kanbanencryptionkey" after signing up. If you lose your key, you will not be able to access your data (I Cannot see your data nor edit it/decrypt it). If you have lost your key, you will have to delete your data after logging in and generate a new key using the -g flag.
If you are not feeling safe to store your key on disk you can also provide the generated key with the --encryption-key flag when starting the app. This will allow you to store your key in a password manager or a file that is not on disk. by copying the generated key from the key location and deleting it thereafter
linux example : rust-kanban --encryption-key $(cat ~/.config/rustkanban/kanbanencryptionkey)
How to use
Default Keybindings
| Keybinding | Action |
| -------------------------- | ----------------------------------------- |
| 'Ctrl + c' or 'q' | Quit |
| 'Tab' | Next Focus |
| 'BackTab' | Previous Focus |
| 'c' | Configure |
| 'Up' | Move Up |
| 'Down' | Move Down |
| 'Right' | Move Right |
| 'Left' | Move Left |
| 'i' | Take User Input (when filling out a form) |
| 'Insert' | Exit user input mode |
| 'h' | Hide UI Element |
| 'Ctrl + s' | Save State |
| 'b' | New Board |
| 'n' | New Card |
| 'd' | Delete Card |
| 'D' or 'Shift + d' | Delete Board |
| '1' | Change Card Status to Completed |
| '2' | Change Card Status to Active |
| '3' | Change Card Status to Stale |
| 'r' | Reset UI to Default |
| 'm' | Go to Main Menu |
| 'Ctrl + p' | Toggle Command Palette |
| 'Esc' | Go to Previous UI Mode |
| 't' | Clear Toast Messages |
| 'Mouse Left Click' | Select UI Element |
| 'Mouse Middle Click' | Open Command Palette |
| 'Mouse Right Click' | Go to Previous UI Mode |
| 'Mouse Scroll Up' | Scroll Up Cards |
| 'Mouse Scroll Down' | Scroll Down Cards (for cards) |
| 'Ctrl + Mouse Scroll Up' | Scroll to the right (for boards) |
| 'Ctrl + Mouse Scroll Down' | Scroll to the left (for boards) |
Available Themes
- Default Theme

- Light

- Midnight Blue

- Slate

- Metro

- Matrix

- Cyberpunk

- Dracula
