Sistema de Chat Privado
Autores: Julián Andrés Caracas Sánchez · Kevin Villegas · Santiago Méndez · José David Zuluaga
Institución: Corporación de Estudios Tecnológicos del Norte del Valle — Unidad de Ingeniería, Arquitectura, Urbanismo y Afines · Cartago Valle · Junio 2026
Guías en esta sección
| Página | Contenido |
|---|---|
| Arquitectura | Vertical Slice, CQRS, MediatR y organización por features |
| Componentes | MongoDB, Redis, RabbitMQ, Wolverine, flujos del sistema |
| E2EE | Cifrado AES-256 por conversación e implementación real |
Para instalar y ejecutar el backend, ve a Instalación. Para endpoints HTTP y SignalR, Backend.
Introducción
El desarrollo de muchas aplicaciones se basa en utilizar la información de las personas con fines comerciales. Como consecuencia, quien las usa pierde el control sobre sus datos y contactos. Por este motivo, el presente sistema nace inspirado en la filosofía de Brave, enfocado en proteger la privacidad.
La herramienta pide solo lo estrictamente necesario para funcionar de forma segura: un espacio digital sin rastreadores ni venta de información a terceros.
Justificación
Muchas aplicaciones intercambian el uso de la herramienta por datos personales para publicidad. Este sistema es una alternativa donde la información no es moneda de cambio: sin rastreadores ocultos ni perfiles vendidos a terceros.
Planteamiento del problema
Las herramientas digitales suelen exigir datos personales que terminan en perfiles comerciales o se comparten con terceros. Surge la necesidad de un sistema que no trate a la persona como fuente de datos y que garantice un intercambio de mensajes seguro.
Propósito
Este documento especifica requerimientos funcionales y no funcionales del Sistema de Chat Privado, desarrollado con ASP.NET Core (.NET 10) y MongoDB, como referencia técnica del proyecto (estándar IEEE 830).
Alcance
El sistema permite:
- Comunicación en tiempo real mediante SignalR
- Cifrado por conversación (E2EE) con AES-256
- Autenticación JWT + Refresh Token
- Persistencia en MongoDB con identificadores GUID
- Arquitectura Vertical Slice por feature
Fuera del alcance:
- Notificaciones push nativas
- Videollamadas
- Integración OAuth externa
Cambios respecto a la versión anterior
En comparación con la primera versión del primer corte, el sistema actual incorpora cambios en estructura y funcionalidades.
Resumen de cambios
| Área | Cambio |
|---|---|
| Base de datos | Mejor organización y acceso (MongoDB) |
| Arquitectura | De capas a Vertical Slice |
| Mensajería | Soporte multimedia (documentos, imágenes, videos, audios) |
| Seguridad | Refresh tokens, rate limiting, E2EE con AES-256 |
Nueva arquitectura: Vertical Slice
Se migró de capas horizontales a Vertical Slice para separar por funcionalidad y facilitar mantenimiento. Detalle en Arquitectura.
Mensajería multimedia
Envío de documentos, imágenes, videos y audios además de texto plano (vía HTTP upload y SignalR).
Seguridad avanzada
- Refresh tokens para renovación de sesión
- Cabeceras de protección HTTP
- Rate limiting ante abuso de la API
- E2EE con AES-256 por conversación — ver E2EE