TodoCLI 1.0.12
dotnet tool install --global TodoCLI --version 1.0.12
dotnet new tool-manifest
dotnet tool install --local TodoCLI --version 1.0.12
#tool dotnet:?package=TodoCLI&version=1.0.12
nuke :add-package TodoCLI --version 1.0.12
๐ TodoCLI - Developer Task Manager
A simple yet powerful command-line task manager designed specifically for .NET developers to track small tasks for their next commit. Built with modern C# practices, Clean Code principles, and Test-Driven Development.
๐ฏ Purpose
TodoCLI solves a common developer problem: keeping track of small tasks that need to be completed before the next commit. Whether it's "fix validation bug", "update documentation", or "refactor login method", TodoCLI provides a simple, GitHub-integrated solution that syncs across all your development environments.
โจ Features
- ๐ Lightning fast - Optimized performance with 24h authentication cache
- ๐ GitHub Gists integration - Your tasks sync everywhere
- ๐จ Clean CLI interface - Custom-built command parser with intuitive UX
- ๐ Secure authentication - GitHub token-based auth with persistent cache
- ๐ฑ Cross-platform - Windows, Linux, macOS support
- ๐ Offline capable - Local persistence, syncs when available
- โก Zero dependencies - Pure .NET 8.0, no external libraries
๐๏ธ Architecture
This project implements a Simple Modular Design architecture, balancing maintainability with simplicity:
๐ Project Structure
โโโ src/ # Source code
โ โโโ Auth/ # Authentication module
โ โโโ Tasks/ # Task management (core business logic)
โ โโโ Sync/ # GitHub Gists synchronization
โ โโโ CLI/ # Command-line interface
โ โโโ Program.cs # Application entry point
โโโ tests/ # Unit and integration tests
โโโ docs/ # Architecture & design documentation
โ โโโ requirements.md # Functional & non-functional requirements
โ โโโ use-cases.md # Detailed use case specifications
โ โโโ domain-analysis.md # Domain modeling and business rules
โ โโโ architecture-decision.md # Architectural decisions and rationale
โ โโโ class-identification.md # OO analysis and class design
โ โโโ crc-cards.md # Class-Responsibility-Collaborator cards
โโโ README.md # This file
๐ Module Dependencies
Following Dependency Inversion Principle:
graph TD
CLI --> ITaskService
CLI --> IAuthService
CLI --> ISyncService
TaskManager -.implements.-> ITaskService
AuthManager -.implements.-> IAuthService
SyncManager -.implements.-> ISyncService
TaskManager --> IAuthService
SyncManager --> IAuthService
SyncManager --> IGistClient
๐ฆ Installation
Install TodoCLI as a global .NET tool:
# Install from NuGet (recommended)
dotnet tool install -g TodoCLI
# Or update if already installed
dotnet tool update -g TodoCLI
๐ Quick Start
Basic Usage
# Setup GitHub authentication
todo auth setup
# Add a task
todo add "Fix login validation bug"
# List all tasks
todo list
# Output:
# You have 2 task(s):
# abc [ ] Fix login validation bug
# def [X] Update documentation
# Mark task as completed
todo done abc
# Remove a task
todo rm def
# Sync with GitHub Gists
todo sync
๐งช Development Methodology
This project follows Test-Driven Development (TDD) practices:
๐ TDD Process
- ๐ด Red - Write a failing test
- ๐ข Green - Write minimal code to pass the test
- ๐ต Refactor - Improve code while keeping tests green
- ๐ Repeat - Continue for each feature
๐จ Object-Oriented Analysis & Design
The project was developed using comprehensive OOA&D methodology:
- ๐ Requirements Analysis - Gathered functional and non-functional requirements
- ๐ญ Use Case Modeling - Detailed user interaction scenarios
- ๐๏ธ Domain Analysis - Identified business concepts and rules
- ๐๏ธ Architecture Design - Selected appropriate architectural pattern
- ๐ Class Design - Used CRC Cards and class identification techniques
- ๐ Interface Design - Applied SOLID principles for clean abstractions
๐ Full documentation available in the
docs/directory
๐ ๏ธ Technology Stack
- Framework: .NET 8.0
- CLI Framework: Custom command parser (zero external dependencies)
- Testing: xUnit, Moq, FluentAssertions
- HTTP Client: System.Net.Http
- Serialization: System.Text.Json
- Architecture: Simple Modular Design with Dependency Injection
- Performance: 24h authentication cache, ~1.2s execution time
๐ Project Statistics
- Total Lines: 4,064 lines of code
- Source Code: 1,953 lines (48%)
- Tests: 1,858 lines (46%) - 79 tests with 100% success rate
- Documentation: 197 lines (5%)
- Test Coverage: Comprehensive TDD approach with excellent coverage
- Architecture: 4 modules (Tasks, Auth, Sync, CLI) following SOLID principles
๐งช Testing
# Run all tests
dotnet test
# Run with coverage
dotnet test --collect:"XPlat Code Coverage"
# Run specific test category
dotnet test --filter Category=Unit
dotnet test --filter Category=Integration
Test Categories
- Unit Tests - Individual class/method testing
- Integration Tests - Module interaction testing
- E2E Tests - Full application workflow testing
๐ Command Reference
| Command | Description | Example |
|---|---|---|
todo add "task" |
Add new task | todo add "Fix bug in login" |
todo list |
Show all tasks | todo list |
todo done <hash> |
Mark task completed | todo done abc |
todo rm <hash> |
Remove task | todo rm abc |
todo done-all |
Complete all tasks | todo done-all |
todo rm-all |
Remove all tasks | todo rm-all |
todo sync |
Sync with GitHub | todo sync |
todo auth setup |
Configure GitHub auth | todo auth setup |
๐ค Contributing
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Follow TDD practices - write tests first!
- Ensure all tests pass (
dotnet test) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
Development Guidelines
- โ Write tests before implementation (TDD)
- โ Follow SOLID principles
- โ Maintain high code coverage (>90%)
- โ Use meaningful commit messages
- โ Update documentation as needed
๐ License
This project is licensed under the MIT License - see the LICENSE file for details.
๐ Acknowledgments
- GitHub for providing the Gists API and excellent developer tools
- .NET Community for excellent tooling and practices
- TDD Community for promoting quality-driven development
๐ Support
- ๐ Documentation: See
docs/directory - ๐ Bug Reports: Use GitHub Issues
- ๐ฌ Discussions: Use GitHub Discussions
- ๐ง Contact: contact@guilhermedalmeida.dev
Made with โค๏ธ for developers by developers
Keeping your commits clean, one task at a time
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
This package has no dependencies.
| Version | Downloads | Last Updated |
|---|---|---|
| 1.0.12 | 90 | 2/10/2026 |