Makerpage / README.md
Edoruin's picture
password recuperation scripts
1ac174c
---
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.