Trabajo
UniversidadUniversidad · Movilidad

GoUni

Plataforma de carpooling universitario: viajes, reservas, mapas y chat en tiempo real.

Ver sitio en vivo

Captura de GoUni
SYSTEM.md

El problema

La movilidad universitaria en Lima necesita coordinar trayectos, confianza y comunicación entre conductores y pasajeros.

Qué construí

Un backend Spring Boot con DDD y JWT organizado por contextos (IAM, carpooling y chat), un servicio de chat con WebSocket y un frontend Angular con Mapbox y STOMP.

Resultado

Proyecto universitario con el recorrido completo de reserva, pago simulado y comunicación entre usuarios.

Decisiones que importaron

  1. 01

    Un contexto por responsabilidad

    IAM, carpooling y chat se modelan con DDD, cada uno con sus servicios, dominio y repositorios.

  2. 02

    Coordinación en tiempo real

    STOMP sobre WebSocket sostiene la conversación entre participantes; Mapbox da contexto geográfico a los trayectos.

  3. 03

    Entrega continua

    CI/CD en Azure Pipelines con Docker y Kubernetes, y pruebas con JUnit, Mockito y Selenium bajo TDD.

Tecnologías

  • Spring Boot
  • Angular
  • MySQL
  • WebSocket
  • Mapbox
  • JWT

Modelo C4. La línea con pulso es el recorrido principal de una solicitud.

Nivel 1 · quién usa el sistema y con qué se conecta

HTTPS1Mapbox GLSMTPEstudianteReserva y comparte viajesGoUniCarpooling universitarioMapbox[Mapbox GL]Rutas y mapasGmail SMTP[Gmail SMTP]Correos de verificación

Nivel 2 · las aplicaciones y almacenes que lo componen

HTTPS1Mapbox GLREST · JWT2WebSocket · STOMP3JDBCSMTPMapbox[Mapbox GL]Rutas y mapasEstudianteReserva y comparte viajesAplicación web[Angular 18 · Material · PrimeNG]Rutas, reservas y chatServicio de chat[Spring WebSocket · STOMP]Conversación en tiempo realAPI de GoUni[Spring Boot · Java 17]IAM, viajes y reservasBase de datos[MySQL]Usuarios, viajes y reservasGmail SMTP[Gmail SMTP]Correos de verificación

Nivel 3 · los componentes dentro de la API

calls1rulesport2JDBC3portSMTPportWebSocket· STOMPControladores REST[REST controllers]Un recurso por contextoServicios deaplicación[Application services]IAM, carpooling y chatAgregados[Aggregates]Usuarios, viajes y mensajesRepositorios JPA[JPA repositories]Persisten en MySQLBase de datos[MySQL]Usuarios, viajes y reservasEnvío de correo[Mail sender]Verificación de cuentaGmail SMTP[Gmail SMTP]Correos de verificaciónConfiguraciónWebSocket[WebSocket config]Canales STOMP del chatClientes en elnavegador[Browser · STOMP]Reciben los mensajes
  • Persona
  • Sistema
  • Contenedor
  • Base de datos
  • Externo
  • Recorrido principal
  1. 01Pasajero
  2. 02Reserva
  3. 03Conductor
  4. 04Chat
  5. 05Viaje

CV

Descarga mi CV

Déjame tu correo y te envío el CV ahí. Primero verifico que el correo es tuyo con un código.