Skip to content

Automate your entire transportation logistics operations with the transportation management system (TMS).

License

Notifications You must be signed in to change notification settings

suxrobGM/logistics-app

Repository files navigation

Logistics TMS: Automated Transport Management Solution

Build Status Tests Deployment OfficeApp Build DriverApp Build

CC BY-NC 4.0

Logistics TMS is an ultimate solution for all transport management needs. With a focus on automation, this Transportation Management System (TMS) is designed to streamline logistics, offering an efficient, optimized way to manage inbound and outbound transport operations.

Overview

Logistics TMS primarily targets logistics and trucking companies seeking to streamline their operations. It offers a comprehensive suite that encompasses an administrator web application, a management web application, and a driver mobile application. The backend is powered by a robust REST API and an Identity Server application.

Operating on a multi-tenant architecture, Logistics TMS features a primary database for storing user credentials and tenant data, including company name, subdomain name, database connection string, and billing periods. Each tenant or company has a dedicated database.

Development status

I work on this project in my free time so it is not actively maintained. However, I am open to collaboration and contributions. If you are interested in contributing to this project, please feel free to reach out to me at suxrobgm@gmail.com or Telegram.

Getting Started

Follow these steps to get the project up and running:

  1. Install SDKs

    • Download and install the .NET 8 SDK.
    • Install Bun runtime to run Angular project. Follow these instructions.
  2. Clone this repository:

    $ git clone https://github.com/suxrobGM/logistics-app.git
    $ cd logistics-app
    
  3. Install Angular app dependencies:

    cd src\Client\Logistics.OfficeApp
    bun install
    
  4. Update database connection strings: Modify local or remote MS SQL database connection strings in the Web API appsettings.json and the IdentityServer appsettings.json under the ConnectionStrings:MainDatabase section. Update tenant databases configuration in the Web API appsettings.json under the TenantsConfig section.

  5. Seed databases: To initialize and populate the databases, run the seed-databases.cmd script provided in the repository.

  6. Run applications: Launch all the applications in the project using the respective .cmd scripts in the repository.

  7. Access the applications: Use the following local URLs to access the apps:

Architectural Overview

Technical Stack

  • .NET 8
  • ASP.NET Core
  • Entity Framework Core
  • Deunde Identity Server
  • FluentValidator
  • MediatR
  • MS SQL
  • xUnit
  • Moq
  • Angular 18
  • PrimeNG
  • Blazor
  • MAUI
  • Firebase
  • SignalR
  • Docker
  • CI/CD
  • Bun

Design Patterns

  • Multi-Tenant Architecture
  • Domain-Driven Design
  • CQRS
  • Domain Events
  • Event Sourcing
  • Unit Of Work
  • Repository & Generic Repository
  • Inversion of Control / Dependency injection
  • Specification Pattern

Copyright

This work is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License.

CC BY-NC 4.0

For commercial use, please contact me at suxrobgm@gmail.com or Telegram.

Architecture Diagram

For a deeper understanding of the project structure, refer to the architecture diagram: Project architecture diagram

Office Web App Preview

Here is a sneak peek into the Office Application:

Office App Office App Office App Office App Office App Office App Office App Office App Office App

Driver Mobile App Preview

Driver App Driver App Driver App Driver App Driver App Driver App Driver App