--- title: Makerpage emoji: 🛠️ colorFrom: blue colorTo: purple sdk: docker app_file: app/main.py pinned: false --- # 🛠️ Makerpage - Sistema de Gestión Maker Space Aplicación web para gestionar préstamos de herramientas y proyectos en un Maker Space, con integración de Telegram para notificaciones y aprobaciones. ## 🌟 Características - 📝 **Registro y autenticación de usuarios** con aprobación por administrador - 🔐 **Recuperación de contraseña** vía email - 🛠️ **Sistema de préstamos** de herramientas y dispositivos - 📱 **Integración con Telegram** para notificaciones y aprobaciones en tiempo real - 📊 **Gestión de proyectos GitLab** - 💾 **Persistencia de datos** con Hugging Face Datasets ## 🚀 Configuración ### 1. Configurar Variables de Entorno En **Settings → Repository secrets**, configura las siguientes variables: #### Variables Obligatorias | Variable | Descripción | |----------|-------------| | `SECRET_KEY` | Clave secreta de Flask (genera con: `python3 -c "import secrets; print(secrets.token_hex(32))"`) | #### Variables para Persistencia (Hugging Face Datasets) | Variable | Descripción | |----------|-------------| | `HF_TOKEN` | Token de Hugging Face con permisos de escritura ([crear aquí](https://huggingface.co/settings/tokens)) | | `HF_DATASET_USERS` | Nombre del dataset para usuarios (ej: `tu-usuario/makerpage-users`) | | `HF_DATASET_LOANS` | Nombre del dataset para préstamos (ej: `tu-usuario/makerpage-loans`) | > **Nota:** Los datasets deben ser **privados** (contienen contraseñas hasheadas). Se crearán automáticamente al guardar el primer registro. #### Variables Opcionales (Funcionalidades Adicionales) | Variable | Descripción | |----------|-------------| | `TELEGRAM_TOKEN` | Token de tu bot de Telegram | | `TELEGRAM_CHAT_ID` | ID del chat para notificaciones | | `GOOGLE_PROXY_URL` | URL del proxy de Google Script | | `GITLAB_TOKEN` | Token de acceso personal de GitLab | | `GITLAB_GROUP_ID` | ID del grupo de GitLab | | `RESEND_API_KEY` | API key de Resend para emails | | `FROM_EMAIL` | Email remitente verificado en Resend | ### 2. Desplegar El Space se desplegará automáticamente al hacer push al repositorio. ## 💾 Persistencia de Datos La aplicación usa **Hugging Face Datasets** para almacenamiento persistente: - ✅ **Con HF_TOKEN configurado:** Los datos se guardan en datasets privados de HF y persisten permanentemente - ⚠️ **Sin HF_TOKEN:** Los datos se guardan localmente en `/app/data` (temporales, se pierden al reiniciar) **Recomendación:** Configura `HF_TOKEN`, `HF_DATASET_USERS` y `HF_DATASET_LOANS` para garantizar persistencia en producción. ## 🔧 Tecnologías - **Backend:** Flask + Flask-SocketIO - **Autenticación:** Flask-Login - **Notificaciones:** Telegram Bot API - **Email:** Resend API - **Integración:** GitLab API - **Persistencia:** Hugging Face Datasets (con fallback a JSON local) - **Despliegue:** Docker + Gunicorn + Eventlet ## 📝 Licencia Este proyecto es de código abierto.