Skip to content

Commit 5fa6d34

Browse files
committed
docs(erp): recover and correct Grupo Tesela ERP architecture (v2)
Recover docs/erp-grupo-tesela/ARQUITECTURA.md (lost from main in the upstream reset; restored from commit e8cd954) and correct it per the design review: - Automations (Make/Zapier) now go through the API/Edge Functions instead of writing directly to Postgres, preserving the single-source-of-truth. - Re-prioritize phases for the construction/architecture/real-estate- development sector: Works/Projects and property sales become the core. - Add Spanish tax handling (reverse-charge VAT, SII/Verifactu, certificaciones), a build-vs-buy decision for the accounting core (Holded/Odoo/Presto), an initial data model, security/RGPD/backups, and per-phase KPIs. - Trim overlap (Make+Zapier, Airtable+Notion+Supabase), move Supermetrics to a later phase, replace generic inventory with per-work procurement, and flag that Coupler.io has no MCP connector here. https://claude.ai/code/session_01W9xh1kJCqtHqBgBAMQikon
1 parent 6298c12 commit 5fa6d34

1 file changed

Lines changed: 274 additions & 0 deletions

File tree

Lines changed: 274 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,274 @@
1+
# Arquitectura del ERP — Grupo Tesela
2+
3+
> Documento vivo. **v2 — corregida** a partir del diseño inicial.
4+
> Sector: **construcción · arquitectura · promoción inmobiliaria** (en ese orden).
5+
> Stack basado en los conectores (MCP) disponibles en el entorno de trabajo.
6+
7+
---
8+
9+
## 0. Qué ha cambiado respecto a la v1 (registro de correcciones)
10+
11+
Esta versión corrige los problemas detectados en la revisión del diseño inicial:
12+
13+
- **Coherencia arquitectónica:** las automatizaciones (Make/Zapier) **ya no
14+
escriben directamente a Postgres**; pasan por la API / Edge Functions de
15+
Supabase, para no saltarse las reglas de negocio ni romper la "fuente única de
16+
verdad". (En la v1 el diagrama conectaba Make/Zapier directos a la BD.)
17+
- **Priorización por sector:** **Obras/Proyectos y Promoción inmobiliaria pasan
18+
a ser el núcleo (Fase 1-2)**, no módulos tardíos. En construcción/promoción el
19+
negocio es el control de costes por obra y la comercialización de unidades.
20+
- **Fiscalidad española añadida:** IVA con **inversión del sujeto pasivo**
21+
(ejecuciones de obra), retenciones, **SII / Verifactu**, certificaciones.
22+
- **Build-vs-buy explícito** para el núcleo Finanzas/Contabilidad (Holded/Odoo o
23+
software de construcción tipo Presto vs desarrollo a medida).
24+
- **Recortes:** se marca el solapamiento Make+Zapier y Airtable+Notion+Supabase;
25+
Supermetrics se mueve a fase tardía; el "Inventario/Almacén" genérico se
26+
sustituye por "Aprovisionamiento y subcontratas por obra".
27+
- **Secciones nuevas:** modelo de datos inicial, seguridad/RGPD/backups, KPIs.
28+
- **Aviso de disponibilidad:** **Coupler.io no tiene conector MCP** en este
29+
entorno hoy; su rol de ETL queda como "a confirmar / alternativa".
30+
31+
> ⚠️ **Riesgo de ubicación:** este documento vive en un *fork* de
32+
> `github-mcp-server`. Una sincronización con el upstream lo borra (ya pasó). Lo
33+
> antes posible debería moverse a un **repositorio propio del ERP**.
34+
35+
---
36+
37+
## 1. Principios de diseño
38+
39+
1. **Fuente única de verdad:** todos los datos del negocio viven en una base de
40+
datos central (Supabase/Postgres). El resto de herramientas leen/escriben
41+
**a través de la API**, nunca directamente a las tablas.
42+
2. **Modular y por fases:** cada área es un módulo activable de forma
43+
independiente. No se construye todo de golpe.
44+
3. **Automatización orquestada:** las tareas repetitivas se automatizan **contra
45+
la API**, no contra la BD ni a mano.
46+
4. **API-first:** todo expone API para conectarse con cualquier herramienta.
47+
5. **Coste escalado:** plan gratuito primero; premium cuando el módulo lo
48+
justifique.
49+
6. **Cumplimiento desde el día 1:** RGPD, copias de seguridad y control de
50+
accesos no son una fase posterior.
51+
52+
---
53+
54+
## 2. Stack elegido
55+
56+
| Capa | Herramienta | Notas |
57+
|------|-------------|-------|
58+
| **Núcleo de datos / Backend** | **Supabase** | Postgres + Auth + API + Storage + Edge Functions. El corazón. |
59+
| **Núcleo fiscal/contable** *(decisión pendiente)* | **Holded / Odoo** *(o Presto para obra)* | Ver §6 build-vs-buy. Evita reinventar contabilidad y fiscalidad ES. |
60+
| **Código y CI/CD** | **GitHub** | Repos, ramas, PRs, despliegues. |
61+
| **Automatización principal** | **Make.com** | Orquestador de flujos contra la API. |
62+
| **Automatización secundaria** | **Zapier** | Solo "larga cola" que Make no cubra (evitar solape con Make). |
63+
| **Diseño de interfaz** | **Figma** | Frontend del ERP y design-to-code. |
64+
| **CRM / Ventas** | **Attio** | Pipeline comercial. Para venta de inmuebles, evaluar CRM inmobiliario específico. |
65+
| **Vistas operativas ligeras** | **Airtable** | Solo donde Supabase+frontend aún no llegue (evitar duplicar la BD). |
66+
| **Documentación / Wiki** | **Notion** | Manual y procesos internos. |
67+
| **Ofimática y correo** | **Google Workspace** | Gmail + Calendar + Drive. |
68+
| **Reuniones** | **Zoom** | Grabaciones y resúmenes. |
69+
| **Gestión dev** | **Linear** | Roadmap del propio ERP. |
70+
| **Marketing (tardío)** | **Supermetrics** | Solo con inversión publicitaria seria (Fase 3). |
71+
| **ETL / BI** *(a confirmar)* | **Coupler.io** | Sin conector MCP aquí hoy; alternativa: Edge Functions + Supabase. |
72+
73+
---
74+
75+
## 3. Arquitectura por capas (corregida)
76+
77+
```mermaid
78+
flowchart TB
79+
subgraph PRES["🖥️ Presentación"]
80+
UI["Frontend ERP (Figma→código)"]
81+
AIR["Airtable (vistas operativas)"]
82+
NOT["Notion (wiki)"]
83+
end
84+
85+
subgraph APP["⚙️ Aplicación / Lógica"]
86+
API["API REST/GraphQL (auto)"]
87+
EF["Edge Functions (reglas de negocio)"]
88+
end
89+
90+
subgraph DATA["🗄️ Datos — FUENTE ÚNICA DE VERDAD"]
91+
PG[("Supabase PostgreSQL")]
92+
ST["Storage (planos, facturas, licencias)"]
93+
AUTH["Auth (usuarios y roles)"]
94+
end
95+
96+
subgraph AUTO["🔄 Automatización"]
97+
MAKE["Make.com"]
98+
ZAP["Zapier (larga cola)"]
99+
end
100+
101+
subgraph FIN["🧾 Núcleo fiscal/contable"]
102+
HOLDED["Holded / Odoo / Presto"]
103+
end
104+
105+
subgraph COLAB["👥 Colaboración"]
106+
GW["Google Workspace"]
107+
ZOOM["Zoom"]
108+
ATT["Attio (CRM)"]
109+
end
110+
111+
subgraph DEV["🛠️ Desarrollo"]
112+
GH["GitHub"]
113+
LIN["Linear"]
114+
end
115+
116+
UI --> API
117+
AIR --> API
118+
NOT --> API
119+
API --> EF
120+
EF --> PG
121+
EF --> ST
122+
EF --> AUTH
123+
%% Las automatizaciones pasan por la API, no por la BD directamente
124+
MAKE --> API
125+
ZAP --> API
126+
HOLDED <--> API
127+
ATT <--> MAKE
128+
COLAB <--> MAKE
129+
GH --> EF
130+
LIN -.gestiona.-> GH
131+
```
132+
133+
---
134+
135+
## 4. Módulos del ERP (reordenados por sector)
136+
137+
```mermaid
138+
flowchart LR
139+
CORE[("Núcleo Supabase\nDatos + Auth")]
140+
CORE --- M1["🏗️ Obras / Proyectos\n(núcleo)"]
141+
CORE --- M2["🏠 Promoción y\nVentas inmobiliarias"]
142+
CORE --- M3["💰 Finanzas analítica\npor obra + fiscal ES"]
143+
CORE --- M4["🧱 Compras y\nsubcontratas"]
144+
CORE --- M5["📁 Documentación\n(planos, licencias)"]
145+
CORE --- M6["🤝 CRM (Attio)"]
146+
CORE --- M7["📣 Marketing\n(tardío)"]
147+
CORE --- M8["📈 BI / Reporting"]
148+
CORE --- M9["👤 RRHH y Nóminas"]
149+
```
150+
151+
| # | Módulo | Conectores | Fase |
152+
|---|--------|-----------|------|
153+
| 1 | **Obras / Proyectos** (presupuesto vs real, certificaciones, planificación) | Supabase + Linear/Airtable + Make | **Fase 1** |
154+
| 2 | **Promoción y ventas inmobiliarias** (promociones, unidades, reservas/arras, estado comercial) | Supabase + Attio/CRM inmobiliario + Make | **Fase 2** |
155+
| 3 | **Finanzas analítica por obra + fiscalidad ES** | Holded/Odoo + Supabase + Make | **Fase 1** |
156+
| 4 | **Compras y subcontratas** (aprovisionamiento por obra) | Supabase + Gmail + Make | Fase 2 |
157+
| 5 | **Documentación de proyecto** (planos, licencias, CAD/BIM) | Drive + Notion + Supabase Storage | **Fase 1** |
158+
| 6 | CRM comercial | Attio + Supabase | Fase 2 |
159+
| 7 | Marketing | Supermetrics | Fase 3 |
160+
| 8 | BI y reporting | Supabase + (Coupler.io a confirmar) | Fase 3 |
161+
| 9 | RRHH y nóminas | Supabase + Google Workspace + gestoría | Fase 3 |
162+
163+
---
164+
165+
## 5. Hoja de ruta por fases (corregida)
166+
167+
- **Fase 0 — Cimientos:** Supabase (BD + Auth + RLS) + GitHub + estructura de
168+
datos central + diseño en Figma + **backups y política RGPD**.
169+
- **Fase 1 — Núcleo de obra:** Obras/Proyectos (costes por obra, certificaciones)
170+
+ Finanzas analítica + Documentación de proyecto + automatizaciones core.
171+
- **Fase 2 — Comercial y compras:** Promoción/ventas inmobiliarias + CRM +
172+
Compras/subcontratas.
173+
- **Fase 3 — Avanzado:** Marketing (Supermetrics), BI/reporting, RRHH/nóminas.
174+
175+
---
176+
177+
## 6. Decisión clave: build-vs-buy del núcleo fiscal/contable
178+
179+
En construcción/promoción la contabilidad es **analítica por obra** y la
180+
fiscalidad ES es exigente (IVA con **inversión del sujeto pasivo** en ejecuciones
181+
de obra, retenciones, **SII/Verifactu**, certificaciones). Reimplementar esto a
182+
medida sobre Supabase+Make es caro y arriesgado.
183+
184+
| Opción | Pros | Contras |
185+
|--------|------|---------|
186+
| **Comprar (Holded / Odoo)** | Contabilidad y fiscalidad ES resueltas; rápido | Menos a medida; integrar vía API con el núcleo Supabase |
187+
| **Software de obra (Presto/Arquímedes)** | Presupuestos y certificaciones potentes | No es ERP completo; hay que integrarlo |
188+
| **A medida (Supabase)** | Control total y datos unificados | Mucho desarrollo; riesgo fiscal/legal |
189+
190+
**Recomendación:** comprar el núcleo fiscal/contable (Holded u Odoo) e integrarlo
191+
por API con Supabase como fuente única; construir a medida solo Obras/Promoción.
192+
193+
---
194+
195+
## 7. Modelo de datos inicial (esqueleto, a detallar)
196+
197+
Entidades mínimas para arrancar Fase 0-1 (nombres orientativos):
198+
199+
- `obras` (proyecto, cliente, presupuesto, fechas, estado)
200+
- `partidas` / `capitulos` (presupuesto por obra)
201+
- `certificaciones` (avance/facturación por obra)
202+
- `proveedores` y `subcontratas`
203+
- `pedidos_compra` (ligados a obra)
204+
- `promociones` y `unidades` (inmuebles: estado comercial, precio, reserva)
205+
- `clientes` / `contactos`
206+
- `documentos` (planos, licencias; referencia a Storage)
207+
- `usuarios` y `roles` (Auth + RLS)
208+
209+
> Cada tabla con **Row Level Security** y acceso solo vía API/Edge Functions.
210+
211+
---
212+
213+
## 8. Seguridad y cumplimiento (nuevo)
214+
215+
- **RGPD:** base legal del tratamiento, registro de actividades, derechos ARCO,
216+
encargados de tratamiento (proveedores cloud) y DPA firmados.
217+
- **Backups:** copias automáticas de Supabase + retención definida + prueba de
218+
restauración periódica.
219+
- **Accesos:** roles por módulo, principio de mínimo privilegio, RLS en todas las
220+
tablas, 2FA en cuentas críticas.
221+
- **Entornos:** separación dev / producción.
222+
223+
---
224+
225+
## 9. KPIs por fase (nuevo)
226+
227+
- **Fase 1:** % obras con presupuesto vs real al día; nº certificaciones
228+
gestionadas; tiempo de cierre mensual.
229+
- **Fase 2:** unidades comercializadas; conversión de leads; plazo medio de
230+
reserva→venta.
231+
- **Fase 3:** coste de adquisición de cliente; cuadros de mando en uso.
232+
233+
---
234+
235+
## 10. Plan de cuentas premium (qué pagar y cuándo)
236+
237+
> Precios **aproximados** y orientativos por mes; confirmar en cada web.
238+
239+
| Prioridad | Servicio | Plan | Coste aprox. | ¿Premium? |
240+
|-----------|----------|------|--------------|-----------|
241+
| 🔴 1 (ya) | **Supabase** | Pro | ~25 $/mes | SÍ. Es el núcleo. |
242+
| 🔴 1 (ya) | **Make.com** | Core/Pro | ~9–16 $/mes | SÍ. Motor de automatización. |
243+
| 🔴 1 (ya) | **Google Workspace** | Business Starter | ~6–7 €/usuario | SÍ. Correo + Drive. |
244+
| 🔴 1 (ya) | **Núcleo fiscal (Holded/Odoo)** | según módulos | ~consultar | SÍ, si se opta por comprar (§6). |
245+
| 🟠 2 | **Attio** | Plus/Pro | ~29 $/usuario | Al arrancar lo comercial. |
246+
| 🟠 2 | **Airtable** | Team | ~20 $/usuario | Solo si hay vistas operativas. |
247+
| 🟡 3 | **Supermetrics** | según fuentes | ~100–200+ €/mes | Solo con inversión publicitaria. |
248+
| 🟡 3 | **Coupler.io** | según volumen | ~49–99 $/mes | Solo si se confirma su uso (sin MCP aquí). |
249+
| 🟡 3 | **Notion / Figma** | Plus / Pro | ~10–15 $/usuario | Opcional. |
250+
| 🟢 4 | **GitHub / Linear** | Free→Team | 0 → ~4–8 $ | Gratis basta al inicio. |
251+
| 🟢 4 | **Zapier / Zoom** | Starter / Pro | ~14–30 $ | Solo si hacen falta. |
252+
253+
### Inversión mínima para arrancar (Fase 0-1)
254+
**Supabase Pro + Make Core + Google Workspace** (+ núcleo fiscal si se compra) →
255+
del orden de **~40–50 €/mes** sin el ERP fiscal; con Holded/Odoo, sumar su plan.
256+
257+
---
258+
259+
## 11. Cómo se gestiona
260+
261+
- Se conecta cada herramienta **por módulo y por fase**, no todas el día 1.
262+
- Cada servicio que requiera login se pide **solo al activarlo**.
263+
- Código y configuración versionados en **GitHub** (idealmente, repo propio del
264+
ERP — ver aviso de §0).
265+
266+
---
267+
268+
## 12. Pendiente de confirmar
269+
270+
-**Sector:** construcción · arquitectura · promoción inmobiliaria (resuelto).
271+
- **Decisión build-vs-buy** del núcleo fiscal (§6).
272+
- **Nº de usuarios** previstos (para dimensionar planes por usuario).
273+
- **Software actual** del que migrar datos (contabilidad, presupuestos de obra).
274+
- **Repo propio** del ERP (sacarlo del fork de github-mcp-server).

0 commit comments

Comments
 (0)