{"id":22313660,"url":"https://github.com/suxrobgm/logistics-app","last_synced_at":"2025-04-06T20:09:49.690Z","repository":{"id":37920599,"uuid":"432555862","full_name":"suxrobGM/logistics-app","owner":"suxrobGM","description":"Automate your entire transportation logistics operations with the transportation management system (TMS).","archived":false,"fork":false,"pushed_at":"2025-04-05T22:33:33.000Z","size":20249,"stargazers_count":81,"open_issues_count":0,"forks_count":34,"subscribers_count":10,"default_branch":"main","last_synced_at":"2025-04-05T23:23:48.648Z","etag":null,"topics":["angular","asp-net-core","blazor","bun","cqrs-pattern","ddd-architecture","docker","entity-framework","identityserver","kubernetes","mapbox","maui","multitenancy","rest-api"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"cc-by-4.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/suxrobGM.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-11-27T20:07:41.000Z","updated_at":"2025-04-05T22:33:37.000Z","dependencies_parsed_at":"2023-12-15T02:27:18.325Z","dependency_job_id":"cf75d7c2-3405-4a55-84ff-6c558cdee9c6","html_url":"https://github.com/suxrobGM/logistics-app","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/suxrobGM%2Flogistics-app","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/suxrobGM%2Flogistics-app/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/suxrobGM%2Flogistics-app/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/suxrobGM%2Flogistics-app/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/suxrobGM","download_url":"https://codeload.github.com/suxrobGM/logistics-app/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247543589,"owners_count":20955865,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["angular","asp-net-core","blazor","bun","cqrs-pattern","ddd-architecture","docker","entity-framework","identityserver","kubernetes","mapbox","maui","multitenancy","rest-api"],"created_at":"2024-12-03T22:07:50.110Z","updated_at":"2025-04-06T20:09:49.660Z","avatar_url":"https://github.com/suxrobGM.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Logistics TMS: Automated Transport Management Solution\n\n[![Build Status](https://github.com/suxrobgm/logistics-app/actions/workflows/build.yml/badge.svg)](https://github.com/suxrobgm/logistics-app/actions/workflows/build.yml)\n[![Deployment](https://github.com/suxrobgm/logistics-app/actions/workflows/deploy-ssh.yml/badge.svg)](https://github.com/suxrobgm/logistics-app/actions/workflows/deploy-ssh.yml)\n\n[![CC BY-NC 4.0][cc-by-nc-shield]][cc-by-nc]\n\n[cc-by-nc]: https://creativecommons.org/licenses/by-nc/4.0/\n[cc-by-nc-image]: https://licensebuttons.net/l/by-nc/4.0/88x31.png\n[cc-by-nc-shield]: https://img.shields.io/badge/License-CC%20BY--NC%204.0-lightgrey.svg\n\nLogistics 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.\n\n## Overview\n\nLogistics 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.\n\nOperating 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.\n\n## Demo\n\nA live demo of the application is available at [https://logistics-office.suxrobgm.net](https://logistics-office.suxrobgm.net). Use one of the following test credentials to log in to the application:\n\n- Owner user: email: `Test1@gmail.com`, password: `Test12345#`\n- Manager user: email: `Test2@gmail.com`, password: `Test12345#`\n- Dispatcher user: email: `Test3@gmail.com`, password: `Test12345#`\n\n## Development status\n\nI 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 **\u003csuxrobgm@gmail.com\u003e** or [Telegram](https://t.me/suxrobgm).\n\n## Getting Started\n\nFollow these steps to get the project up and running:\n\n1. Install SDKs\n\n   - [Download](https://dotnet.microsoft.com/en-us/download/dotnet/9.0) and install the .NET 9 SDK.\n   - Install Bun runtime to run Angular project. Follow [these](https://bun.sh/docs/installation) instructions.\n   - Download and install PostgreSQL database from [here](https://www.postgresql.org/download/).\n\n2. Clone this repository:\n\n   ```\n   git clone https://github.com/suxrobGM/logistics-app.git\n   cd logistics-app\n   ```\n\n3. Install Angular app dependencies:\n\n   ```\n   cd src\\Client\\Logistics.OfficeApp\n   bun install\n   ```\n\n4. Update database connection strings:\n   - Modify local or remote `PostgreSQL` database connection strings in the [Web API appsettings.json](./src/Presentation/Logistics.API/appsettings.json) and the [IdentityServer appsettings.json](./src/Presentation/Logistics.IdentityServer/appsettings.json) under the `ConnectionStrings:MasterDatabase` and `ConnectionStrings:DefaultTenantDatabase` section. Update tenant databases configuration in the [Web API appsettings.json](./src/Presentation/Logistics.API/appsettings.json) under the `TenantsConfig` section.\n\n5. Seed databases:\n   To initialize and populate the databases, run the `seed-databases.cmd` script provided in the repository.\n   Alternatively, you can run the [Logistics.DbMigrator](./src/Presentation/Logistics.DbMigrator) project to seed the databases.\n\n6. Run applications:\n   Launch all the applications in the project using the respective `.cmd` scripts in the repository.\n\n7. Access the applications:\n   Use the following local URLs to access the apps:\n\n   - Web API: \u003chttps://127.0.0.1:7000\u003e\n   - Identity Server: \u003chttps://127.0.0.1:7001\u003e\n   - Admin app: \u003chttps://127.0.0.1:7002\u003e\n   - Office app: \u003chttps://127.0.0.1:7003\u003e\n\n8. Login to the applications:\n   Use the following test credentials to log in to the applications:\n   - Admin web app:\n     - Super admin user: email: `admin@gmail.com`, password: `Test12345#`\n   - Office web app:\n     - Owner user: email: `Test1@gmail.com`, password: `Test12345#`\n     - Manager user: email: `Test2@gmail.com`, password: `Test12345#`\n     - Dispatcher user: email: `Test3@gmail.com`, password: `Test12345#`\n   - Driver mobile app:\n     - Driver user: email: `Test6@gmail.com`, password: `Test12345#`\n\n### Technical Stack\n\n- .NET 9\n- ASP.NET Core\n- Entity Framework Core\n- Deunde Identity Server\n- FluentValidator\n- MediatR\n- PostgreSQL\n- xUnit\n- Moq\n- Angular 19\n- PrimeNG\n- Blazor\n- MAUI\n- Firebase\n- SignalR\n- Docker\n- CI/CD\n- Bun\n\n### Design Patterns\n\n- Multi-Tenant Architecture\n- Domain-Driven Design\n- CQRS\n- Domain Events\n- Event Sourcing\n- Unit Of Work\n- Repository \u0026 Generic Repository\n- Inversion of Control / Dependency injection\n- Specification Pattern\n\n## Copyright\n\nThis work is licensed under a\n[Creative Commons Attribution-NonCommercial 4.0 International License][cc-by-nc].\n\n[![CC BY-NC 4.0][cc-by-nc-image]][cc-by-nc]\n\nFor commercial use, please contact me at **\u003csuxrobgm@gmail.com\u003e** or [Telegram](https://t.me/suxrobgm).\n\n## Office Web App Preview\n\nHere is a sneak peek into the Office Application:\n\n![Office App](./docs/office_app_1.jpg?raw=true)\n![Office App](./docs/office_app_2.jpg?raw=true)\n![Office App](./docs/office_app_3.jpg?raw=true)\n![Office App](./docs/office_app_4.jpg?raw=true)\n![Office App](./docs/office_app_5.jpg?raw=true)\n![Office App](./docs/office_app_6.jpg?raw=true)\n![Office App](./docs/office_app_7.jpg?raw=true)\n![Office App](./docs/office_app_8.jpg?raw=true)\n![Office App](./docs/office_app_9.jpg?raw=true)\n\n## Driver Mobile App Preview\n\n![Driver App](./docs/driver_app_1.jpg?raw=true)\n![Driver App](./docs/driver_app_2.jpg?raw=true)\n![Driver App](./docs/driver_app_3.jpg?raw=true)\n![Driver App](./docs/driver_app_4.jpg?raw=true)\n![Driver App](./docs/driver_app_5.jpg?raw=true)\n![Driver App](./docs/driver_app_6.jpg?raw=true)\n![Driver App](./docs/driver_app_7.jpg?raw=true)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsuxrobgm%2Flogistics-app","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsuxrobgm%2Flogistics-app","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsuxrobgm%2Flogistics-app/lists"}