diff --git a/.gitmodules b/.gitmodules index 6d689c76..8d433300 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,14 +1,14 @@ [submodule "backend"] - path = backend + path = apps/backend url = git@gitea-server:rckrdmrd/template-saas-backend-v2.git branch = main [submodule "database"] - path = database + path = apps/database url = git@gitea-server:rckrdmrd/template-saas-database-v2.git branch = main [submodule "frontend"] - path = frontend + path = apps/frontend-web url = git@gitea-server:rckrdmrd/template-saas-frontend-v2.git branch = main diff --git a/CLAUDE.md b/CLAUDE.md index f820a851..f9316403 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -4,8 +4,9 @@ **Sistema:** SIMCO v4.0.0 + NEXUS v4.0 **Proyecto:** template-saas **Tipo:** PROVIDER (L1A) -**Versión:** 1.2.0 -**Actualizado:** 2026-02-03 +**Versión:** 2.0.0 +**Actualizado:** 2026-02-06 +**ADR Vinculante:** ADR-0011 (Estructura Canonica apps/) **Homologación:** TASK-2026-02-03-HOMOLOGACION-TEMPLATE-SAAS --- @@ -46,17 +47,27 @@ Host: localhost --- -## DIRECTORIOS CLAVE +## ESTRUCTURA CANONICA (ADR-0011) ``` -backend/ → Backend NestJS (19 módulos) -frontend/ → Frontend React (3 portales) -database/ddl/ → DDL PostgreSQL (24 tablas) -docs/ → Documentación técnica -orchestration/ → Sistema SIMCO local -.claude/ → Instrucciones Claude Code +template-saas/ +├── apps/ # Contenedor canonico +│ ├── backend/ # NestJS API (submodule) +│ │ └── src/modules/ # 23 modulos +│ ├── frontend-web/ # React SPA (submodule) +│ │ └── src/ # 3 portales +│ ├── database/ # DDL PostgreSQL (submodule) +│ │ └── ddl/ # 24 tablas +│ └── _MAP.md # Indice de apps +├── orchestration/ # Sistema SIMCO local +├── docs/ # Documentacion tecnica +├── .claude/ # Instrucciones Claude Code +├── docker-compose.yml # Orquestacion Docker +└── .gitmodules # 3 submodules en apps/ ``` +**IMPORTANTE:** Todo desarrollo nuevo DEBE ir dentro de `apps/`. No crear archivos en raiz. + --- ## HERENCIA @@ -115,12 +126,13 @@ Además de las validaciones del workspace: ## ALIASES LOCALES -- `@BACKEND` → backend/src/modules/ -- `@FRONTEND` → frontend/src/ -- `@DDL` → database/ddl/ +- `@BACKEND` → apps/backend/src/modules/ +- `@FRONTEND` → apps/frontend-web/src/ +- `@DDL` → apps/database/ddl/ - `@DOCS` → docs/ - `@INVENTARIOS` → orchestration/inventarios/ - `@CONSTANTS` → .claude/constants/CONSTANTS-PROJECT.yml +- `@APPS-MAP` → apps/_MAP.md --- @@ -170,4 +182,5 @@ erp-construccion, erp-clinicas, erp-retail, etc. (CONSUMERS) --- -*Template SaaS v1.2.0 - Sistema SIMCO v4.0.0* +*Template SaaS v2.0.0 - Sistema SIMCO v4.0.0* +*Estructura migrada a apps/ canonico: 2026-02-06* diff --git a/apps/_MAP.md b/apps/_MAP.md new file mode 100644 index 00000000..8505d7d7 --- /dev/null +++ b/apps/_MAP.md @@ -0,0 +1,39 @@ +# _MAP: Aplicaciones de template-saas + +**Carpeta:** apps/ +**Proposito:** Contenedor canonico de todas las aplicaciones del proyecto (ADR-0011) +**Estado:** Activo +**Ultima actualizacion:** 2026-02-06 + +--- + +## Aplicaciones + +| App | Ruta | Tipo | Stack | Estado | Git | +|-----|------|------|-------|--------|-----| +| **Backend API** | `apps/backend/` | API REST | NestJS 11 + TypeORM 0.3 + TypeScript 5 | Activo | Submodule (template-saas-backend-v2) | +| **Frontend Web** | `apps/frontend-web/` | SPA | React 19 + Vite 6 + TailwindCSS 3 + Zustand | Activo | Submodule (template-saas-frontend-v2) | +| **Database** | `apps/database/` | DDL | PostgreSQL 15+ | Activo | Submodule (template-saas-database-v2) | + +--- + +## Metricas + +| Componente | Metrica | Valor | +|-----------|---------|-------| +| Backend | Modulos | 23 | +| Database | DDL files | 6 | +| Database | Tablas | 24 | + +--- + +## Docker + +Los servicios se levantan con `docker-compose.yml`: +- Backend: `./apps/backend` (port 3001) +- Frontend: `./apps/frontend-web` (port 3000) +- Database DDL: `./apps/database/ddl` + +--- + +*Generado por TASK-2026-02-06-ESTANDARIZACION-ESTRUCTURA-PROYECTOS (Sprint 2)* diff --git a/backend b/apps/backend similarity index 100% rename from backend rename to apps/backend diff --git a/database b/apps/database similarity index 100% rename from database rename to apps/database diff --git a/frontend b/apps/frontend-web similarity index 100% rename from frontend rename to apps/frontend-web diff --git a/docker-compose.yml b/docker-compose.yml index 6b638d28..b9824531 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -85,7 +85,7 @@ services: # Frontend App (production build served by nginx) frontend: build: - context: ./apps/frontend + context: ./apps/frontend-web dockerfile: Dockerfile args: VITE_API_URL: ${VITE_API_URL:-http://localhost:3001} diff --git a/orchestration/inventarios/MASTER_INVENTORY.yml b/orchestration/inventarios/MASTER_INVENTORY.yml index cf63ba07..2ace89f3 100644 --- a/orchestration/inventarios/MASTER_INVENTORY.yml +++ b/orchestration/inventarios/MASTER_INVENTORY.yml @@ -453,7 +453,7 @@ modulos_infraestructura: descripcion: "Portal de super administracion" estado: "completado" backend: "apps/backend/src/modules/superadmin/" - frontend: "apps/frontend/src/pages/superadmin/" + frontend: "apps/frontend-web/src/pages/superadmin/" documentacion: reestructuracion: "2026-01-10" @@ -504,20 +504,20 @@ historial_cambios: descripcion: "SAAS-019 Portfolio implementado. 4 tablas DDL (categories, products, variants, prices), 4 entities, 2 services, 2 controllers, 2 API services, 21 React Query hooks." agente: "Claude Opus 4.5 (SAAS-019 Portfolio)" archivos_verificados: - - "backend/src/app.module.ts" - - "backend/src/modules/portfolio/" - - "frontend/src/services/portfolio/" - - "frontend/src/hooks/usePortfolio.ts" - - "database/ddl/schemas/portfolio/" + - "apps/backend/src/app.module.ts" + - "apps/backend/src/modules/portfolio/" + - "apps/frontend-web/src/services/portfolio/" + - "apps/frontend-web/src/hooks/usePortfolio.ts" + - "apps/database/ddl/schemas/portfolio/" - fecha: "2026-01-24" tipo: "correccion_critica" descripcion: "CORRECCION: Sales (SAAS-018) y Commissions (SAAS-020) SI estan implementados. Codigo verificado en app.module.ts lineas 31-32, 93-94. Frontend compila exitosamente. Sprints 6 y 7 marcados completados." agente: "Claude Opus 4.5 (Validacion de Coherencia)" archivos_verificados: - - "backend/src/app.module.ts" - - "backend/src/modules/sales/" - - "backend/src/modules/commissions/" - - "frontend/src/pages/dashboard/sales/" - - "frontend/src/pages/dashboard/commissions/" - - "database/ddl/schemas/sales/" - - "database/ddl/schemas/commissions/" + - "apps/backend/src/app.module.ts" + - "apps/backend/src/modules/sales/" + - "apps/backend/src/modules/commissions/" + - "apps/frontend-web/src/pages/dashboard/sales/" + - "apps/frontend-web/src/pages/dashboard/commissions/" + - "apps/database/ddl/schemas/sales/" + - "apps/database/ddl/schemas/commissions/"