Un dominio, una identidad.
Aurora, Nexo y Prisma tienen su propio acceso, logotipo, colores y tipografía. El portal compartido NextGestión Network reúne las tres experiencias.
Aplicación full stack / 2026
Distintas marcas. Una misma conexión.
Una plataforma de marca blanca con múltiples colaboradores, dominios propios y estilos por marca. Explora tres identidades y comprueba cómo los permisos conectan sus carteras.

Dar autonomía visual a varios colaboradores sin multiplicar el código y permitir consultas entre sus carteras sólo cuando existe una autorización explícita.
El proyecto utiliza PostgreSQL y un modelo de colaboradores, clientes y accesos direccionales. Cada dominio resuelve su marca, mientras los permisos de la cuenta determinan las carteras visibles. La demo conserva los modelos y cálculos del proyecto y usa SQLite para reducir recursos.
Tres marcas ficticias, un acceso compartido, ocho cuentas públicas y una API REST con el mismo ámbito que la web. Aurora puede consultar Nexo; Nexo no obtiene acceso recíproco y Prisma conserva su cartera separada.
04 / LA EXPERIENCIA
Aurora, Nexo y Prisma tienen su propio acceso, logotipo, colores y tipografía. El portal compartido NextGestión Network reúne las tres experiencias.
ColaboradorAcceso modela autorizaciones direccionales y activas. Aurora consulta su cartera y Nexo; Nexo consulta sólo la propia. El permiso desactivado hacia Prisma no concede acceso.
El panel agrega las carteras autorizadas y permite filtrar una concreta. Clientes, contratos, resumen y descargas mantienen el mismo ámbito; los identificadores ajenos se rechazan.
Cada marca selecciona sus productos. Los clientes consultan el catálogo asignado y sus contratos, incluyendo subcuentas y documentos sintéticos.
Se conservan los modelos de contratos del proyecto: pagos, aportaciones, devoluciones, periodos y seguimiento del capital. Esta demo incluye 20 perfiles ficticios, 4 productos y 18 contratos.
La API REST v1 comparte los permisos y cálculos de la web. JWT, reto OTP de un solo uso, paginación, contrato OpenAPI y un explorador para probar las consultas.
UNA IDENTIDAD POR DOMINIO
Tonos verdes, tipografía limpia y cartera propia con acceso adicional a Nexo mediante un permiso explícito.
nexo.nextgestion.esAzul índigo, interfaz precisa y acceso limitado a su propia cartera de clientes.
prisma.nextgestion.esTerracota, titulares editoriales y una cartera independiente de las demás.
05 / PRUÉBALO TÚ
Cuentas públicas de demostración. Las escrituras están bloqueadas para todos los roles. El dominio cambia la presentación, no los permisos: la cuenta autenticada determina los datos disponibles. Developer no tiene acceso al servidor.
| Rol | Usuario | Contraseña | Qué puedes ver |
|---|---|---|---|
| Colaborador · Aurora | colaborador.aurora | ColaboraDemo2026! | Consulta Aurora y Nexo mediante permiso delegado. |
| Usuario · Aurora | usuario.aurora | UsuarioDemo2026! | Vista de cliente de Aurora. |
| Colaborador · Nexo | colaborador.nexo | ColaboraDemo2026! | Cartera y catálogo de Nexo. |
| Usuario · Nexo | usuario.nexo | UsuarioDemo2026! | Vista de cliente de Nexo. |
| Colaborador · Prisma | colaborador.prisma | ColaboraDemo2026! | Cartera y catálogo de Prisma. |
| Usuario · Prisma | usuario.prisma | UsuarioDemo2026! | Vista de cliente de Prisma. |
| Administrador | admin.demo | AdminDemo2026! | Visión de las tres carteras, marcas y permisos. |
| Developer | developer.demo | DevDemo2026! | Arquitectura, matriz de accesos, dominios y API. |
06 / POR DENTRO
Nginx recibe HTTPS para network, aurora, nexo y prisma.nextgestion.es. Caddy envía los cuatro hosts al mismo contenedor Django. El dominio resuelve la identidad visual; los permisos filtran carteras, clientes y contratos. La sesión web usa cookies propias de cada host y CSRF. La API usa JWT con expiración, rotación y revocación. PostgreSQL es la base de datos del proyecto; esta demo utiliza SQLite WAL y un volumen propio. Compartir aplicación y base de datos no equivale a separar físicamente cada marca.
| Tecnología | Versión / alcance | Para qué se utiliza |
|---|---|---|
| Python | 3.12 en Docker | Backend, cálculos, automatización y pruebas. |
| Django | 5.2.18 LTS | ORM, sesiones, formularios, plantillas, permisos, migraciones y protección CSRF. |
| Django REST Framework | 3.16.1 | Serialización JSON, permisos, paginación y límites de solicitudes. |
| Simple JWT | 5.5.1 | Tokens de acceso y renovación, rotación y lista de revocación. |
| drf-spectacular | 0.29.0 | Contrato OpenAPI generado desde los endpoints de la aplicación. |
| WhiteNoise | 6.12.0 | Servicio y compresión de los archivos estáticos dentro del contenedor. |
| Gunicorn | 25.3.0 | Servidor WSGI: un worker y dos hilos para el VPS. |
| django-private-storage | 3.1.3 | Acceso controlado a documentos almacenados fuera de static. |
| python-dateutil / Pillow | 2.9.0.post0 / 12.3.0 | Periodos de calendario y soporte de campos de imagen del catálogo. |
| HTML5, CSS y JavaScript | Plantillas y JavaScript nativo | Interfaz adaptable, selector de carteras, variables CSS por marca y explorador de API sin framework SPA. |
| Manrope | Fuente local WOFF2 | Tipografía de la aplicación, sin peticiones a proveedores de fuentes. |
| PostgreSQL | Base de datos del proyecto | Persistencia relacional del proyecto. La demo pública sustituye este servicio por SQLite para reducir el consumo del VPS. |
| SQLite (solo demo) | Incluida en la imagen Python | Persistencia con WAL exclusiva de la demo pública; permite probarla sin otro servidor de base de datos. |
| Docker Compose, Caddy y Nginx | Infraestructura del VPS | Un contenedor para cuatro subdominios, red interna, HTTPS y límites de recursos. |
| Certbot / Let’s Encrypt | Infraestructura del VPS | Emisión y renovación de certificados TLS. |
07 / WEB HOY. ANDROID DESPUÉS.
La API REST y OpenAPI ya están implementados. La futura app Android podrá obtener la identidad del dominio, autenticar la cuenta y listar sólo sus carteras autorizadas. Se propone Kotlin, Jetpack Compose y Retrofit; la aplicación móvil aún no forma parte de esta entrega.
| Método | Ruta | Función |
|---|---|---|
GET | marca/ | Identidad pública resuelta por el dominio: nombre, colores y tipografía. |
POST | auth/login/ · auth/verify-otp/ | Contraseña, reto de 5 minutos y OTP 123456. Devuelve access y refresh JWT. |
POST | auth/refresh/ · auth/logout/ | Renovación con rotación o revocación del refresh token. |
GET | me/ · carteras/ | Cuenta y carteras autorizadas. El acceso es independiente de la marca visual. |
GET | resumen/ · usuarios/ · productos/ | Resumen, clientes y catálogo; filtro opcional repetible ?colaborador=ID. |
GET | contratos/ · pagos/ | Contratos y movimientos dentro del ámbito de la cuenta. |
GET | contratos/{id}/documento/ | Descarga de ejemplo con comprobación de acceso en el servidor. |