Skip to main content

NetTraceX

A comprehensive network diagnostic toolkit built with Go, featuring a beautiful terminal user interface powered by the Bubble Tea framework.

What is NetTraceX?โ€‹

NetTraceX is a modern network diagnostic tool that combines the power of traditional command-line network utilities with an intuitive terminal user interface. Built with clean architecture principles and extensive testing, it provides a unified experience for network troubleshooting and analysis.

Key Featuresโ€‹

  • ๐ŸŒ Comprehensive Network Tools: Built-in support for ping, traceroute, DNS lookups, WHOIS queries, and SSL certificate analysis
  • ๐ŸŽจ Beautiful Terminal Interface: Powered by the Bubble Tea framework for responsive and intuitive terminal UI
  • ๐Ÿ”ง Extensible Plugin System: Clean architecture with SOLID principles allows for easy extension
  • โšก High Performance: Built with Go for fast execution and low resource usage
  • ๐Ÿงช Well Tested: Comprehensive unit tests with 100% coverage for all core components
  • ๐Ÿ“ฆ Cross-Platform: Works on Windows, macOS, and Linux

Quick Startโ€‹

Prerequisitesโ€‹

  • Go 1.21 or later
  • Make (for Unix/Linux/macOS) or PowerShell (for Windows)

Installationโ€‹

Unix/Linux/macOS (with Make)โ€‹

# Clone the repository
git clone https://github.com/nettracex/nettracex-tui.git
cd nettracex

# Download dependencies
make deps

# Build the application
make build

# Run the application
make run

Windows (PowerShell)โ€‹

# Clone the repository
git clone https://github.com/nettracex/nettracex-tui.git
cd nettracex

# Download dependencies
go mod download
go mod tidy

# Build the application
go build -o bin/nettracex.exe ./cmd/nettracex

# Run the application
./bin/nettracex.exe

Architectureโ€‹

The project follows clean architecture principles with clear separation of concerns:

  • Domain Layer: Core business logic interfaces and types
  • Application Layer: Use cases and application services
  • Infrastructure Layer: Network clients and external integrations
  • Presentation Layer: TUI components and user interface

SOLID Principles Implementationโ€‹

  • Single Responsibility: Each interface and type has a single, well-defined purpose
  • Open/Closed: Plugin architecture allows extension without modification
  • Liskov Substitution: All implementations can be substituted for their interfaces
  • Interface Segregation: Small, focused interfaces for different concerns
  • Dependency Inversion: High-level modules depend on abstractions

What's Next?โ€‹