metadata
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í) |
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.