
Associated
ERP Ligero para Colectividades Españolas
Trabajo de Fin de Máster - Big School 2026
Requisitos, bounded contexts, casos de uso, decisiones arquitectónicas... Una especificación trazable de extremo a extremo.

El Problema
Más de 300.000 entidades en España - asociaciones, clubes deportivos, federaciones, colegios profesionales - gestionan sus operaciones diarias con hojas de cálculo, papel y herramientas genéricas no adaptadas a su realidad normativa y organizativa.
Gestión con Excel y papel
Hojas de cálculo compartidas, actas en Word, listados impresos. Sin integridad referencial ni histórico fiable.
Sin cumplimiento RGPD real
Datos personales en ficheros locales sin cifrado, sin control de acceso, sin trazabilidad de consentimientos.
Remesas SEPA manuales
El tesorero genera ficheros XML a mano o con herramientas genéricas. Errores frecuentes, sin conciliación automática.
Software genérico o legacy
ERPs diseñados para empresas, no para colectividades. Funcionalidades innecesarias, carencias específicas, costes elevados.

La Solución
Associated es un ERP ligero multi-tenant diseñado específicamente para colectividades españolas. Seis módulos funcionales cubren el ciclo completo de gestión: desde el alta de un socio hasta la generación de remesas SEPA y la comunicación con los miembros.
Acceso y Seguridad
Multi-tenant, roles, autenticación
Gestión de Socios
Fichas, estados, tipos, años fiscales
Tesorería
Cuotas, cobros, remesas SEPA, contabilidad básica
Eventos y Actividades
Programación, inscripciones, asistencia
Comunicaciones
Email, notificaciones, plantillas
Documentación
Repositorio, actas, archivos

Proceso de Ingeniería
La Cadena de Trazabilidad
32.600 líneas de especificación y ~1.800 referencias cruzadas garantizan que cada decisión técnica se puede rastrear hasta el requisito de negocio que la origina.
Cadena de trazabilidad
Requisitos Funcionales
003_requisitos-funcionales.md
¿QUÉ necesita el negocio?
Requisitos No Funcionales
004_requisitos-no-funcionales.md
¿Cómo debe comportarse?
Modelo de Dominio
005_modelo-dominio.md
¿Dónde vive en el dominio?
Decisiones Arquitectónicas
006_decisiones-arquitectonicas.md
¿Por qué esta decisión?
Stack Tecnológico
007_stack-tecnologico.md
¿Con qué herramientas?
RNF Técnicos
007b_rnf-tecnicos.md
¿Cómo se implementa?
User Stories
009_user-stories.md
¿Quién hace qué?
Casos de Uso
010_casos-de-uso.md
¿Cuál es el flujo completo?
Ejemplo: Trazabilidad de "Remesas SEPA"
Documentos de especificación
| Código | Documento | Items | Pregunta |
|---|---|---|---|
| RF | Requisitos Funcionales | 221 | ¿QUÉ necesita el negocio? |
| RNF | Requisitos No Funcionales | 66 | ¿Cómo debe comportarse? |
| BC | Modelo de Dominio | 6 | ¿Dónde vive en el dominio? |
| ADR | Decisiones Arquitectónicas | 12 | ¿Por qué esta decisión? |
| Stack | Stack Tecnológico | - | ¿Con qué herramientas? |
| RNFT | RNF Técnicos | ~40+ | ¿Cómo se implementa? |
| US | User Stories | 202 | ¿Quién hace qué? |
| UC | Casos de Uso | 76 | ¿Cuál es el flujo completo? |

Arquitectura
Domain-Driven Design
Monolito modular con 6 Bounded Contexts alineados al dominio. Comunicación entre contextos mediante Domain Events in-process con patrón Outbox, preparado para evolucionar a microservicios.
Áreas transversales

Decisiones Arquitectónicas (ADRs)
12 Architecture Decision Records documentan cada decisión técnica significativa: el contexto que la motivó, las alternativas evaluadas, la decisión tomada y sus consecuencias positivas y negativas.

Stack Tecnológico
Cada tecnología del stack está justificada en el documento de especificación. Sin decisiones por popularidad - cada elección responde a un requisito concreto o a una decisión arquitectónica documentada.
Backend
NestJS
Framework backend
Node.js 22 LTS
Runtime
Prisma
ORM
Passport + JWT
Autenticación
Argon2
Hashing de contraseñas
Frontend
React 19
UI Library
Vite
Bundler/Dev Server
Mantine UI
Component Library
React Hook Form + Zod
Formularios y validación
TanStack Query
Server State
React Router
Routing
Infraestructura
PostgreSQL 18
Base de datos
MinIO
Object Storage
Docker Compose
Desarrollo local
GitHub Actions
CI/CD
Testing
Vitest
Test runner
Playwright
E2E Testing
Observabilidad
Sentry
Error tracking
MVP - Lo Implementado
19 de 76 casos de uso (25%), distribuidos en 3 fases de entrega. La selección prioriza las tres áreas que hacen operativo el sistema: identidad, gestión de socios y tesorería.
Alcance del MVP
Estrategia de Fases
Infraestructura base, entorno de desarrollo, pipelines de calidad
Cimientos + operativa diaria mínima: alta socios, cuotas, cobros
Capacidades avanzadas: roles, SEPA, importación masiva
Dashboard, gráficos de evolución, administración avanzada
Capas de Implementación
Cada capa solo depende de capas anteriores. Dentro de cada capa, los UCs son paralelos.
Ruta crítica: UC-001 → UC-008 → UC-017 → UC-018 → UC-019 → UC-023 → UC-024 (7 nodos)

Identidad de Marca
Associated no es solo codigo. Para ser tomado en serio por las mas de 300.000 asociaciones españolas, necesita una identidad profesional que transmita confianza, funcionalidad y pertenencia cultural.
Concepto del Isotipo
El isotipo fusiona una “A” con siluetas humanas abstractas conectadas en red, representando el concepto de asociacion y comunidad.
Variantes del Logo

Paleta de Color
10 tonos derivados del brand primary, de claro a oscuro
Principio de Color: 90 / 8 / 2
Funcionalidad sobre decoracion. Personalidad discreta. Sin emojis en notificaciones.
Tipografia
Bold 700
Semibold 600
Regular 400
Aa Bb Cc Dd Ee Ff Gg Hh Ii Jj Kk 0123456789
Bold 700
Regular 400
const fee = member.quota * 0.21;
0O 1lI {}[]()
Soporte Dark Mode
Paleta oscura personalizada derivada de #27343E, no el dark generico de Mantine. La identidad de marca se mantiene en ambos esquemas.

Cifras y Escala
Distribución por volumen

Claude Code como Herramienta de Ingeniería
Claude Code se utilizó como co-piloto de especificación - no como generador de código. El autor dirige, define criterios y valida; la IA ejecuta tareas repetitivas de redacción, formateo y verificación de consistencia entre documentos.
doc-spec-generator
Generación y actualización de documentos de especificación siguiendo las convenciones del proyecto
doc-spec-manager
Navegación y consulta de la especificación con trazabilidad entre documentos

Estrategia de Despliegue
De local a producción en un solo comando
Pipeline de despliegue reproducible y automatizado. Docker multi-stage, registro privado en GHCR, migraciones seguras con contenedores efímeros y verificación post-deploy automática.
Pipeline de despliegue
Docker multi-stage build local
Imagen al GitHub Container Registry
SSH + docker compose pull
Contenedor one-shot con Prisma
Script de post-deploy automático
Topología en producción
Reverse proxy + SSL termination (Let's Encrypt)
Stack de despliegue
Características clave
Deploy en un comando
./scripts/deploy.sh --tag v1.0.0Verificación post-deploy
Script automatizado que valida health, respuestas y SSL
SSL / HTTPS
Certificados Let's Encrypt gestionados por Certbot
Multi-stage builds
Imágenes optimizadas: build → prune → runtime
Migraciones one-shot
Contenedor efímero para cambios de esquema seguros
Seguridad
Contenedores sin puertos expuestos al host
Reverse proxy protege los contenedores internos
Credenciales nunca incluidas en las imágenes
Sin password, autenticación por clave pública

Conclusiones y Futuro
Lo conseguido
- Especificación exhaustiva y trazable de un ERP completo para colectividades españolas
- Arquitectura DDD con monolito modular preparado para evolucionar
- MVP funcional con scaffold completo, multi-tenant, autenticación y primeros flujos
- Proceso de ingeniería documentado con IA como herramienta de productividad
Próximos pasos
- Completar la implementación de los Bounded Contexts core (Membership, Treasury)
- Integración con pasarelas de pago y generación real de remesas SEPA
- Portal de autoservicio para socios
- Beta con colectividades reales para validación de producto