Multi-site logistics operations with TigerBeetle accounting database
A high-performance logistics system designed for multi-site operations with offline resilience and real-time financial integrity.
# 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.shdotnet build && dotnet test # Build and test
# API coming soon - currently building core functionality
docker start tigerbeetle # Start TigerBeetle manually- 🆔 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
Corporate HQ (Hub) Remote Sites (Spokes)
┌─────────────────┐ ┌─────────────────┐
│ TigerBeetle │◄──VPN──│ .NET API │
│ Cluster (3 nodes)│ │ + Offline Buffer │
│ │ │ + Reference DB │
└─────────────────┘ └─────────────────┘
- .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 | Purpose |
|---|---|
| LogisticsSystem.Core | Domain models, ID generation, shared logic |
| LogisticsSystem.TigerBeetle | Accounting integration, offline buffer |
| LogisticsSystem.Core.Tests | Unit tests (12 passing) |
# Run all tests
dotnet test
# Run with watch mode
dotnet watch test
# Run specific test class
dotnet test --filter "LogisticsIdTests"// 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- 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 Hub - Complete navigation guide for all docs
- 📖 Development Guide - Complete development setup and workflow
- 🏗️ Implementation Design - Detailed architecture and domain models
- 🐅 TigerBeetle Setup - Database configuration and installation
- 🚀 Production Deployment - Production deployment strategies
Ready for iterative development! See the Development Guide for:
- Daily development workflow
- Testing strategies
- Common development tasks
- Troubleshooting guide
- Phase-by-phase roadmap
- ✅ 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! 🎯