Metricas de Calidad
Referencia tecnica completa de los indicadores de calidad del ecosistema Nvito: pruebas unitarias, E2E, cobertura por capa, seguridad, herramientas y comparativa con la industria.
Pruebas unitarias e integracion
| Proyecto | Framework | Suites | Tests | Tasa de exito |
|---|---|---|---|---|
| nvito-api | Jest + Supertest | 232 | 3,712 | 100% |
| nvito-admin | Vitest + Testing Library | 140 | 1,422 | 100% |
| nvito-invitations | Vitest + jsdom | 17 | 180 | 100% |
| nvito-client | Jest + jest-expo | 29 | 223 | 100% |
| nvito-pwa | Vitest + jsdom | 18 | 204 | 100% |
| Total | 436 | 5,741 | 100% |
Cobertura por capa
nvito-api
| Capa | Elementos | Con tests | Cobertura |
|---|---|---|---|
| Servicios | 116 | 116 | 100% |
| Controllers | 48 | 48 | 100% |
| Guards de seguridad | 11 | 11 | 100% |
nvito-admin
| Capa | Elementos | Con tests | Cobertura |
|---|---|---|---|
| Servicios API | 34 | 34 | 100% |
| Server Actions | 17 | 17 | 100% |
| Validaciones Zod | 15 | 15 | 100% |
| Hooks de datos | 36+ | 36+ | 100% |
nvito-invitations
| Capa | Elementos | Con tests | Cobertura |
|---|---|---|---|
| Route handlers | 3 | 3 | 100% |
| Servicios SOLID | 4 | 4 | 100% |
nvito-client
| Capa | Elementos | Con tests | Cobertura |
|---|---|---|---|
| Servicios API | 6 | 6 | 100% |
| Hooks queries | 7 | 7 | 100% |
| Contexts | 2 | 2 | 100% |
| Validaciones Zod | 3 | 3 | 100% |
nvito-pwa
| Capa | Elementos | Con tests | Cobertura |
|---|---|---|---|
| Seguridad (crypto, CSRF, rate limiter) | 3 | 3 | 100% |
| BFF (proxy handler) | 1 | 1 | 100% |
| Servicios API | 6 | 6 | 100% |
| Validaciones Zod | 1 | 1 | 100% |
| Hooks queries | 5 | keys tested | parcial |
| Utils (date, format) | 2 | 2 | 100% |
| Offline queue | 1 | 1 | 100% |
| Middleware | 1 | 1 | 100% |
| Config env | 1 | 1 | 100% |
Pruebas End-to-End (E2E)
| Proyecto | Framework | Tests E2E | Que prueba |
|---|---|---|---|
| nvito-admin | Playwright | 67 tests (14 specs) | Login, eventos, invitados, invitaciones, admin, error states, cross-browser Firefox |
| nvito-invitations | Playwright | 41 tests (7 specs) | Renderizado, 404, preview, revalidation webhook, security headers, performance, cross-browser WebKit + Firefox |
| nvito-api | k6 | 6 escenarios | Health, endpoints publicos, dia del evento (200 VUs), CRUD autenticado, webhooks, media upload |
| nvito-client | Maestro | 13 flows | Login host/guest, dashboard, guests, scanner, galeria, audio guestbook, deep links |
| Total | 121+ tests + 13 flows + 6 escenarios |
Para detalle completo de estructura, ejecucion y configuracion E2E, ver la guia de E2E Testing & Quality Assurance.
Calidad del codigo
| Indicador | Valor | Detalle |
|---|---|---|
| TypeScript strict mode | Habilitado en los 5 proyectos | strict: true en tsconfig |
as any | 0 en los 5 proyectos | Cero atajos de tipo en todo el ecosistema |
| JSDoc | 100% en los 5 proyectos | Todo metodo publico documentado (espanol, sin acentos) |
| Naming convention | 100% kebab-case en archivos | Consistencia total en los 5 repositorios |
| React Compiler | Habilitado (admin) | Optimizacion automatica de re-renders |
| Principios SOLID | Aplicados en los 5 proyectos | Servicios y componentes con responsabilidad unica |
| Validacion Zod | En todas las capas | Runtime validation: API + admin + invitations + client + pwa |
| Design tokens | Centralizados (admin + client) | Fuente unica de verdad para paleta de colores |
Seguridad
| Indicador | Implementacion | Proyecto |
|---|---|---|
| Autenticacion | Clerk (admin/web) + JWT propio (mobile) | api, admin, client |
| RBAC | 8 roles, 40+ permisos, 11 guards | api |
| Multi-tenant | Aislamiento por organizacion, X-Organization-Id | api, admin |
| Validacion de datos | Zod (frontend) + class-validator (backend) | Todos |
| CSP headers | Content-Security-Policy, HSTS, X-Frame-Options, Permissions-Policy | admin, invitations, pwa |
| BFF con cookies encriptadas | AES-256-GCM en cookies HttpOnly, CSRF double-submit | pwa |
| Prevencion XSS | escapeJsString() + escapeHtmlAttr() + DOMPurify (whitelist explicita) | invitations |
| Prevencion SSRF | validateCdnUrl() contra whitelist de hosts | invitations |
| Timing-safe secrets | crypto.timingSafeEqual() en webhooks | invitations |
| Rate limiting | In-memory rate limit en revalidation endpoint | invitations |
| Encriptacion | AES-256-GCM (datos sensibles), HMAC-SHA256 (busquedas), HTTPS obligatorio | api |
| SAST | Semgrep en CI (auto + TypeScript + NestJS/Next.js rules) | api, admin, invitations |
Compliance
| Regulacion | Estado | Detalle |
|---|---|---|
| LFPDPPP | Contemplado en la arquitectura | Datos personales de invitados, consentimiento, derecho al olvido |
| Encriptacion de PII | Implementado | Emails y telefonos encriptados (AES-256-GCM), hashing deterministico (HMAC-SHA256) |
Arquitectura
| Indicador | Valor |
|---|---|
| Modulos backend | 39 |
| Endpoints API | 374 |
| Modelos de datos | 53 (+ 40 enums) |
| Tipos de evento | 14 |
| Servicios modulares | 20 |
| Secciones de invitacion | 18 tipos |
| Aplicaciones | 5 (NestJS, Next.js admin, Next.js invitations, React Native/Expo, Next.js PWA) |
Infraestructura
| Indicador | Estado |
|---|---|
| Entornos | Local + DEV + TEST (+ Produccion pendiente) |
| CI/CD | GitLab CI con stages: quality, e2e, security, migrate |
| Hosting | Coolify v4 (Docker en VPS propio) |
| Base de datos | PostgreSQL via Neon (cloud) |
| Cache | Redis via Upstash |
| Almacenamiento | Cloudflare R2 (produccion) / MinIO (desarrollo) |
| E2E compartido | Docker Compose E2E (PostgreSQL tmpfs, Redis no-persist, MinIO tmpfs) |
| Reportes | Allure Report unificado (todos los proyectos) |
Comparativa con la industria
| Metrica | Nvito | Startup promedio | Empresa madura |
|---|---|---|---|
| Tests automaticos | 5,741+ unit + 121+ E2E | 0-100 | 1,000-10,000 |
| Proyectos con tests | 5 de 5 (100%) | 1 de 3-4 | 2-3 de 4 |
| Cobertura de servicios | 100% | 20-40% | 60-80% |
| TypeScript strict | Si (5 proyectos) | Raro | Comun |
| JSDoc completo | 100% en los 5 | Menos del 10% | 30-50% |
as any | 0 en los 5 | 10-50+ | 5-20 |
| CI/CD automatizado | Si | A veces | Si |
| Multi-tenant desde dia 1 | Si | No | A veces |
| RBAC completo | Si (11 guards) | Basico (2-3 roles) | Si |
| Principios SOLID | Aplicados en los 5 | Raro | A veces |
| Validacion runtime (Zod) | En todas las capas | Sin validacion | Solo backend |
| Prevencion XSS/SSRF | Implementado | Basico o nulo | Si |
| SAST en CI | Si (Semgrep) | No | Si |
| Design tokens centralizados | Si | No | Si |
Nvito tiene metricas de calidad superiores a la mayoria de startups e incluso comparables con empresas maduras, lo cual reduce significativamente el riesgo tecnico del proyecto.
Documento tecnico -- Nvito, Marzo 2026