Repository navigation
Práctica 3

Esta es la documentación técnica y manual de usuario de mi práctica 3.
Este proyecto es un sistema de chat en tiempo real que permite la comunicación entre múltiples usuarios mediante tecnología WebSocket. Consta de un servidor Node.js con Express y Socket.IO, y una interfaz web responsive.
📂 Raíz del proyecto
├── 📂 public/
│ ├── 🖼️ chat.ico → Favicon de la página
│ ├── 🔊 error.mp3 → Sonido para errores
│ ├── 🖼️ fondorec.jpeg → Imagen de fondo
│ ├── 📄 index.html → Página principal
│ ├── 🔊 message.mp3 → Sonido para mensajes
│ ├── 🔊 notification.mp3 → Sonido para notificaciones
│ ├── 🔊 party.mp3 → Sonido para eventos
│ └── 📄 styles.css → Estilos CSS
│
├── 📄 package-lock.json → Lockfile de npm
├── 📄 package.json → Configuración de Node.js
├── 📄 README.md → Documentación del proyecto
└── 📄 server.js → Servidor backend en Node.js
Front-end:
- HTML5
- CSS3
- JavaScript ES6
- Socket.IO Client
Back-end:
- Node.js
- Express
- Socket.IO
- Módulos nativos (
http,path)
- Conexión WebSocket: Maneja conexiones persistentes bidireccionales
- Gestión de Usuarios: Registro y seguimiento de nicknames
- Broadcast de Mensajes: Distribución de mensajes a todos los clientes
-
Sistema de Comandos: Procesamiento de comandos especiales (
/help,/list, etc.)
- Node.js (versión 14.x o superior)
- Gestor de paquetes npm o yarn
- 500 MB de espacio disponible
- Puerto 3000 accesible
- Navegador moderno (Chrome 80+, Firefox 74+, Edge 80+, Safari 13+)
- Conexión a Internet estable
- JavaScript habilitado
- Clona el repositorio o descarga los archivos del proyecto.
- cd P3
-
El proyecto requiere las siguientes dependencias que se instalarán automáticamente:
npm install express socket.io
- npm start
- Abre un navegador y visita
http://localhost:3000para acceder al chat.

- Campo para ingresar tu nickname.
- Botón "Confirmar" para establecer tu identidad en el chat.
- Área de mensajes.
- Contador de usuarios conectados.
- Indicador de "usuario está escribiendo".
- Campo de entrada de mensajes.
- Botón de enviar.
Escribe estos comandos en el chat para activar funciones especiales:
| Comando | Descripción | Ejemplo |
|---|---|---|
/help |
Muestra todos los comandos disponibles | /help |
/list |
Muestra número de usuarios conectados | /list |
/hello |
Saludo del sistema | /hello |
/date |
Muestra la fecha y hora actual | /date |
/happy |
Mensaje de celebración | /happy |
/gato |
Muestra un emoji aleatorio de gato | /gato |
/dado |
Simula el lanzamiento de un dado | /dado |
/fiesta |
Mensaje festivo con emojis | /fiesta |
/amor |
Muestra el nivel de amor en el chat | /amor |
-
Sistema de Comandos Ampliado:
- Nuevos comandos interactivos:
-
/happy- Muestra mensaje de celebración -
/gato- Envía un emoji aleatorio de gato -
/dado- Lanza un dado virtual -
/fiesta- Animación especial -
/amor- Muestra porcentaje aleatorio de amor
-
- Nuevos comandos interactivos:
-
Indicador de Usuarios Activos:
- Contador en tiempo real de usuarios conectados y sus nicknames
- Visualización en la interfaz (ej: "👥 5 usuarios activos")
-
Sistema de Nicknames:
- Identificación personalizada con nicknames
- Validación de nicknames únicos
- Límite de caracteres (20 máximo)
-
Notificación de Escritura:
- Indicador visual cuando un usuario está escribiendo
- Muestra "[nickname] está escribiendo..."
- Timeout automático después de 3 segundos
-
Nickname en los mensajes:
- Identificación de los mensajes enviados
-
Favicon:
- Se ha añadido un favicon al chat web
Daniel Pérez