Repository navigation
FriendsGo v1.0.0
FriendsGo se publica como una red social full-stack que unifica perfiles, publicaciones, amistades, chat y videollamadas aleatorias.
Funcionalidades principales
- Registro, inicio y cierre de sesión con JWT.
- Perfiles de usuario, edición de datos, imágenes y gestión de cuenta.
- Publicaciones con comentarios, reacciones, contenidos multimedia y moderación.
- Solicitudes de amistad y gestión de amistades.
- Chat persistente entre usuarios.
- Videollamadas aleatorias con WebRTC y señalización mediante Socket.IO.
- Sistema de match tras videollamada, valoraciones y notificaciones.
- Panel de administración para usuarios y publicaciones.
- Internacionalización de los mensajes del backend en siete idiomas.
Seguridad y consistencia
- Contraseñas protegidas con bcrypt.
- JWT verificados también contra base de datos para permitir invalidar sesiones.
- Helmet, CORS, rate limiting y HTTPS en producción.
- Autorización de recursos: cada cuenta solo puede acceder o modificar sus datos privados.
- Permisos aplicados a publicaciones, mensajes, solicitudes de amistad y participantes de videollamadas.
- Operaciones de amistad atómicas para evitar estados inconsistentes.
- Comando seguro para crear el primer administrador, sin credenciales por defecto.
- Base de datos de pruebas separada de producción.
Infraestructura
- Frontend React con SSR.
- Backend Express + TypeScript.
- PostgreSQL con Sequelize.
- Socket.IO para eventos en tiempo real.
- WebRTC y servidor STUN/TURN para llamadas P2P.
- Frontend desplegado en Vercel y backend en Railway.