MatchFlow es una aplicación multiplataforma (web + móvil) enfocada en generar conexiones reales mediante interacción en tiempo real, combinando:
- Matching tradicional (tipo Tinder)
- Videollamadas aleatorias
- Eventos interactivos dinámicos
- Sistema de monetización híbrido
La aplicación está diseñada para soportar una escala inicial de hasta 500.000 usuarios, con arquitectura preparada para crecimiento.
Arquitectura basada en microservicios, orientada a escalabilidad y tiempo real.
[Frontend Web/Mobile]
|
v
[API Gateway]
|
v
+-------------------------------+
| Auth Service |
| User/Profile Service |
| Match Service |
| Chat Service (Socket.io) |
| Video Service (WebRTC + SFU) |
| Payment Service |
| Notification Service |
+-------------------------------+
|
v
[Databases + Redis + Media Servers]
Motivos:
- Excelente soporte para tiempo real
- Arquitectura modular (ideal para microservicios)
- Integración nativa con WebSockets
- Web: React
- Mobile: React Native
- Reutilización de lógica
- Ecosistema maduro
- PostgreSQL: datos relacionales (usuarios, matches, pagos)
- Redis: tiempo real (sockets, sesiones, cache)
- Socket.io: chat, eventos y matchmaking
- WebRTC: videollamadas
Motivos:
- Escalable
- Menor coste que Twilio/Agora a gran escala
- Control total del sistema
- Docker: contenerización
- VPS: despliegue inicial
- Cloudflare: CDN y protección
- Nginx: reverse proxy
Cliente A <-> Mediasoup SFU <-> Cliente B
^
|
Socket.io (señalización)
- Videollamadas aleatorias
- Sin grabación (privacidad)
- Filtros visuales:
- Overlays (fase 1)
- IA (futuro)
- 10 min: preguntas automáticas
- 30 min: eventos visuales (viajes/intereses)
- Email + contraseña
- OAuth (Google)
- JWT
- Datos personales
- Preferencias
- Fotos
- Sistema tipo swipe
- Match mutuo
- Búsqueda por distancia
- Tiempo real (Socket.io)
- Aleatorias
- Interactivas
- Suscripciones
- Micropagos
- Push (Firebase)
- Reportes manuales
Algoritmo basado en:
- Distancia
- Intereses
- Actividad
- Preferencias
Posible mejora futura:
- Machine Learning
User {
id
email
password_hash
created_at
}Profile {
user_id
name
age
height
orientation
preferences
}Match {
user1_id
user2_id
created_at
}Message {
id
sender_id
receiver_id
content
timestamp
}Call {
id
user1_id
user2_id
start_time
end_time
}Event {
id
call_id
type
triggered_at
}Payment {
id
user_id
amount
type
status
}- Filtros de videollamada (~3 EUR)
- Filtros de chat (~0.50 EUR)
- Matches extra
| Plan | Características |
|---|---|
| Básico | Funciones limitadas |
| Intermedio | Más matches |
| Premium (~20 EUR) | Todo desbloqueado |
- JWT (auth)
- OAuth (Google)
- Verificación de edad obligatoria
- Encriptación de contraseñas (bcrypt)
- HTTPS obligatorio (Cloudflare)
- Microservicios
- Redis para carga en tiempo real
- Escalado horizontal (Docker)
- Kubernetes
- Balanceadores de carga
- Separación de servicios críticos
- Tests unitarios (Jest)
- Tests de integración
- CI/CD (GitHub Actions)
- Logs (Winston)
- Monitorización (Prometheus + Grafana)
- Estilo Tinder (minimalista)
- Elementos gamificados
- Tema automático (light/dark según sistema)
POST /auth/register
POST /auth/loginGET /user/profile
PUT /user/profilePOST /match/like
GET /match/listWS /chatWS /call- Nginx
- Docker Compose
- PostgreSQL
- Redis
- Mediasoup
Cliente -> Cloudflare -> Nginx -> Servicios
- IA para matching
- Filtros avanzados
- Sistema de monedas virtuales
- Moderación automática
- Eventos sociales globales
MatchFlow combina:
- Interacción en tiempo real
- Gamificación
- Monetización escalable
Con una arquitectura preparada para crecer y adaptarse a alta demanda.
---
# 🚀 Siguiente paso (muy recomendable)
Si quieres llevar esto a nivel PRO:
Te puedo hacer ahora:
✅ Diagrama visual real (tipo draw.io / arquitectura cloud)
✅ Estructura de carpetas del proyecto
✅ Primer backend con NestJS listo
✅ Base de datos real con migraciones
✅ Sistema de sockets funcionando
Solo dime:
👉 *"quiero empezar implementación"*
y lo montamos como hicimos con KDD paso a paso 💻