/logistics-app

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

Primary LanguageC#Creative Commons Attribution 4.0 InternationalCC-BY-4.0

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

The project is actively under development. I have completed 85% of the work required for the first version of the MVP.

Getting Started

Follow these steps to get the project up and running:

  1. Install SDKs

    • Download and install the .NET 8 SDK.
    • Download and install the Node.js runtime.
  2. Clone this repository:

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

    cd src\Client\Logistics.OfficeApp
    npm 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.bat script provided in the repository.

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

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

Demo application

The sample deployed application is available at http://office.jfleets.com

User email: Test1@gmail.com

User password: Test12345#

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

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 @suxrobgm

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