erp-construccion/docs/97-adr/README.md

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