File size: 3,058 Bytes
33ea8ba d058982 1ac174c d058982 33ea8ba d058982 1ac174c d058982 1ac174c d058982 4762ecd d058982 1ac174c d058982 1ac174c d058982 1ac174c d058982 1ac174c d058982 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 |
---
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.
|