Arquitectura Backend — API Modular por Dominio
El backend de Finnova es una API REST monolítica modular construida en Node.js + Express (TypeScript), desplegada en contenedores Docker sobre AWS. Es un monolito en cuanto a despliegue (un solo proceso/servicio), pero modular por dominio internamente: cada módulo de negocio es independiente y aislado, lo que permite extraerlo a un servicio separado más adelante si el dominio lo justifica.
Arquitectura Frontend — Atomic Design + Feature-Sliced
La aplicación de Finnova se construye en React Native con un MVP orientado a móvil y la expectativa de extenderse a web en el corto-mediano plazo. Para sostener ese crecimiento sin acumular deuda técnica, el frontend combina dos patrones complementarios más una capa de abstracción de plataforma:
Convenciones de Código — Finnova
Este documento define las convenciones de código obligatorias para el equipo de Finnova. Aplica tanto al repositorio de backend (Node.js) como al de frontend (React Native). Todos los miembros del equipo deben seguirlas independientemente de su rol principal.
Convenciones de Testing — Finnova
Este documento define la estrategia y convenciones de testing para el proyecto Finnova. El objetivo inicial es tener cobertura básica en lógica crítica. No se exige cobertura total en MVP.
Definition of Ready y Definition of Done — Finnova
Este documento define cuándo un Requisito Funcional (RF) está listo para entrar a desarrollo (Ready) y cuándo su implementación se considera terminada (Done). Aplica al desarrollo de RFs que ya cuentan con su documento de especificación en requisitos/ — no a la fase de descubrimiento o división del trabajo, que ocurre antes.
Investigación — Suscripciones en Apps Móviles
Las suscripciones en apps móviles funcionan de forma distinta a la web. Apple y Google exigen que los pagos recurrentes dentro de sus apps pasen obligatoriamente por sus propios sistemas de facturación (App Store / Google Play Billing), con las consecuencias económicas y de integración que eso implica.
Login con Apple (Sign in with Apple) en la App Móvil
Sign in with Apple es el equivalente de Apple a Google Sign-In: permite al usuario autenticarse con su Apple ID. Finnova lo ofrece como método de login en iOS junto a Google y email/contraseña. Esta página define cómo se integra con el esquema de sesiones de doble token de Finnova (ver Control de Sesiones) y sigue el mismo patrón que el Login con Google.
Login con Google en la App Móvil
Finnova ofrece "Continuar con Google" como método de autenticación en la app móvil (React Native / Expo), además del login con email y contraseña. Esta página define cómo se integra el flujo de Google Sign-In con el esquema de sesiones de doble token de Finnova (ver Control de Sesiones).
Manual de arquitectura de Finnova
Notas de alcance y disponibilidad
Stripe — Suscripciones en Plataforma Web
Finnova usa Stripe como procesador de pagos para la gestión de suscripciones de la plataforma web. Stripe asume la responsabilidad de cumplimiento PCI-DSS en el procesamiento de tarjetas, lo que reduce significativamente la superficie de riesgo en nuestra infraestructura (ver Compliance y Privacidad).