phronCare/README.md

141 lines
2.8 KiB
Markdown
Raw Normal View History

2026-03-26 22:01:06 +00:00
# PhronCare
2025-01-24 19:17:26 -03:00
2026-03-26 22:01:06 +00:00
## 📌 Descripción
PhronCare es una plataforma back-office desarrollada en .NET 8 para la gestión de operaciones en ortopedia y logística médica.
2025-01-24 19:17:26 -03:00
2026-03-26 22:01:06 +00:00
Incluye módulos principales como:
- Presupuestos (Quotes)
- Expediciones (Expeditions)
- Stock médico con trazabilidad GS1
- Generación de documentos (PDF / Excel)
2025-01-24 19:17:26 -03:00
2026-03-26 22:01:06 +00:00
---
2025-01-24 19:17:26 -03:00
2026-03-26 22:01:06 +00:00
## 🧱 Arquitectura
2025-01-24 19:17:26 -03:00
2026-03-26 22:01:06 +00:00
El sistema sigue una arquitectura estricta por capas:
2025-01-24 19:17:26 -03:00
2026-03-26 22:01:06 +00:00
Data → Domain → Core → API → UI (Blazor)
2025-01-24 19:17:26 -03:00
2026-03-26 22:01:06 +00:00
Reglas clave:
- NO modificar modelos EF generados por scaffold (Models/Data)
- La lógica de negocio vive en Domain/Core
- Las entidades de dominio (E*) replican estructura de DB
- Core orquesta casos de uso y transacciones
2025-01-24 19:17:26 -03:00
2026-03-26 22:01:06 +00:00
---
2025-01-24 19:17:26 -03:00
2026-03-26 22:01:06 +00:00
## 📦 Estructura del proyecto
2025-01-24 19:17:26 -03:00
2026-03-26 22:01:06 +00:00
/src
├── 1.1 Data → EF Models + Repositories
├── 1.2 Domain → Entidades E*, contratos, enums
├── 1.3 Core → Servicios de negocio
├── API → Controllers / Endpoints
├── UIBlazor → Frontend Blazor
├── Documents → Templates PDF / Excel
2025-01-24 19:17:26 -03:00
2026-03-26 22:01:06 +00:00
---
2025-01-24 19:17:26 -03:00
2026-03-26 22:01:06 +00:00
## ⚙️ Requisitos
2025-01-24 19:17:26 -03:00
2026-03-26 22:01:06 +00:00
- .NET 8 SDK
- SQL Server
- Docker (opcional)
- Node.js (solo si se utiliza en contenedor o build específico)
2025-01-24 19:17:26 -03:00
2026-03-26 22:01:06 +00:00
---
2025-01-24 19:17:26 -03:00
2026-03-26 22:01:06 +00:00
## 🚀 Ejecución local
2025-01-24 19:17:26 -03:00
2026-03-26 22:01:06 +00:00
1. Configurar `appsettings.json` con la conexión a base de datos
2. Verificar que la base de datos esté disponible
3. Ejecutar la API:
dotnet run (en proyecto API)
4. Ejecutar la UI Blazor:
dotnet run (en proyecto UIBlazor)
2025-01-24 19:17:26 -03:00
2026-03-26 22:01:06 +00:00
Opcional:
- Ejecutar con Docker Compose si está configurado
2025-01-24 19:17:26 -03:00
2026-03-26 22:01:06 +00:00
---
2025-01-24 19:17:26 -03:00
2026-03-26 22:01:06 +00:00
## 🔌 Endpoints principales
2025-01-24 19:17:26 -03:00
2026-03-26 22:01:06 +00:00
- /api/quotes
- /api/expeditions
- /api/stock
- /api/lsstockscan
2025-01-24 19:17:26 -03:00
2026-03-26 22:01:06 +00:00
Swagger disponible en:
- /swagger
2025-01-24 19:17:26 -03:00
2026-03-26 22:01:06 +00:00
---
2025-01-24 19:17:26 -03:00
2026-03-26 22:01:06 +00:00
## 📄 Generación de documentos
2025-01-24 19:17:26 -03:00
2026-03-26 22:01:06 +00:00
El sistema soporta generación de:
2025-01-24 19:17:26 -03:00
2026-03-26 22:01:06 +00:00
- PDF (Quotes, Expeditions, Delivery Notes)
- Excel (exportaciones)
2025-01-24 19:17:26 -03:00
2026-03-26 22:01:06 +00:00
Implementación basada en:
- DocumentTemplateService
- Templates Razor
- PuppeteerSharp
2025-01-24 19:17:26 -03:00
2026-03-26 22:01:06 +00:00
---
2025-01-24 19:17:26 -03:00
2026-03-26 22:01:06 +00:00
## 🧠 Convenciones del proyecto
2025-01-24 19:17:26 -03:00
2026-03-26 22:01:06 +00:00
- Tablas: PascalCase
- Campos: snake_case
- Foreign Keys: *_id
2025-01-24 19:17:26 -03:00
2026-03-26 22:01:06 +00:00
Prefijos por módulo:
- PhS_ → Sales
- PhLSM_ → Logística y Stock Médico
- PhOH_ → Operations Hub
2025-01-24 19:17:26 -03:00
2026-03-26 22:01:06 +00:00
Otros:
- Entidades Domain: prefijo E (EQuoteHeader, etc.)
- DTOs separados de entidades
- No usar AutoMapper (usar EntityMapper)
2025-01-24 19:17:26 -03:00
2026-03-26 22:01:06 +00:00
---
2025-01-24 19:17:26 -03:00
2026-03-26 22:01:06 +00:00
## 🔄 Flujo de desarrollo
2025-01-24 19:17:26 -03:00
2026-03-26 22:01:06 +00:00
- API-First
- Stories pequeñas y atómicas
- Branching:
- feature/{issue}-{desc}
- fix/{issue}-{desc}
Commits:
- Conventional Commits
- Uso de “Closes #issue” en PR
---
## 📋 Stories y documentación
Las stories del proyecto siguen una plantilla estándar ubicada en:
/docs/story-template.md
Incluye:
- Objetivo
- Contexto
- Alcance
- Criterios de aceptación
- Decisiones de diseño
---
## ⚠️ Notas importantes
- No romper contratos existentes de la API
- Mantener consistencia con módulos existentes
- Priorizar claridad sobre complejidad