Full-stack · Tiempo real Truekapp
Un marketplace de trueque que construí y llevé hasta producción
Un marketplace de trueque full-stack donde la gente intercambia objetos sin dinero: publicas lo que ya no usas, propones trueques, chateas y os valoráis. Empezó como mi TFG y lo llevé mucho más allá: una app real funcionando en producción en mi propio servidor. Construida con Laravel 12 y arquitectura de servicios, reúne mensajería en tiempo real, un asistente de IA y búsqueda semántica, desplegada mediante un pipeline de CI/CD con una suite de tests automatizada en cada push.
- Chat en tiempo real con WebSockets (Laravel Reverb) y canales privados autorizados
- Asistente de IA con RAG agéntico + tool calling (Google Gemini): responde dudas, propone trueques y puede volver a buscar en el catálogo a mitad de conversación
- Foto a ficha con IA: haces una foto y Gemini Vision sugiere título, categoría y descripción
- Moderación de imágenes con IA que bloquea subidas inapropiadas antes de guardarlas
- Búsqueda semántica que ordena el catálogo por significado, reutilizando embeddings
- Lista «Busco» con matching automático, además de favoritos
- Sistema de trueques con propuestas, valoraciones y reputación
- API REST con autenticación por tokens (Laravel Sanctum)
- Bilingüe (ES/EN) con panel de administración por permisos y demo pública con reseteo diario
- Backend: Laravel 12, PHP 8.3, arquitectura de servicios
- Tiempo real: Laravel Reverb (WebSockets)
- IA: Google Gemini (chat, embeddings + visión) con RAG y function calling
- Base de datos: MySQL
- Frontend: Blade, Tailwind CSS, Alpine.js, Vite
- Auth y API: Laravel Sanctum
- Testing: Pest (120+ tests, incl. evals del asistente) · Estilo: Laravel Pint
- Servidor propio (VPS Hetzner, Ubuntu) configurado a mano, sin paneles tipo Forge/Ploi
- Nginx + PHP-FPM + MySQL instalados y gestionados manualmente
- Supervisor mantiene vivos el daemon de Reverb y el worker de colas
- SSL con Let's Encrypt y Cloudflare por delante (CDN + DDoS/WAF + escaneo CSAM)
- CI/CD con GitHub Actions: la suite de tests corre en cada push
- Un cron diario regenera la demo, más una pasada de hardening (CSP, rate-limit, cabeceras)