# Sistema de Gestión de Contenedor Ibiza Aplicación web integral para la gestión automatizada de rotaciones de turnos, horarios y notificaciones para el contenedor de Ibiza. ## 🚀 Características Principales * **Gestión de Rotaciones Automatizada**: Generación automática de turnos semanales basada en un "Orden Maestro" personalizable. * **Roles de Usuario**: Sistema de permisos granular (Administrador, Coordinador, Ayudante). * **Bot de Telegram Integrado**: * Consultas interactivas (Itinerario, Horarios, PDF) mediante botones. * Búsqueda de turnos por nombre natural. * Gestión de Webhook desde panel administrativo. * **Generación de PDF**: Reportes descargables con la programación completa. * **Interfaz Robusta**: Diseño responsive, drag-and-drop para reordenar turnos. * **Docker Ready**: Preparado para despliegue en CasaOS, ZimaOS o Portainer. ## 📋 Requisitos * Docker y Docker Compose * Servidor MySQL/MariaDB externo (o en otro contenedor) ## 🛠️ Instalación y Despliegue ### Opción A: Docker Compose / Portainer 1. Clona el repositorio. 2. Construye la imagen manualmente o usa el script interactivo: ```bash ./scripts/build_push.sh ``` 3. Ejecuta con las variables de entorno necesarias (ver `contenedor.yaml` como ejemplo). ### Actualización de Imagen (Registry Privado) Para generar una nueva versión y subirla a tu registro (`10.10.4.3:5000`): ```bash ./scripts/build_push.sh ``` El script solicitará la versión (tag) y se encargará del build y el push automáticamente. ### Opción B: CasaOS / ZimaOS 1. Utiliza la función de "Importar" y selecciona el archivo `contenedor.yaml`. 2. Ajusta las variables de entorno en la interfaz antes de finalizar. ## ⚙️ Variables de Entorno | Variable | Descripción | Ejemplo | |----------|-------------|---------| | `DB_HOST` | Host de la base de datos (IP:Puerto) | `10.10.4.17:3306` | | `DB_NAME` | Nombre de la base de datos | `contenedor_ibiza` | | `DB_USER` | Usuario de MySQL | `usuario` | | `DB_PASS` | Contraseña de MySQL | `password` | | `SITE_URL` | URL pública de la aplicación | `https://tu-dominio.com` | | `TELEGRAM_BOT_TOKEN` | Token del Bot de Telegram | `123456:ABC-DEF...` | | `TIMEZONE` | Zona horaria (PHP) | `America/Mexico_City` | ## 📖 Manual de Uso Rápido ### 1. Administrador * **Gestión de Usuarios**: Crea y edita cuentas. Asigna roles de Coordinador o Ayudante. * **Telegram**: Configura el Webhook del bot con un solo clic desde el menú "Telegram". * **Rotaciones**: Puede regenerar todo el calendario si es necesario. ### 2. Coordinador * **Reorganizar**: Usa la herramienta "Reorganizar Orden" (drag & drop) para cambiar quién sigue a quién en la rotación permanente. * **Horarios**: Modifica las horas de apertura/cierre de cada día. ### 3. Ayudante / Usuario * Consulta su turno en el Dashboard. * Descarga el PDF de rotaciones. * Interactúa con el Bot de Telegram para consultar info rápida. ## 🤖 Comandos del Bot El bot cuenta con un menú interactivo, pero también reconoce: * `/start` o `/menu`: Muestra los botones. * *(Escribir nombre)*: Busca turnos futuros para esa persona (ej: "Ana"). * `/tabla`: Muestra el listado de próximas semanas. * `/pdf`: Envía el documento PDF. --- Desarrollado para Condominio Ibiza.