Skip to content

slendermantvb/chat-app

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

55 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🚀 YChat PHP - Multi-Platform Chat Application

Aplicación de chat construida con PHP, SQLite y JavaScript. Migrada desde Node.js para mayor simplicidad y compatibilidad con hosting tradicional.

MIGRACIÓN COMPLETADA A PHP

🔄 ¿Por qué PHP?

  • Hosting más económico: Compatible con hosting compartido
  • Configuración simple: Sin dependencias complejas
  • Mayor compatibilidad: Funciona en cualquier servidor web
  • Mantenimiento fácil: Código más directo y comprensible

🎯 Funcionalidades Mantenidas

  • Chat multi-sala (General, Gaming, Música)
  • Sistema de autenticación completo
  • Panel de administración con todas las herramientas
  • Base de datos SQLite con misma estructura
  • Interfaz moderna idéntica a la versión Node.js
  • Seguridad robusta con validaciones y sanitización

🔧 Cambios Técnicos

  • 🔄 WebSockets → Polling: Actualización cada 3 segundos
  • 🔄 Express.js → PHP nativo: Sin frameworks pesados
  • 🔄 Socket.IO → Fetch API: Comunicación REST
  • 🔄 Tiempo real → Simulado: Funcionalidad equivalente

🚀 Instalación y Configuración

📋 Requisitos

  • PHP 7.4+ con extensión SQLite
  • Servidor web (Apache/Nginx)
  • Navegador moderno

Instalación Rápida

  1. Subir archivos a tu servidor web:

    # Subir toda la carpeta public/ a tu hosting
  2. Crear primer administrador:

    http://tu-dominio.com/create_admin.php
    
    • Usuario: admin
    • Contraseña: admin123
  3. Eliminar script de instalación:

    rm create_admin.php
  4. ¡Listo! Accede al chat:

    http://tu-dominio.com/index.php
    

🔒 Configuración de Seguridad

El archivo .htaccess incluido configura automáticamente:

  • Protección de archivos sensibles
  • Headers de seguridad
  • Compresión y cache
  • Redirecciones seguras

📁 Estructura del Proyecto

public/
├── index.php          # 🏠 Página principal (login + chat)
├── auth.php           # 🔐 Autenticación (login, registro, logout)
├── register.php       # 📝 Registro de usuarios
├── admin.php          # 👑 Panel de administración
├── config.php         # ⚙️ Configuración general
├── create_admin.php   # 🛠️ Script inicial (eliminar después)
├── .htaccess          # 🛡️ Configuración Apache
├── api/
│   ├── messages.php   # 💬 API de mensajes
│   └── users.php      # 👥 API de usuarios
├── css/
│   └── styles.css     # 🎨 Estilos CSS
├── js/
│   └── diagnostics.js # 🔍 Diagnósticos (opcional)
└── chat.db           # 💾 Base de datos SQLite (se crea automáticamente)

🌐 URLs Disponibles

  • Chat Principal: /index.php
  • Registro: /register.php
  • Panel Admin: /admin.php (solo administradores)
  • API Mensajes: /api/messages.php
  • API Usuarios: /api/users.php

👑 Panel de Administración

📊 Estadísticas en Tiempo Real

  • Total de usuarios activos
  • Usuarios baneados
  • Mensajes totales
  • Mensajes eliminados

🛠️ Herramientas de Gestión

  • Usuarios: Banear, desbanear, promover a admin
  • Mensajes: Eliminar contenido inapropiado
  • Monitoreo: Ver actividad reciente
  • Seguridad: Control de acceso

🔒 Características de Seguridad

🛡️ Protección Implementada

  • Sanitización XSS: Todos los inputs son limpiados
  • Validación de entrada: Longitud y formato verificados
  • Control de sesiones: Tokens seguros con expiración
  • Rate limiting: Prevención de spam y ataques
  • Archivos protegidos: Base de datos y configuración inaccesibles

🔐 Autenticación Robusta

  • Contraseñas hasheadas con password_hash()
  • Sesiones con tokens únicos
  • Expiración automática de sesiones
  • Control de usuarios baneados

Rendimiento y Optimización

🚀 Optimizaciones Incluidas

  • Cache de archivos estáticos: CSS, JS, imágenes
  • Compresión automática: Reducción de ancho de banda
  • Consultas optimizadas: Índices en base de datos
  • Polling inteligente: Actualización eficiente cada 3 segundos

📱 Responsive Design

  • Móviles: Interfaz adaptada para pantallas pequeñas
  • Tablets: Layout optimizado para tablets
  • Desktop: Experiencia completa en escritorio
  • Cross-browser: Compatible con todos los navegadores modernos

🎨 Personalización

⚙️ Configuración Fácil

Edita config.php para personalizar:

// Límites de mensajes
define('MESSAGE_MAX_LENGTH', 1000);

// Nuevas salas de chat
define('DEFAULT_ROOMS', [
    'general' => ['name' => 'General', 'icon' => 'fas fa-hashtag'],
    'nueva_sala' => ['name' => 'Mi Sala', 'icon' => 'fas fa-star']
]);

// Configuración de archivos
define('MAX_FILE_SIZE', 20 * 1024 * 1024); // 20MB

🎨 Estilos Personalizables

Modifica css/styles.css para cambiar:

  • Colores del tema
  • Tipografías
  • Espaciado y layout
  • Animaciones

🔧 Troubleshooting

Problemas Comunes

Error de permisos SQLite:

chmod 666 chat.db
chmod 777 ./

Sesiones no funcionan:

# Verificar configuración PHP
php -i | grep session.save_path

SQLite no disponible:

# Verificar extensión
php -m | grep sqlite

📞 Soporte

  • Documentación completa: README_PHP.md
  • Configuración: config.php
  • Logs: Revisar logs del servidor web

🚀 Ventajas de la Versión PHP

Simplicidad

  • Sin dependencias de Node.js
  • Configuración mínima
  • Hosting económico
  • Mantenimiento sencillo

Compatibilidad

  • Funciona en hosting compartido
  • Compatible con cPanel
  • Sin configuración de servidor compleja
  • Backup simple (solo archivos PHP + SQLite)

Rendimiento

  • Menor uso de recursos
  • Inicio rápido
  • Sin gestión de procesos
  • Cache automático del servidor web

📈 Próximos Pasos

  1. Personalizar diseño según tus necesidades
  2. Configurar backup automático de chat.db
  3. Agregar funcionalidades como archivos adjuntos
  4. Optimizar para tu hosting específico
  5. Configurar SSL para mayor seguridad

📝 Licencia

MIT License - Libre para uso personal y comercial.

🤝 Contribuir

¡Las contribuciones son bienvenidas!

  1. Fork el proyecto
  2. Crea una rama para tu feature
  3. Commit tus cambios
  4. Abre un Pull Request

🎉 ¡Tu Chat PHP Está Listo!

Funcionalidad completaFácil de mantenerHosting económico

¡Disfruta tu aplicación de chat PHP moderna y eficiente! 🚀

About

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •