15 KiB
Executable File
Plan de Desarrollo y Estado del Proyecto
Este archivo es la guía oficial para el desarrollo del sistema de administración de bots. Lo actualizaremos con cada avance.
Regla General: Antes de crear cualquier archivo o módulo, el primer paso siempre será verificar si ya existe para analizar su estado y decidir si se debe completar, refactorizar o crear desde cero.
🟦 FASE 1 — Preparación del Proyecto
- Paso 1: Crear estructura base del proyecto
- Paso 2: Crear archivo .env e inicializar variables
- Paso 3: Crear conexión a base de datos (COMPARTIDA)
🟩 FASE 2 — Base de Datos
- Paso 4: Crear tablas básicas del sistema
- Paso 5: Crear tablas para cada plataforma
🟨 FASE 3 — Autenticación
- Paso 6: Crear login.php
- Paso 7: Crear panel principal después del login
🟧 FASE 4 — Construcción de Plataformas
🔵 FASE 4.1 – PLATAFORMA DISCORD
-
Paso 8: Crear la estructura interna de
/discord(Verificada) -
Paso 9: Crear el archivo
dashboard_discord.php(Verificado y funcional) -
Paso 10: Módulo de GALERÍA (COMPARTIDO) (Verificado y funcional)
-
Paso 11: Módulo de PLANTILLAS DISCORD
- Verificar: Revisar
list.php,create.php,edit.php,preview.phpy APIs asociadas. - Implementar/Corregir:
- Asegurar que la función de crear plantillas sea robusta (actualmente funcional pero mejorable).
- Asegurar que la función de listar plantillas sea robusta (actualmente funcional pero mejorable).
- Implementar la API para eliminar plantillas y conectar con el frontend.
- Implementar la funcionalidad para editar plantillas.
- Asegurar que la previsualización funcione correctamente.
- Integrar el botón para insertar imágenes de la galería en el editor.
- Verificar: Revisar
-
Paso 12: Módulo de CREAR MENSAJE DISCORD
- Verificar: Analizar archivos existentes en
/discord/views/messages/(create.php) y API/discord/api/messages/send.php. - Implementar/Corregir:
- Interfaz para seleccionar destinatario (individual) e ingresar contenido.
- Carga de plantillas en el editor.
- Editor local con soporte de imágenes (Summernote + Galería).
- Previsualización del mensaje.
- API para enviar mensajes inmediatos a Discord.
- Guardado del mensaje enviado en
mensajes_discord. - Mejorar: Permitir selección de múltiples destinatarios.
- Implementar: Funcionalidad de envío programado.
- Implementar: Funcionalidad de envío recurrente.
- Verificar: Analizar archivos existentes en
-
Paso 13: Módulo de ENVIADOS DISCORD
- Verificar: Analizar archivos existentes en
/discord/views/messages/(sent.php). - Implementar/Corregir:
- Página para listar mensajes enviados (con paginación).
- Mejorar: Mostrar mensajes en todos los estados (enviado, pendiente, fallido, deshabilitado).
- Implementar: Botón "Eliminar" (que cambie estado a 'deshabilitado' y elimine en Discord si es posible).
- Verificar: Analizar archivos existentes en
-
Paso 14: Módulo de DESTINATARIOS DISCORD
- Verificar: Analizar archivos existentes en
/discord/views/recipients/(list.php) y APIs (create.php,delete.php). - Implementar/Corregir:
- Interfaz para listar destinatarios (usuarios y canales).
- Funcionalidad para crear nuevo destinatario (vía modal y API).
- Funcionalidad para eliminar destinatario (vía API).
- Mejorar: Mostrar y gestionar destinatarios de tipo "grupo".
- Implementar: Funcionalidad para editar destinatarios.
- Implementar: Funcionalidad para expulsar (requiere interacción con la API de Discord).
- Integrar: Sincronización con el webhook (se abordará en el Paso 20).
- Verificar: Analizar archivos existentes en
-
Paso 15: Módulo de COMANDOS DISCORD
- Verificar: Analizar archivos existentes en
/discord/views/commands/(list.php). - Implementar/Corregir:
- Página para listar comandos (reutiliza plantillas con comando asociado).
- Implementar: Funcionalidad para eliminar un comando (implica eliminar la plantilla asociada).
- Considerar: Si es necesario gestionar los Slash Commands de Discord vía API (más allá de la DB local). Por ahora, el plan indica "borrado completo" que apunta a la plantilla asociada.
- Verificar: Analizar archivos existentes en
-
Paso 16: Módulo de IDIOMAS (COMPARTIDO)
- Verificar: Analizar archivos existentes en
/shared/languages/(manager.php). - Implementar: Crear la interfaz para gestionar idiomas y la integración con LibreTranslate.
- Listado de idiomas.
- Activar / Desactivar idiomas.
- Sincronizar idiomas con LibreTranslate.
- Actualizar bandera de idioma.
- Prueba de traducción con LibreTranslate.
- Verificar: Analizar archivos existentes en
-
Paso 17: Módulo de MENSAJE DE BIENVENIDA DISCORD
- Verificar: Analizar archivos existentes en
/discord/views/welcome/(config.php). - Implementar/Corregir:
- Configuración de activación/desactivación del mensaje.
- Configuración para registrar usuario en BD.
- Selección de canal destino.
- Editor (Summernote) para el texto de bienvenida.
- Botón para probar el mensaje (
send_test.phpAPI). - Reintegrar: Selección e inserción de imagen opcional (la UI HTML fue eliminada/comentada, pero la DB y JS de galería lo soportan).
- Implementar: Selección de idiomas específicos para el mensaje de bienvenida (guardar en
idiomas_habilitados).
- Verificar: Analizar archivos existentes en
-
Paso 18: Módulo de LOGS DISCORD
- Verificar: Analizar archivos existentes en
/discord/views/logs/(list.php). - Implementar: Crear la interfaz para visualizar los logs de Discord.
- Listado de logs con paginación.
- Filtrado por nivel, origen y búsqueda en descripción.
- Visualización de detalles JSON en modal.
- Verificar: Analizar archivos existentes en
-
Paso 19: Crear
test_discord_connection.php- Verificar: Revisar si el archivo ya existe (
discord/test_connection.php). - Implementar: Crear un script simple para probar la conexión con la API de Discord.
- Verificación de token.
- Conexión con Discord API (@me).
- Acceso al servidor Discord (Guild ID).
- Listado de canales.
- Verificar: Revisar si el archivo ya existe (
-
Paso 20: Crear webhook de Discord
- Verificar: Analizar archivos existentes en
/discord/webhook/(index.php). - Implementar/Corregir:
- Verificación de firma de seguridad Discord (Ed25519) - Fallo seguro si extensión
sodiumno instalada. - Manejo de interacción
PING(tipo 1). - Manejo básico de componentes de mensaje (tipo 3) para selección de idioma (
lang_select_). - Implementar: Manejo de comandos de aplicación (Slash Commands - tipo 2):
- Detección y procesamiento de comandos como
/comandos,/agente.
- Detección y procesamiento de comandos como
- Implementar: Manejo de mensajes entrantes (directos o de canal, si aplica).
- Implementar: Registrar destinatarios (ej. usuarios que interactúan por primera vez).
- Mejorar: Detectar idioma y traducir (integración completa con LibreTranslate).
- Implementar: Envío de respuestas con imágenes y división de mensajes largos.
- Integrar: Sincronización con el webhook (tarea pendiente del Paso 14, ahora parte de este paso).
- Verificación de firma de seguridad Discord (Ed25519) - Fallo seguro si extensión
- Verificar: Analizar archivos existentes en
🟣 FASE 4.2 – PLATAFORMA TELEGRAM
- Paso 21: Crear estructura interna de
/telegram- Verificar: Analizar archivos existentes en
/telegram/.- La estructura de directorios (
api/,controllers/,models/,public/,routes/,views/,webhook/) ya existe.
- La estructura de directorios (
- Verificar: Analizar archivos existentes en
- Paso 22: Crear
dashboard_telegram.php(Idéntico a Discord, Paso 9)- Verificar: Analizar
telegram/dashboard_telegram.php. - Implementar/Corregir: Asegurar que sea funcional como panel principal de Telegram.
- Verificar: Analizar
- Paso 23: Galería ya existe (no se duplica) (Idéntico a Discord, Paso 10)
- Verificar: El módulo de Galería (
/gallery) es compartido y ya está implementado (Paso 10).
- Verificar: El módulo de Galería (
- Paso 24: Módulo de PLANTILLAS TELEGRAM (Idéntico a Discord, Paso 11)
- Verificar: Analizar archivos existentes en
/telegram/views/templates/y APIs asociadas. - Implementar/Corregir:
- Crear la interfaz (
list.php,create.php,edit.php,preview.php) para plantillas Telegram. - Implementar APIs (
/telegram/api/templates/). - Asegurar funciones de crear, listar, editar, eliminar y previsualizar.
- Integrar botón para insertar imágenes de la galería en el editor.
- Crear la interfaz (
- Verificar: Analizar archivos existentes en
- Paso 25: Módulo de CREAR MENSAJE TELEGRAM (Idéntico a Discord, Paso 12)
- Verificar: Analizar archivos existentes en
/telegram/views/messages/(create.php) y API/telegram/api/messages/send.php. - Implementar/Corregir:
- Interfaz para seleccionar destinatario(s) e ingresar contenido.
- Carga de plantillas en el editor.
- Editor local con soporte de imágenes (Summernote + Galería).
- Previsualización del mensaje.
- API para enviar mensajes inmediatos a Telegram.
- Guardado del mensaje enviado en
mensajes_telegram. - Mejorar: Permitir selección de múltiples destinatarios.
- Implementar: Funcionalidad de envío programado.
- Implementar: Funcionalidad de envío recurrente.
- Verificar: Analizar archivos existentes en
- Paso 26: Módulo de ENVIADOS TELEGRAM (Idéntico a Discord, Paso 13)
- Verificar: Analizar archivos existentes en
/telegram/views/messages/(sent.php). - Implementar/Corregir:
- Página para listar mensajes enviados (con paginación).
- Mejorar: Mostrar mensajes en todos los estados (enviado, pendiente, fallido, deshabilitado).
- Implementar: Botón "Eliminar" (que cambie estado a 'deshabilitado' y elimine en Telegram si es posible).
- Verificar: Analizar archivos existentes en
- Paso 27: Módulo de DESTINATARIOS TELEGRAM (Idéntico a Discord, Paso 14)
- Verificar: Analizar archivos existentes en
/telegram/views/recipients/y APIs. - Implementar/Corregir:
- Interfaz para listar, crear, editar, eliminar destinatarios.
- Implementar APIs (
/telegram/api/recipients/). - Mejorar: Gestión de tipos de destinatario de Telegram (usuarios, canales, grupos).
- Implementar: Funcionalidad para expulsar (requiere interacción con la API de Telegram).
- Integrar: Sincronización con el webhook (se abordará en el Paso 33).
- Verificar: Analizar archivos existentes en
- Paso 28: Módulo de COMANDOS TELEGRAM (Idéntico a Discord, Paso 15)
- Verificar: Analizar archivos existentes en
/telegram/views/commands/. - Implementar/Corregir:
- Página para listar comandos (reutiliza plantillas con comando asociado).
- Funcionalidad para eliminar un comando.
- Verificar: Analizar archivos existentes en
- Paso 29: Idiomas (ya existe, se usa igual) (Idéntico a Discord, Paso 16)
- Verificar: El módulo de Idiomas (
/shared/languages) es compartido y ya está implementado (Paso 16).
- Verificar: El módulo de Idiomas (
- Paso 30: Módulo de MENSAJE DE BIENVENIDA TELEGRAM (Idéntico a Discord, Paso 17)
- Verificar: Analizar archivos existentes en
/telegram/views/welcome/. - Implementar/Corregir:
- Crear la interfaz (
config.php) para configurar el mensaje de bienvenida. - API
/telegram/api/welcome/send_test.phppara probar mensaje. - Selección e inserción de imagen opcional.
- Selección de idiomas específicos.
- Botón "Únete al grupo".
- Crear la interfaz (
- Verificar: Analizar archivos existentes en
- Paso 31: Módulo de LOGS TELEGRAM (Idéntico a Discord, Paso 18)
- Verificar: Analizar archivos existentes en
/telegram/views/logs/(list.php). - Implementar: Crear la interfaz para visualizar los logs de Telegram.
- Listado de logs con paginación.
- Filtrado por nivel, origen y búsqueda en descripción.
- Visualización de detalles JSON en modal.
- Verificar: Analizar archivos existentes en
- Paso 32: Crear
test_telegram_connection.php(Idéntico a Discord, Paso 19)- Verificar: Analizar
telegram/test_connection.php. - Implementar: Crear un script simple para probar la conexión con la API de Telegram.
- Verificación de token.
- Conexión con Telegram API (
getMe,getUpdates). - Gestión de Webhook (set, delete, getInfo).
- Verificar: Analizar
- Paso 33: Crear webhook de Telegram (Idéntico a Discord, Paso 20)
- Verificar: Analizar archivos existentes en
/telegram/webhook/. - Implementar: Desarrollar la lógica del webhook para manejar mensajes, comandos y registros.
- Verificación de
secret_tokendel webhook. - Registro de destinatarios que interactúan.
- Manejo de
MESSAGE_CREATE(mensajes entrantes). - Manejo de comandos de texto (
/start,/help, comandos deplantillas_telegram,#grupo). - Manejo de
CALLBACK_QUERY(botones inline) para selección de idioma. - Detección de idioma y traducción de respuestas del bot.
- Implementar: Envío de respuestas con imágenes y división de mensajes largos.
- Integrar: Sincronización con el webhook.
- Verificación de
- Verificar: Analizar archivos existentes en
🟥 FASE 5 — Módulos Compartidos Finales
- Paso 34: Implementar permisos por rol
- Verificar: Analizar tablas
rolesypermisosenshared/database/schema.sql. - Definir Permisos Específicos: Crear una lista de permisos necesarios para cada acción (crear, editar, eliminar, etc.) en módulos clave.
- Crear Helper de Permisos: Implementar una función centralizada
hasPermission($permissionName, $platform = 'global')enshared/utils/helpers.php. - Integrar Permisos en APIs: Añadir verificaciones de permisos al inicio de cada endpoint de API crítico.
- Integrar Permisos en Vistas: Ocultar/mostrar elementos de UI (botones, enlaces) según los permisos del usuario.
- Verificar: Analizar tablas
- Paso 35: Implementar traducción completa del sistema
- Crear Archivos de Traducción: Crear archivos JSON (
es.json,en.json,pt.json) enshared/translations/. - Crear Helper de Traducción: Implementar una función
__($key)enshared/translations/manager.php. - Refactorizar Vistas: Reemplazar todas las cadenas de texto hardcoded con la función
__().
- Crear Archivos de Traducción: Crear archivos JSON (
- Paso 36: Definir notificaciones internas
- Crear sistema de notificaciones: Implementar un sistema de notificaciones "toast" no intrusivas.
- Integrar notificaciones: Reemplazar
alert()con el nuevo sistema en toda la aplicación.
- Paso 37: Pruebas de todo el sistema
🟩 FASE 6 — Documentación
- Paso 38: Documentar el proyecto