CodeForge

React 19 de Cero a Experto / Proyecto final

Proyecto: chat colaborativo en tiempo real

Proyecto90 min150 XP

Es el momento: construyes el chat colaborativo completo —login, salas, mensajes en tiempo real, presencia y "está escribiendo…"— ensamblando todo React 19 que dominaste. Corre en vivo con el socket simulado (mismo modelo mental que Socket.io); en tu proyecto real, cambiarías esa línea por io("https://...") conectado al backend que construirás en el supercurso de Node/NestJS (SC-10). Este es tu capstone: la prueba de que sabes armar una app real de principio a fin.

Reto

Chat colaborativo

Difícil90 min150 XP(×2 sin mirar la solución)

Qué debes construir

Un chat con salas, presencia y tiempo real, sobre el plan de la lección anterior:

  1. Login: una pantalla para elegir tu nombre antes de entrar (estado local que actúa de "auth").
  2. Salas: una lista de salas (#general, #diseño, #random); al elegir una, te unes (emit("unir_sala")) y ves sus mensajes.
  3. Mensajes en tiempo real: recibir el historial al entrar, y los mensajes nuevos (propios y ajenos) por el socket, filtrados por sala.
  4. Envío optimista: tu mensaje aparece al instante (dedup por id al confirmarse).
  5. Presencia: la lista de quién está en la sala actual.
  6. "Escribiendo…": indicador cuando alguien teclea en la sala.

Reglas

  • Clasifica el estado como planeaste: local (nombre, sala, input), de servidor (mensajes, presencia, escribiendo), conexión en un ref.
  • Cada socket.on(...) con su socket.off(...) en el cleanup.
  • Mensajes con id de cliente para deduplicar el optimista; todo tipado.

90:00

Cuando estés listo, arranca el reloj.

Qué sigue

Tienes el chat funcionando. Pero "funciona" no es "listo para producción": falta persistir la sesión, avisar de mensajes no leídos en otras salas, y pulir la accesibilidad. La próxima lección es un reto para EXTENDER tu capstone con esos toques de calidad —lo que separa un demo de un producto—.