Files
todo/README.md
2025-05-21 00:35:51 -04:00

1.4 KiB

Go Todo CLI App

A simple command-line Todo application written in Go. Todos are stored in a local JSON file.

Features

  • Add new todos with a title and description
  • List all todos, grouped by incomplete and completed
  • Mark todos as completed
  • Remove todos by ID
  • Data is persisted in todos.json

Usage

Build the app:

go build -o todo

Add a Todo

./todo -action=add -title="Buy milk" -description="Get 2 liters of milk"

List Todos

./todo -action=list

Complete a Todo

./todo -action=complete -id=1

Remove a Todo

./todo -action=remove -id=1

Flags

  • -action (add, remove, list, complete) — What you want to do
  • -title — Title for the todo (required for add)
  • -description — Description for the todo (required for add)
  • -id — ID of the todo (required for remove and complete)

Example

./todo -action=add -title="Read Go book" -description="Finish chapter 3"
./todo -action=list
./todo -action=complete -id=1
./todo -action=remove -id=1

Next Improvements

  • Use a CLI library like cobra for better UX
  • Add edit and search features
  • Add unit tests
  • Improve error handling
  • Use a database instead of a JSON file for storage
  • Add binary release for different platforms and make it available through Homebrew, Winget and Apt.