{"id":34696630,"url":"https://github.com/metacodex/parhelion-logistics","last_synced_at":"2026-03-15T07:03:19.099Z","repository":{"id":328251549,"uuid":"1112668672","full_name":"MetaCodeX/Parhelion-Logistics","owner":"MetaCodeX","description":"Plataforma Unificada de Logística B2B (WMS + TMS) nivel Enterprise. Desarrollada con .NET 8, Angular y React bajo Clean Architecture. Gestiona inventarios, flotas tipificadas, redes Hub \u0026 Spoke y documentación legal (Carta Porte) en un entorno Multi-tenant con Docker y PostgreSQL","archived":false,"fork":false,"pushed_at":"2025-12-29T07:42:06.000Z","size":7651,"stargazers_count":2,"open_issues_count":1,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-12-31T11:03:38.013Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://parhelion.macrostasis.lat/","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/MetaCodeX.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-12-09T00:08:11.000Z","updated_at":"2025-12-23T23:48:48.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/MetaCodeX/Parhelion-Logistics","commit_stats":null,"previous_names":["metacodex/parhelion-logistics"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/MetaCodeX/Parhelion-Logistics","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MetaCodeX%2FParhelion-Logistics","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MetaCodeX%2FParhelion-Logistics/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MetaCodeX%2FParhelion-Logistics/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MetaCodeX%2FParhelion-Logistics/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MetaCodeX","download_url":"https://codeload.github.com/MetaCodeX/Parhelion-Logistics/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MetaCodeX%2FParhelion-Logistics/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30537152,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-15T06:53:40.532Z","status":"ssl_error","status_checked_at":"2026-03-15T06:51:47.131Z","response_time":61,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":[],"created_at":"2025-12-24T22:35:41.512Z","updated_at":"2026-03-15T07:03:19.094Z","avatar_url":"https://github.com/MetaCodeX.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# Parhelion Logistics\n\n![Parhelion-Logistics Banner](./bannerlogo.png)\n\n![.NET 8](https://img.shields.io/badge/.NET%208-512BD4?style=for-the-badge\u0026logo=dotnet\u0026logoColor=white)\n![Angular](https://img.shields.io/badge/Angular-DD0031?style=for-the-badge\u0026logo=angular\u0026logoColor=white)\n![React](https://img.shields.io/badge/React-20232A?style=for-the-badge\u0026logo=react\u0026logoColor=61DAFB)\n![PostgreSQL](https://img.shields.io/badge/PostgreSQL-316192?style=for-the-badge\u0026logo=postgresql\u0026logoColor=white)\n![Docker](https://img.shields.io/badge/Docker-2496ED?style=for-the-badge\u0026logo=docker\u0026logoColor=white)\n![License](https://img.shields.io/badge/License-MIT-green?style=for-the-badge)\n\nPlataforma Unificada de Logística B2B (WMS + TMS) nivel Enterprise. Gestiona inventarios, flotas tipificadas, redes Hub \u0026 Spoke y documentación legal (Carta Porte) en un entorno Multi-tenant.\n\n\u003e **Estado del Proyecto:** Diseño Finalizado (v2.3) - Listo para Implementación\n\n---\n\n## Descripción\n\n**Parhelion-Logistics** es una plataforma SaaS multi-tenant de nivel Enterprise que unifica las capacidades de un WMS (Warehouse Management System) y un TMS (Transportation Management System). Diseñada para empresas de transporte B2B que requieren gestión integral: inventarios estáticos en almacén, flotas tipificadas (refrigerado, HAZMAT, blindado), redes de distribución Hub \u0026 Spoke, trazabilidad por checkpoints y documentación legal mexicana (Carta Porte, POD).\n\n**Objetivo Técnico:** Implementación de **Clean Architecture** y **Domain-Driven Design (DDD)** en un entorno de producción utilizando .NET 8, Angular, React, Docker y PostgreSQL.\n\n---\n\n## Características (MVP Final)\n\n### Core\n\n- [x] Documentación de requerimientos y esquema de base de datos\n- [ ] **Arquitectura Base:** Configuración de Clean Architecture y estructura de proyecto\n- [ ] **Multi-tenancy:** Aislamiento de datos por cliente/empresa\n\n### Gestión de Flotilla\n\n- [ ] **Camiones Tipificados:** DryBox, Refrigerado, HAZMAT, Plataforma, Blindado\n- [ ] **Choferes:** Asignación fija (default_truck) y dinámica (current_truck)\n- [ ] **Bitácora de Flotilla:** Historial de cambios de vehículo (FleetLog)\n\n### Red Logística (Hub \u0026 Spoke)\n\n- [ ] **Nodos de Red:** RegionalHub, CrossDock, Warehouse, Store, SupplierPlant\n- [ ] **Códigos Aeroportuarios:** Identificadores únicos por ubicación (MTY, GDL, MM)\n- [ ] **Enlaces de Red:** Conexiones FirstMile, LineHaul, LastMile\n- [ ] **Rutas Predefinidas:** RouteBlueprint con paradas y tiempos de tránsito\n\n### Envíos y Trazabilidad\n\n- [ ] **Manifiesto de Carga:** Items con peso volumétrico y valor declarado\n- [ ] **Restricciones de Compatibilidad:** Cadena de frío, HAZMAT, Alto valor\n- [ ] **Checkpoints:** Bitácora de eventos (Loaded, QrScanned, ArrivedHub, Delivered)\n- [ ] **QR Handshake:** Transferencia de custodia digital mediante escaneo\n\n### Documentación B2B\n\n- [ ] **Orden de Servicio:** Petición inicial del cliente\n- [ ] **Carta Porte (Waybill):** Documento legal SAT para transporte\n- [ ] **Manifiesto de Carga:** Checklist de estiba para almacenista\n- [ ] **Hoja de Ruta:** Itinerario con ventanas de entrega\n- [ ] **POD (Proof of Delivery):** Firma digital del receptor\n\n### Operación\n\n- [ ] **Seguridad:** Autenticación JWT con roles (Admin/Chofer/Almacenista)\n- [ ] **Dashboard:** KPIs operativos en tiempo real\n- [ ] **Modo Demo:** Acceso para reclutadores sin registro previo\n\n---\n\n## Stack Tecnológico\n\n| Capa                     | Tecnología                            | Usuario        |\n| :----------------------- | :------------------------------------ | :------------- |\n| **Backend**              | C# / .NET 8 Web API                   | -              |\n| **Base de Datos**        | PostgreSQL 16                         | -              |\n| **ORM**                  | Entity Framework Core (Code First)    | -              |\n| **Frontend (Admin)**     | Angular 18+ (Material Design)         | Admin          |\n| **Frontend (Operación)** | React (PWA)                           | Chofer/Almacén |\n| **Infraestructura**      | Docker Compose, Nginx (Reverse Proxy) | -              |\n| **Hosting**              | Digital Ocean Droplet (Linux)         | -              |\n\n---\n\n## Arquitectura\n\nEl proyecto sigue estrictamente **Clean Architecture** para desacoplar la lógica de negocio de la infraestructura:\n\n```mermaid\ngraph TD\n    User[Cliente / API Request] --\u003e API\n    subgraph \"Core\"\n        Domain[Domain Layer\u003cbr\u003eEntidades y Reglas de Negocio]\n        App[Application Layer\u003cbr\u003eInterfaces y Casos de Uso]\n    end\n    subgraph \"External\"\n        Infra[Infrastructure Layer\u003cbr\u003eEF Core, Servicios Externos]\n    end\n\n    API --\u003e App\n    App --\u003e Domain\n    API --\u003e Infra\n    Infra --\u003e App\n    Infra --\u003e Domain\n```\n\n### Topología de Red (Hub \u0026 Spoke)\n\n```mermaid\ngraph TD\n    subgraph \"Proveedores\"\n        A[EMP-A]\n        B[EMP-B]\n    end\n    subgraph \"Red de Hubs\"\n        MM((MM))\n        CC((CC))\n    end\n    subgraph \"Clientes\"\n        G[EMP-G]\n    end\n    B --\u003e|FirstMile| MM\n    MM ==\u003e|LineHaul| CC\n    CC --\u003e|LastMile| G\n```\n\n---\n\n## Estructura del Proyecto\n\n```\nsrc/\n├── Parhelion.Domain/         # Núcleo: Entidades y Excepciones (Sin dependencias)\n├── Parhelion.Application/    # Reglas: DTOs, Interfaces, Validaciones\n├── Parhelion.Infrastructure/ # Persistencia: DbContext, Repositorios, Migraciones\n└── Parhelion.API/            # Entrada: Controllers, JWT Config, DI\n```\n\n---\n\n## Documentación\n\n| Documento                                        | Descripción                                   |\n| :----------------------------------------------- | :-------------------------------------------- |\n| [Requerimientos (MVP)](./requirments.md)         | Especificación funcional completa del sistema |\n| [Esquema de Base de Datos](./database-schema.md) | Diagrama ER, entidades y reglas de negocio    |\n\n---\n\n## Entidades Principales\n\n| Entidad              | Descripción                                    |\n| :------------------- | :--------------------------------------------- |\n| `Tenant`             | Cliente/Empresa (Multi-tenancy)                |\n| `Location`           | Nodo de red con código único (Hub, Store, etc) |\n| `Truck`              | Vehículo tipificado con capacidad              |\n| `Driver`             | Chofer con camión fijo y actual                |\n| `Shipment`           | Envío con ruta asignada y documentos           |\n| `ShipmentItem`       | Partida del manifiesto con peso volumétrico    |\n| `ShipmentCheckpoint` | Evento de trazabilidad                         |\n| `RouteBlueprint`     | Ruta predefinida con paradas                   |\n| `NetworkLink`        | Conexión entre nodos (adyacencia)              |\n\n---\n\n## Despliegue\n\n| Servicio        | URL                   |\n| :-------------- | :-------------------- |\n| **API Backend** | `api.macrostasis.lat` |\n| **Frontend**    | `macrostasis.lat`     |\n\n---\n\n## Autor\n\n**MetaCodeX** | 2025\n\n_Proyecto desarrollado como portafolio profesional de Arquitectura de Software y Sistemas Logísticos B2B._\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmetacodex%2Fparhelion-logistics","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmetacodex%2Fparhelion-logistics","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmetacodex%2Fparhelion-logistics/lists"}