GoDo is a simple, terminal-based task management application built in Go using the Bubble Tea framework. It allows you to add, delete, prioritize, filter, and mark tasks as done, all from the comfort of your terminal.
- Task Management:
- Add new tasks.
- Delete existing tasks.
- Mark tasks as done/undone.
- Edit task names.
- Priority Management:
- Set task priorities (High, Medium, Low, None).
- Filter tasks by priority.
- Navigation:
- Move up and down the task list.
- Toggle between active and completed tasks.
- User Interface:
- Clean and intuitive terminal-based user interface.
- Keybindings for easy navigation and task management.
- Help screen with usage instructions.
- Persistence:
- Tasks are saved to a JSON file in your home directory (
~/.td.json
) and loaded on startup.
- Tasks are saved to a JSON file in your home directory (
The project is organized into several packages to promote code organization, readability, and maintainability:
cmd/todo
: Contains the main application executable.internal/data
: Manages data persistence (loading and saving tasks).internal/model
: Defines theTask
struct and related types.internal/tui
: Contains the Bubble Tea-based TUI implementation.internal/tui/keymap
: Defines keybindings.internal/tui/styles
: Defines styles using Lip Gloss.internal/tui/ui
: Implements the main TUI logic (model, update, view).
Make sure you have Go installed (version 1.18 or higher).
# Clone the repository
git clone <repository_url>
cd <project_directory>
# Initialize the Go module (if not already initialized)
go mod init <your_module_name> # e.g., go mod init github.com/yourusername/GoDo
# Download dependencies
go mod tidy
# Build the application
go build ./cmd/todo
# Run the Binary
./todo