Cargonerds Documentation¶
Welcome to the comprehensive documentation for the Cargonerds application - a modern, cloud-ready logistics and shipment management platform built with the ABP Framework and .NET Aspire.
What is Cargonerds?¶
Cargonerds is a modular, layered application built on top of the ABP Framework, following Domain-Driven Design (DDD) principles and best practices. It provides a complete solution for managing shipments, organizations, documents, and logistics operations with a focus on scalability, maintainability, and modern cloud deployment.
Key Features¶
- Modular Architecture: Built with ABP's modular system for clean separation of concerns
- Domain-Driven Design: Implements DDD patterns including entities, aggregates, repositories, and domain services
- Multi-Tenancy: Full support for SaaS applications with data isolation
- Microservices Ready: Tiered architecture allows services to be deployed independently
- Cloud Native: Integrated with .NET Aspire for cloud-ready orchestration
- Modern UI: Blazor WebAssembly for rich, interactive user experiences
- Comprehensive API: RESTful and gRPC APIs for all business operations
- Authentication & Authorization: OpenIddict-based OAuth 2.0 implementation
- Localization: Multi-language support out of the box
Architecture Overview¶
The solution follows a layered architecture pattern:
┌─────────────────────────────────────────┐
│ Presentation Layer │
│ (Blazor, Web.Public, API Clients) │
├─────────────────────────────────────────┤
│ Application Layer │
│ (App Services, DTOs, Contracts) │
├─────────────────────────────────────────┤
│ Domain Layer │
│ (Entities, Aggregates, Domain Services)│
├─────────────────────────────────────────┤
│ Infrastructure Layer │
│ (EF Core, Caching, External Services) │
└─────────────────────────────────────────┘
Main Components¶
- Cargonerds Module: Core application with books management and foundational services
- Hub Module: Comprehensive shipment and logistics management system
- AuthServer: OpenIddict authentication and authorization server
- API Host: RESTful and gRPC API endpoints
- Blazor App: Client-side WebAssembly application
- Public Web: Public-facing ASP.NET Core MVC site
Technology Stack¶
- .NET 9.0: Modern, high-performance framework
- ABP Framework: Application framework with built-in modules
- .NET Aspire: Cloud-ready orchestration and observability
- Entity Framework Core: Object-relational mapping
- OpenIddict: OAuth 2.0 authorization server
- Blazor WebAssembly: Client-side web UI
- SQL Server: Primary database
- Redis: Distributed caching
- RabbitMQ: Message broker
Quick Links¶
For Developers¶
- Quick Start Guide - Get up and running in minutes
- ABP Patterns - Understanding ABP framework patterns
- Development Workflow - Day-to-day development practices
- Testing Guide - Writing and running tests
For Architects¶
- Architecture Overview - High-level system design
- Layered Architecture - Understanding the layers
- Module Structure - How modules are organized
- Domain Design - DDD implementation details
For DevOps¶
- Running Locally - Local development setup
- Deployment Guide - Deployment strategies
- Azure Container Apps - Cloud deployment
- Configuration - Environment configuration
Documentation Structure¶
This documentation is organized into the following sections:
- Getting Started: Installation, prerequisites, and quick start guides
- Architecture: System design, patterns, and architectural decisions
- Modules: Detailed documentation for each module in the solution
- Domain Layer: Domain-driven design implementation
- Application Layer: Application services and business logic
- Services Reference: API documentation for all services
- Infrastructure: Database, caching, and infrastructure concerns
- API: REST and gRPC API documentation
- UI: User interface components and customization
- Development: Development workflows, testing, and debugging
- Deployment: Deployment guides for various environments
- Reference: Configuration, permissions, and CLI reference
Getting Help¶
- GitHub Issues: Report bugs or request features
- ABP Documentation: Official ABP documentation
- Community: ABP Community
Contributing¶
We welcome contributions! Please see our contributing guidelines in the repository.
License¶
This project is proprietary. All rights reserved.