Skip to content

IagoPL/machflow-completo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MATCHFLOW

Documentación técnica - Plataforma de citas interactivas


1. Visión general

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.


2. Arquitectura del sistema

2.1 Enfoque general

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]

2.2 Decisiones técnicas clave

Backend: Node.js + NestJS (recomendado)

Motivos:

  • Excelente soporte para tiempo real
  • Arquitectura modular (ideal para microservicios)
  • Integración nativa con WebSockets

Frontend: React + React Native

  • Web: React
  • Mobile: React Native
  • Reutilización de lógica
  • Ecosistema maduro

Base de datos: PostgreSQL + Redis

  • PostgreSQL: datos relacionales (usuarios, matches, pagos)
  • Redis: tiempo real (sockets, sesiones, cache)

Tiempo real: Socket.io + WebRTC

  • Socket.io: chat, eventos y matchmaking
  • WebRTC: videollamadas

Videollamadas: Mediasoup (SFU propio)

Motivos:

  • Escalable
  • Menor coste que Twilio/Agora a gran escala
  • Control total del sistema

Infraestructura

  • Docker: contenerización
  • VPS: despliegue inicial
  • Cloudflare: CDN y protección
  • Nginx: reverse proxy

3. Sistema de videollamadas

3.1 Arquitectura

Cliente A <-> Mediasoup SFU <-> Cliente B
            ^
            |
   Socket.io (señalización)

3.2 Características

  • Videollamadas aleatorias
  • Sin grabación (privacidad)
  • Filtros visuales:
    • Overlays (fase 1)
    • IA (futuro)

3.3 Eventos dinámicos

  • 10 min: preguntas automáticas
  • 30 min: eventos visuales (viajes/intereses)

4. Funcionalidades core

Autenticación

  • Email + contraseña
  • OAuth (Google)
  • JWT

Perfil

  • Datos personales
  • Preferencias
  • Fotos

Matching

  • Sistema tipo swipe
  • Match mutuo

Geolocalización

  • Búsqueda por distancia

Chat

  • Tiempo real (Socket.io)

Videollamadas

  • Aleatorias
  • Interactivas

Monetización

  • Suscripciones
  • Micropagos

Notificaciones

  • Push (Firebase)

Moderación

  • Reportes manuales

5. Lógica de matching

Algoritmo basado en:

  • Distancia
  • Intereses
  • Actividad
  • Preferencias

Posible mejora futura:

  • Machine Learning

6. Modelo de datos (simplificado)

Usuario

User {
  id
  email
  password_hash
  created_at
}

Perfil

Profile {
  user_id
  name
  age
  height
  orientation
  preferences
}

Match

Match {
  user1_id
  user2_id
  created_at
}

Mensaje

Message {
  id
  sender_id
  receiver_id
  content
  timestamp
}

Videollamada

Call {
  id
  user1_id
  user2_id
  start_time
  end_time
}

Evento

Event {
  id
  call_id
  type
  triggered_at
}

Pago

Payment {
  id
  user_id
  amount
  type
  status
}

7. Sistema de monetización

Micropagos

  • Filtros de videollamada (~3 EUR)
  • Filtros de chat (~0.50 EUR)
  • Matches extra

Suscripciones

Plan Características
Básico Funciones limitadas
Intermedio Más matches
Premium (~20 EUR) Todo desbloqueado

8. Seguridad

  • JWT (auth)
  • OAuth (Google)
  • Verificación de edad obligatoria
  • Encriptación de contraseñas (bcrypt)
  • HTTPS obligatorio (Cloudflare)

9. Escalabilidad

Estrategia

  • Microservicios
  • Redis para carga en tiempo real
  • Escalado horizontal (Docker)

Futuro

  • Kubernetes
  • Balanceadores de carga
  • Separación de servicios críticos

10. Testing y calidad

  • Tests unitarios (Jest)
  • Tests de integración
  • CI/CD (GitHub Actions)
  • Logs (Winston)
  • Monitorización (Prometheus + Grafana)

11. UX/UI

  • Estilo Tinder (minimalista)
  • Elementos gamificados
  • Tema automático (light/dark según sistema)

12. API (ejemplo)

Auth

POST /auth/register
POST /auth/login

Usuario

GET /user/profile
PUT /user/profile

Match

POST /match/like
GET /match/list

Chat

WS /chat

Videollamada

WS /call

13. Despliegue

Stack

  • Nginx
  • Docker Compose
  • PostgreSQL
  • Redis
  • Mediasoup

Flujo

Cliente -> Cloudflare -> Nginx -> Servicios

14. Roadmap futuro

  • IA para matching
  • Filtros avanzados
  • Sistema de monedas virtuales
  • Moderación automática
  • Eventos sociales globales

✅ 15. Conclusión

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 💻

About

Plataforma full stack en desarrollo para matching, chat y videollamadas, con arquitectura modular, Docker, microservicios y tiempo real.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages