← Volver al portafolio

Aplicación full stack / 2026

NextGestión Network.

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.

PythonDjangoPostgreSQLMultidominioMarca blancaREST APIDocker
Abrir demo ↗
Portada real de NextGestión Network con las marcas ficticias Aurora, Nexo y Prisma conectadas a una plataforma común.
Captura de la aplicación con datos ficticios de demostración.
01 / EL RETO

El punto de partida.

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.

02 / LA SOLUCIÓN

Cómo está construido.

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.

03 / EL RESULTADO

Qué aporta.

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

Un recorrido completo.

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.

Colaborar con permiso.

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.

Varias carteras, una vista.

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.

Catálogos por colaborador.

Cada marca selecciona sus productos. Los clientes consultan el catálogo asignado y sus contratos, incluyendo subcuentas y documentos sintéticos.

Cálculos con recorrido.

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.

Web y API conectadas.

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

Tres marcas. Una misma plataforma.

05 / PRUÉBALO TÚ

Elige una perspectiva.

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.

Cuentas públicas de demostración
RolUsuarioContraseñaQué puedes ver
Colaborador · Auroracolaborador.auroraColaboraDemo2026!Consulta Aurora y Nexo mediante permiso delegado.
Usuario · Aurorausuario.auroraUsuarioDemo2026!Vista de cliente de Aurora.
Colaborador · Nexocolaborador.nexoColaboraDemo2026!Cartera y catálogo de Nexo.
Usuario · Nexousuario.nexoUsuarioDemo2026!Vista de cliente de Nexo.
Colaborador · Prismacolaborador.prismaColaboraDemo2026!Cartera y catálogo de Prisma.
Usuario · Prismausuario.prismaUsuarioDemo2026!Vista de cliente de Prisma.
Administradoradmin.demoAdminDemo2026!Visión de las tres carteras, marcas y permisos.
Developerdeveloper.demoDevDemo2026!Arquitectura, matriz de accesos, dominios y API.
Código OTP para todos los perfiles123456Introduce el código después del usuario y la contraseña.
Entrar en la demo ↗

06 / POR DENTRO

Cada pieza tiene un propósito.

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.

Navegador / Android futuro→Nginx · HTTPS→Caddy · Docker→Django · PostgreSQL
Lenguajes, librerías e infraestructura del proyecto y su demo
TecnologíaVersión / alcancePara qué se utiliza
Python3.12 en DockerBackend, cálculos, automatización y pruebas.
Django5.2.18 LTSORM, sesiones, formularios, plantillas, permisos, migraciones y protección CSRF.
Django REST Framework3.16.1Serialización JSON, permisos, paginación y límites de solicitudes.
Simple JWT5.5.1Tokens de acceso y renovación, rotación y lista de revocación.
drf-spectacular0.29.0Contrato OpenAPI generado desde los endpoints de la aplicación.
WhiteNoise6.12.0Servicio y compresión de los archivos estáticos dentro del contenedor.
Gunicorn25.3.0Servidor WSGI: un worker y dos hilos para el VPS.
django-private-storage3.1.3Acceso controlado a documentos almacenados fuera de static.
python-dateutil / Pillow2.9.0.post0 / 12.3.0Periodos de calendario y soporte de campos de imagen del catálogo.
HTML5, CSS y JavaScriptPlantillas y JavaScript nativoInterfaz adaptable, selector de carteras, variables CSS por marca y explorador de API sin framework SPA.
ManropeFuente local WOFF2Tipografía de la aplicación, sin peticiones a proveedores de fuentes.
PostgreSQLBase de datos del proyectoPersistencia 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 PythonPersistencia con WAL exclusiva de la demo pública; permite probarla sin otro servidor de base de datos.
Docker Compose, Caddy y NginxInfraestructura del VPSUn contenedor para cuatro subdominios, red interna, HTTPS y límites de recursos.
Certbot / Let’s EncryptInfraestructura del VPSEmisión y renovación de certificados TLS.

07 / WEB HOY. ANDROID DESPUÉS.

Una API que puedes probar.

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.

Endpoints principales · prefijo /api/v1/
MétodoRutaFunción
GETmarca/Identidad pública resuelta por el dominio: nombre, colores y tipografía.
POSTauth/login/ · auth/verify-otp/Contraseña, reto de 5 minutos y OTP 123456. Devuelve access y refresh JWT.
POSTauth/refresh/ · auth/logout/Renovación con rotación o revocación del refresh token.
GETme/ · carteras/Cuenta y carteras autorizadas. El acceso es independiente de la marca visual.
GETresumen/ · usuarios/ · productos/Resumen, clientes y catálogo; filtro opcional repetible ?colaborador=ID.
GETcontratos/ · pagos/Contratos y movimientos dentro del ámbito de la cuenta.
GETcontratos/{id}/documento/Descarga de ejemplo con comprobación de acceso en el servidor.
Hablemos de este proyecto ↗