module
0.0.0-20250219175251-3b9279ae9037
Repository: https://github.com/idmaksim/task-tracker-cli.git
Documentation: pkg.go.dev
# README
š Task Tracker CLI
A powerful command-line task management tool built with Go, following the clean architecture principles. This project was implemented based on the requirements from roadmap.sh Task Tracker project.
⨠Features
- š Add new tasks
- š Update task descriptions
- šļø Delete tasks
- š Change task status (todo/in-progress/done)
- š List tasks with status filtering
š Getting Started
Prerequisites
- Go 1.21 or higher
Installation
go install github.com/idmaksim/task-tracker-cli/cmd/task-cli@latest
š” Usage
Managing Tasks
# Add a new task
task-cli add "Buy groceries"
# Update task description
task-cli update 1 "Buy groceries and cook dinner"
# Delete a task
task-cli delete 1
Task Status Management
# Mark task as in progress
task-cli mark-in-progress 1
# Mark task as done
task-cli mark-done 1
Listing Tasks
# List all tasks
task-cli list
# List tasks by status
task-cli list todo
task-cli list in-progress
task-cli list done
šļø Project Structure
.
āāā cmd/
ā āāā task-cli/ # Application entry point
āāā internal/
ā āāā domain/ # Business logic and entities
ā ā āāā models/ # Domain models
ā ā āāā repositories/ # Repository interfaces
ā āāā usecases/ # Application use cases
ā āāā infrastructure/ # External implementations
ā ā āāā storage/ # JSON storage implementation
ā āāā delivery/ # CLI interface
ā āāā cli/
ā āāā commands/ # CLI commands
ā āāā handlers/ # Command handlers
āāā pkg/ # Public packages
āāā constants/ # Shared constants
šÆ Task Properties
Each task includes:
- š Unique ID
- š Description
- š Status (todo/in-progress/done)
- š Creation date
- š Last update date
š ļø Technical Details
- Clean Architecture: Separation of concerns with clear layer boundaries
- Concurrent Safe: JSON file storage with mutex protection
- Error Handling: Graceful error handling and user-friendly messages
- CLI Framework: Built with Cobra for robust command-line interface
- Time Tracking: Automatic creation and update time management
⨠Acknowledgments
- Project structure inspired by roadmap.sh Task Tracker project
- Built with Go and ā¤ļø