112 lines
3.5 KiB
Markdown
112 lines
3.5 KiB
Markdown
# Architecture Decision Records (ADR)
|
|
|
|
Documentacion de decisiones arquitectonicas importantes para el ERP de Construccion.
|
|
|
|
**Proyecto:** ERP Construccion
|
|
**Alineado con:** ERP Generico
|
|
**Fecha de actualizacion:** 2025-11-24
|
|
|
|
---
|
|
|
|
## Indice de ADRs
|
|
|
|
| ADR | Titulo | Estado | Fecha |
|
|
|-----|--------|--------|-------|
|
|
| [ADR-001](./ADR-001-stack-tecnologico.md) | Stack Tecnologico | Aceptada | 2025-11-24 |
|
|
| [ADR-002](./ADR-002-arquitectura-modular.md) | Arquitectura Modular Monorepo | Aceptada | 2025-11-24 |
|
|
| [ADR-003](./ADR-003-multi-tenancy.md) | Multi-Tenancy Schema-Level | Aceptada | 2025-11-24 |
|
|
| [ADR-004](./ADR-004-sistema-constantes-ssot.md) | Sistema de Constantes SSOT | Aceptada | 2025-11-24 |
|
|
| [ADR-005](./ADR-005-path-aliases.md) | Path Aliases | Aceptada | 2025-11-24 |
|
|
| [ADR-006](./ADR-006-rbac-sistema-permisos.md) | RBAC - Sistema de Permisos | Aceptada | 2025-11-24 |
|
|
| [ADR-007](./ADR-007-database-design.md) | Database Design Multi-Schema | Aceptada | 2025-11-24 |
|
|
| [ADR-008](./ADR-008-api-design.md) | API Design RESTful | Aceptada | 2025-11-24 |
|
|
| [ADR-009](./ADR-009-frontend-architecture.md) | Frontend Architecture - FSD | Aceptada | 2025-11-24 |
|
|
| [ADR-010](./ADR-010-testing-strategy.md) | Testing Strategy | Aceptada | 2025-11-24 |
|
|
| [ADR-011](./ADR-011-database-clean-load-strategy.md) | Database Clean Load Strategy | Aceptada | 2025-11-24 |
|
|
| [ADR-012](./ADR-012-complete-traceability-policy.md) | Politica de Trazabilidad Completa | Aceptada | 2025-11-24 |
|
|
|
|
---
|
|
|
|
## Resumen de Decisiones
|
|
|
|
### Fundamentos (ADR-001 a ADR-003)
|
|
- **Stack:** Node.js 20+ LTS, React 18+, PostgreSQL 15+ con PostGIS
|
|
- **Arquitectura:** Monorepo con dependencia de ERP Generico
|
|
- **Multi-tenancy:** Schema-level isolation (cada constructora un schema)
|
|
|
|
### Patrones de Desarrollo (ADR-004 a ADR-006)
|
|
- **SSOT:** Backend como unica fuente de verdad para constantes
|
|
- **Path Aliases:** `@shared`, `@modules`, `@construccion`, `@erp-generic`
|
|
- **RBAC:** Roles de construccion con RLS en PostgreSQL
|
|
|
|
### Data & API (ADR-007 a ADR-008)
|
|
- **Database:** Multi-schema por dominio (auth, core, construction, infonavit, estimates)
|
|
- **API:** RESTful con versionado, documentacion OpenAPI
|
|
|
|
### Frontend & Testing (ADR-009 a ADR-010)
|
|
- **Frontend:** Feature-Sliced Design con features por rol
|
|
- **Testing:** Piramide (Unit 80%, Integration 70%, E2E 60%)
|
|
|
|
### Politicas (ADR-011 a ADR-012)
|
|
- **Database:** Carga limpia (sin migrations incrementales)
|
|
- **Trazabilidad:** End-to-end obligatoria (RF -> ET -> BD -> Codigo)
|
|
|
|
---
|
|
|
|
## Alineacion con ERP Generico
|
|
|
|
Estos ADRs estan alineados con los ADRs del ERP Generico para garantizar:
|
|
- Reutilizacion del 61% de componentes
|
|
- Compatibilidad de schemas de base de datos
|
|
- Consistencia arquitectonica
|
|
- Facilidad de mantenimiento cruzado
|
|
|
|
**Referencia:** `/projects/erp-generic/docs/adr/`
|
|
|
|
---
|
|
|
|
## Formato de ADR
|
|
|
|
```markdown
|
|
# ADR-XXX: Titulo de la Decision
|
|
|
|
**Estado:** Propuesta | Aceptada | Rechazada | Deprecada
|
|
**Fecha:** YYYY-MM-DD
|
|
**Responsable:** Architecture-Analyst
|
|
**Proyecto:** ERP Construccion
|
|
|
|
## Contexto
|
|
Que problema estamos resolviendo?
|
|
|
|
## Decision
|
|
Que decidimos hacer?
|
|
|
|
## Justificacion
|
|
- Referencia a Gamilit
|
|
- Referencia a Odoo
|
|
- Alineacion con ERP Generico
|
|
- Especifico para Construccion
|
|
|
|
## Consecuencias
|
|
### Positivas
|
|
- ...
|
|
### Negativas
|
|
- ...
|
|
|
|
## Implementacion
|
|
### Acciones Requeridas
|
|
- [ ] Tarea 1
|
|
- [ ] Tarea 2
|
|
|
|
### Criterios de Aceptacion
|
|
- ...
|
|
|
|
## Referencias
|
|
- [ERP Generico ADR-XXX](...)
|
|
```
|
|
|
|
---
|
|
|
|
**Ultima actualizacion:** 2025-11-24
|
|
**Responsable:** Architecture-Analyst
|