TodoCLI 1.0.12

dotnet tool install --global TodoCLI --version 1.0.12
                    
This package contains a .NET tool you can call from the shell/command line.
dotnet new tool-manifest
                    
if you are setting up this repo
dotnet tool install --local TodoCLI --version 1.0.12
                    
This package contains a .NET tool you can call from the shell/command line.
#tool dotnet:?package=TodoCLI&version=1.0.12
                    
nuke :add-package TodoCLI --version 1.0.12
                    

๐Ÿ“ TodoCLI - Developer Task Manager

.NET License: MIT Build Status

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

  1. ๐Ÿ”ด Red - Write a failing test
  2. ๐ŸŸข Green - Write minimal code to pass the test
  3. ๐Ÿ”ต Refactor - Improve code while keeping tests green
  4. ๐Ÿ“‹ Repeat - Continue for each feature

๐ŸŽจ Object-Oriented Analysis & Design

The project was developed using comprehensive OOA&D methodology:

  1. ๐Ÿ“‹ Requirements Analysis - Gathered functional and non-functional requirements
  2. ๐ŸŽญ Use Case Modeling - Detailed user interaction scenarios
  3. ๐Ÿ—๏ธ Domain Analysis - Identified business concepts and rules
  4. ๐Ÿ›๏ธ Architecture Design - Selected appropriate architectural pattern
  5. ๐Ÿƒ Class Design - Used CRC Cards and class identification techniques
  6. ๐Ÿ”— 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

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Follow TDD practices - write tests first!
  4. Ensure all tests pass (dotnet test)
  5. Commit your changes (git commit -m 'Add amazing feature')
  6. Push to the branch (git push origin feature/amazing-feature)
  7. 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 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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

This package has no dependencies.

Version Downloads Last Updated
1.0.12 90 2/10/2026