LR

Luis Rivas Villa

Desarrollador Full Stack

Construyo aplicaciones de principio a fin: API en Spring Boot, interfaz en Angular, React o Android nativo, y despliegue en servidor propio con Docker e integración continua. Los proyectos de abajo no son demos — están corriendo ahora mismo en esta máquina y puedes probarlos.

Java 21 Spring Boot 3 Kotlin Angular 20 React 19 Ionic · Capacitor Jetpack Compose PostgreSQL Docker Nginx GitHub Actions

Proyectos

Swap Closet

Web + Android

Plataforma de intercambio de ropa entre usuarios. Cada persona publica sus prendas, explora el catálogo del resto y negocia intercambios que pasan por distintos estados hasta cerrarse.

  • Registro y login con contraseñas cifradas en BCrypt
  • Publicación de prendas con imágenes alojadas en Cloudinary
  • Solicitudes de intercambio y gestión de sus estados
  • Arquitectura por capas: controladores, servicios, DTOs y seguridad
  • App Android empaquetada con Capacitor
Spring Boot 3 Angular 20 Ionic 8 PostgreSQL Cloudinary Docker

Private Chat

Web + Android

Mensajería privada sobre un servidor WebSocket propio, con cliente web y app Android nativa que hablan entre sí. Los contactos se añaden escaneando un QR y los mensajes viajan cifrados de extremo a extremo; las conversaciones se guardan solo en el dispositivo, nunca en el servidor.

  • Dos clientes interoperables: app nativa en Kotlin y web en React
  • Cifrado de extremo a extremo con ECDH P-256 y AES-GCM
  • Alta de contactos por QR o por ID y clave pública
  • Persistencia local: Room en Android, IndexedDB en el navegador
  • Cola de mensajes pendientes en servidor y confirmación por ACK
  • La web es instalable como PWA y abre sin conexión
Kotlin Jetpack Compose React 19 Vite WebSockets Spring Boot Docker

Cómo está desplegado

Servidor propio

VPS Linux administrado por mí, con Nginx como proxy inverso y HTTPS mediante Let's Encrypt.

Contenedores

Cada servicio en su propio contenedor Docker, orquestados con Docker Compose sobre una red interna.

Integración continua

GitHub Actions ejecuta los tests, construye las imágenes y las publica en Docker Hub.

Despliegue automático

Cada push a la rama principal actualiza los contenedores en el servidor sin intervención manual.