{"id":20245420,"url":"https://github.com/letsmakecakes/task-tracker","last_synced_at":"2026-06-12T09:31:56.693Z","repository":{"id":257158507,"uuid":"855954039","full_name":"letsmakecakes/task-tracker","owner":"letsmakecakes","description":"Task Tracker CLI is a command-line interface (CLI) tool designed to help users manage their tasks efficiently.","archived":false,"fork":false,"pushed_at":"2024-12-31T19:26:33.000Z","size":25,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-03T15:35:56.281Z","etag":null,"topics":["cli","go","golang"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/letsmakecakes.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-09-11T18:23:02.000Z","updated_at":"2024-12-31T19:26:36.000Z","dependencies_parsed_at":"2024-09-15T04:26:55.292Z","dependency_job_id":"e81f672b-c487-46eb-a100-388a912168e8","html_url":"https://github.com/letsmakecakes/task-tracker","commit_stats":null,"previous_names":["letsmakecakes/task-tracker"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/letsmakecakes/task-tracker","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/letsmakecakes%2Ftask-tracker","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/letsmakecakes%2Ftask-tracker/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/letsmakecakes%2Ftask-tracker/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/letsmakecakes%2Ftask-tracker/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/letsmakecakes","download_url":"https://codeload.github.com/letsmakecakes/task-tracker/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/letsmakecakes%2Ftask-tracker/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34238713,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-12T02:00:06.859Z","response_time":109,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cli","go","golang"],"created_at":"2024-11-14T09:20:54.366Z","updated_at":"2026-06-12T09:31:56.669Z","avatar_url":"https://github.com/letsmakecakes.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Task Tracker CLI\n\nA command-line task management application built in Go. This CLI tool helps you track and manage your tasks with features for adding, updating, marking progress, and listing tasks in different states.\n\n## Features\n\n- ✅ Add, update, and delete tasks\n- 📊 Track task status (todo, in-progress, done)\n- 📝 List all tasks or filter by status\n- 💾 Persistent storage using JSON\n- 🔒 Thread-safe file operations\n- ⚡ No external dependencies\n\n## Installation\n\n### Prerequisites\n- Go 1.19 or higher\n\n### Building from Source\n\n1. Clone the repository\n```bash\ngit clone https://github.com/letsmakecakes/task-tracker.git\ncd task-tracker\n```\n\n2. Build the application\n```bash\ngo build -o task-cli cmd/task-cli/main.go\n```\n\n3. Set the data file path\n```bash\nexport TASKS_FILE_PATH=/path/to/custom/tasks.json\n```\n\n4. (Optional) Add to PATH\n```bash\nmv task-cli /usr/local/bin/\n```\n\n## Usage\n\n### Adding Tasks\n```bash\ntask-cli add \"Buy groceries\"\n# Output: Task added successfully (ID: 1)\n```\n\n### Updating Tasks\n```bash\ntask-cli update 1 \"Buy groceries and cook dinner\"\n# Output: Task 1 updated successfully\n```\n\n### Deleting Tasks\n```bash\ntask-cli delete 1\n# Output: Task 1 deleted successfully\n```\n\n### Managing Task Status\n```bash\ntask-cli mark-in-progress 1\n# Output: Task 1 marked as in-progress\n\ntask-cli mark-done 1\n# Output: Task 1 marked as done\n```\n\n### Listing Tasks\n```bash\n# List all tasks\ntask-cli list\n\n# List by status\ntask-cli list todo\ntask-cli list in-progress\ntask-cli list done\n```\n\n## Project Structure\n\n```\ntask-tracker/\n├── cmd/\n│   └── task-cli/\n│       └── main.go              # Entry point\n├── internal/\n│   ├── cli/\n│   │   ├── commands.go          # Command handlers\n│   │   └── parser.go            # CLI argument parser\n│   ├── models/\n│   │   └── task.go             # Task struct and methods\n│   ├── storage/\n│   │   ├── json_storage.go     # JSON file storage\n│   │   └── storage.go          # Storage interface\n│   └── utils/\n│       ├── errors.go           # Custom errors\n│       └── time.go             # Time utilities\n├── go.mod\n└── README.md\n```\n\n## Task Properties\n\nEach task contains the following information:\n- `id`: Unique identifier\n- `description`: Task description\n- `status`: Current status (todo/in-progress/done)\n- `createdAt`: Creation timestamp\n- `updatedAt`: Last update timestamp\n\n## Design Decisions\n\n1. **File Storage**: Uses JSON for persistence due to its simplicity and human-readability\n2. **Thread Safety**: Implements mutex locks for concurrent file operations\n3. **Interface-Based Design**: Storage interface allows for easy testing and alternate implementations\n4. **No External Dependencies**: Uses only Go standard library for maintainability\n\n## Error Handling\n\nThe application handles various error cases:\n- Invalid commands or arguments\n- Invalid task IDs\n- File operation errors\n- Concurrent access issues\n\n## Contributing\n\n1. Fork the repository\n2. Create your feature branch (`git checkout -b feature/amazing-feature`)\n3. Commit your changes (`git commit -m 'Add amazing feature'`)\n4. Push to the branch (`git push origin feature/amazing-feature`)\n5. Open a Pull Request\n\n## License\n\nThis project is licensed under the MIT License - see the LICENSE file for details.\n\n## Future Improvements\n\n- [ ] Add task priorities\n- [ ] Add due dates\n- [ ] Add task categories/tags\n- [ ] Add search functionality\n- [ ] Add task notes/comments\n- [ ] Add data export/import\n- [ ] Add task completion statistics\n\n## Support\n\nIf you have any questions or suggestions, please open an issue in the repository.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fletsmakecakes%2Ftask-tracker","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fletsmakecakes%2Ftask-tracker","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fletsmakecakes%2Ftask-tracker/lists"}