Skip to content

Multi-site logistics operations system with TigerBeetle accounting database - High-performance, offline-resilient architecture for corporate HQ and remote site operations

Notifications You must be signed in to change notification settings

rblinton/logistics-system

Repository files navigation

Logistics System

Multi-site logistics operations with TigerBeetle accounting database

Build Status Tests .NET Version TigerBeetle GitHub

A high-performance logistics system designed for multi-site operations with offline resilience and real-time financial integrity.

🚀 Quick Start

# 1. Start development session (does everything automatically)
cd /home/rob/logistics-system
./dev-start.sh

# 2. Develop your features...

# 3. End session (commits, pushes, verifies)
./dev-stop.sh

Manual Commands (if needed):

dotnet build && dotnet test                    # Build and test
# API coming soon - currently building core functionality
docker start tigerbeetle                       # Start TigerBeetle manually

Features

  • 🆔 Simple ID System - Site-prefixed, time-ordered, debuggable IDs
  • 🏢 Multi-Site Support - Corporate HQ + remote sites with offline capability
  • 🐅 TigerBeetle Integration - High-performance accounting database
  • 📦 Load Lifecycle - Complete load management from creation to completion
  • 🔄 Offline Resilience - Automatic sync when connectivity restored
  • 🧪 Test Coverage - Comprehensive unit tests for core functionality

🏗️ Architecture

Corporate HQ (Hub)          Remote Sites (Spokes)
┌─────────────────┐        ┌─────────────────┐
│ TigerBeetle     │◄──VPN──│ .NET API        │
│ Cluster (3 nodes)│        │ + Offline Buffer │
│                 │        │ + Reference DB   │
└─────────────────┘        └─────────────────┘

🛠️ Tech Stack

  • .NET 9.0 - Modern C# with records and minimal APIs
  • TigerBeetle 0.16.60 - High-performance accounting database
  • Docker - Containerized TigerBeetle deployment
  • xUnit - Comprehensive testing framework
  • SQLite - Local reference database and offline buffer

📊 Project Structure

Project Purpose
LogisticsSystem.Core Domain models, ID generation, shared logic
LogisticsSystem.TigerBeetle Accounting integration, offline buffer
LogisticsSystem.Core.Tests Unit tests (12 passing)

🧪 Testing

# Run all tests
dotnet test

# Run with watch mode
dotnet watch test

# Run specific test class
dotnet test --filter "LogisticsIdTests"

🆔 ID System Example

// Generate debuggable IDs
var loadId = LogisticsId.GenerateLoadId("SITE_A");

// Instant debugging capability
Console.WriteLine(LogisticsId.FormatForLogging(loadId));
// Output: "SITE_A@2025-10-03 20:24:03#42"

// Extract components
var site = LogisticsId.GetSiteCode(loadId);     // "SITE_A"
var timestamp = LogisticsId.GetTimestamp(loadId); // 2025-10-03 20:24:03
var counter = LogisticsId.GetCounter(loadId);   // 42

📋 Development Roadmap

  • Foundation - Project structure, ID system, domain models
  • TigerBeetle Integration - Service interfaces and base implementation
  • Configuration - Environment-specific settings
  • Testing - Core functionality validated
  • Load Lifecycle - Complete CRUD operations
  • REST API - Web endpoints and validation
  • Offline Buffer - SQLite-based synchronization
  • Master Data - Vendor/carrier/product management

📚 Documentation

🤝 Development

Ready for iterative development! See the Development Guide for:

  • Daily development workflow
  • Testing strategies
  • Common development tasks
  • Troubleshooting guide
  • Phase-by-phase roadmap

📊 Current Status

  • 12 Unit Tests passing
  • 4 .NET Projects with clean architecture
  • TigerBeetle Integration ready
  • Simple ID System implemented and tested
  • Configuration Management environment-ready
  • Development Environment fully functional

Next Step: Implement your first feature using the Development Guide! 🎯

About

Multi-site logistics operations system with TigerBeetle accounting database - High-performance, offline-resilient architecture for corporate HQ and remote site operations

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published