Sistema web profesional para el registro y gestión del uso de salas de computación en instituciones educativas. Desarrollado con Flask, SQLite y autenticación Google OAuth, permite a los profesores registrar sesiones de clases, gestionar recursos utilizados y generar reportes automáticos por correo electrónico.
- Autenticación Google OAuth 2.0: Acceso seguro con cualquier cuenta de Google autorizada
- Sesiones seguras: Manejo robusto de sesiones con Flask
- Validación de datos: Verificación completa de todos los campos de entrada
- Logs detallados: Registro completo de actividades y errores
- Base de datos SQLite: Almacenamiento robusto y escalable sin configuración de servidor
- Migración automática: Actualización automática de esquemas de base de datos
- Respaldo múltiple: Almacenamiento en SQLite, JSON y CSV
- Integridad de datos: Validaciones y restricciones a nivel de aplicación
- Registro de sesiones: Formulario intuitivo para capturar información de clases
- Gestión de correos: Sistema de destinatarios predeterminados con un clic
- Búsqueda avanzada: Filtros por rango de fechas y criterios múltiples
- Panel de administración: Visualización completa de todos los registros
- Exportación de datos: Generación de reportes en PDF y Word
- Sistema de correos: Envío automático de notificaciones con documentos adjuntos
- Diseño responsive: Optimizado para dispositivos móviles y escritorio
- Bootstrap 5: Framework moderno para interfaz profesional
- Animaciones fluidas: Transiciones y efectos visuales mejorados
- Iconos Font Awesome: Iconografía consistente y profesional
- Tema personalizado: Colores corporativos y diseño institucional
- Framework: Python Flask 3.1.1
- Base de datos: SQLite con migración automática
- Autenticación: Flask-Dance con Google OAuth 2.0
- Correos: Flask-Mail con SMTP Gmail
- PDFs: ReportLab para generación de documentos
- Validación: Validaciones personalizadas en Python
- HTML5: Estructura semántica moderna
- CSS3: Estilos personalizados con variables CSS
- JavaScript: Funcionalidad interactiva y validaciones del lado cliente
- Bootstrap 5: Framework CSS responsive
- Font Awesome 6: Iconografía profesional
Tabla: usuarios
CREATE TABLE usuarios (
id INTEGER PRIMARY KEY AUTOINCREMENT,
correo TEXT UNIQUE NOT NULL,
nombre TEXT NOT NULL,
fecha_creacion TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);Tabla: bitacora
CREATE TABLE bitacora (
id INTEGER PRIMARY KEY AUTOINCREMENT,
fecha TEXT NOT NULL,
curso TEXT NOT NULL,
asignatura TEXT NOT NULL,
objetivo TEXT NOT NULL,
recursos TEXT NOT NULL,
observaciones TEXT NOT NULL,
correo TEXT NOT NULL,
destinatario TEXT NOT NULL,
fecha_creacion TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
usuario_id TEXT NOT NULL DEFAULT "usuario_ejemplo"
);- Relación lógica: Un usuario puede crear múltiples registros de bitácora (1:N)
- Implementación: LEFT JOIN en consultas SQL para mantener compatibilidad
- Integridad: Validaciones a nivel de aplicación
- Sin configuración: No requiere servidor de base de datos separado
- Portabilidad: Un solo archivo contiene toda la información
- Robustez: Maneja miles de registros sin problemas de rendimiento
- Seguridad: Transacciones ACID y integridad de datos
- Escalabilidad: Optimizado para aplicaciones web educativas
- Python 3.8 o superior
- pip (gestor de paquetes de Python)
- Navegador web moderno
- Conexión a internet (para autenticación OAuth)
Para Windows:
- Descargar o clonar el proyecto
- Ejecutar
start_bitacora.batcomo administrador - La aplicación se instalará automáticamente con todas las dependencias
- Se creará un acceso directo PWA en el escritorio con icono personalizado
- El sistema está listo para usar sin configuración adicional
Características del Sistema de Instalación:
- ✅ Instalación automática de Python, dependencias y entorno virtual
- ✅ Acceso directo PWA que ejecuta el servidor automáticamente
- ✅ Sin consola visible - Todo funciona en segundo plano
- ✅ Navegador automático - Se abre automáticamente
- ✅ PWA funcional - Se puede instalar como aplicación del navegador
-
Clonar el proyecto
git clone https://github.com/JackStar6677-1/BitacoraAPP.git cd BitacoraAPP -
Crear entorno virtual
python -m venv venv
-
Activar entorno virtual
En Windows:
venv\Scripts\activate
En Linux/Mac:
source venv/bin/activate -
Instalar dependencias
pip install -r requirements.txt
-
Ejecutar la aplicación
python app.py
-
Acceder a la aplicación
Abrir el navegador en:
http://localhost:5000
La aplicación incluye soporte completo para PWA, permitiendo instalarla como una aplicación nativa del navegador:
- ✅ Instalación como app - Se puede instalar desde el navegador
- ✅ Manifest.json - Configuración completa de PWA
- ✅ Iconos personalizados - Logo de la institución
- ✅ Modo standalone - Funciona como aplicación independiente
- ✅ Tema personalizado - Colores corporativos
- Ejecutar
start_bitacora.batpara la instalación inicial - Abrir la aplicación en el navegador
- Buscar el ícono de "Instalar aplicación" en la barra de direcciones
- Hacer clic en "Instalar" para agregar la PWA al escritorio
El sistema incluye un acceso directo inteligente que:
- ✅ Verificación automática - Comprueba si el servidor está corriendo
- ✅ Inicio automático - Ejecuta el servidor si no está activo
- ✅ Sin consola visible - Todo funciona en segundo plano
- ✅ Navegador automático - Se abre automáticamente
- ✅ Instalación completa - Maneja primer inicio y usos posteriores
Usuario → Clic en acceso directo → Verificación de servidor →
Si no está corriendo: Inicia servidor → Abre navegador → PWA funciona
start_bitacora.bat- Instalación inicial y configuracióniniciar_servidor_si_no_existe.bat- Script inteligente de verificacióniniciar_pwa_sin_consola.vbs- Ejecución sin consolastatic/manifest.json- Configuración PWAcrear_acceso_directo.ps1- Generación de acceso directo
La aplicación incluye configuración predeterminada completa:
- Credenciales de Google OAuth ya configuradas
- Configuración de Gmail ya establecida
- Correos predeterminados ya configurados
- Sin necesidad de configuración adicional
Para personalización opcional, crear un archivo config.json:
{
"SECRET_KEY": "tu_clave_secreta",
"MAIL_SERVER": "smtp.gmail.com",
"MAIL_PORT": 587,
"MAIL_USE_TLS": true,
"MAIL_USERNAME": "tu_correo@gmail.com",
"MAIL_PASSWORD": "tu_contraseña_de_aplicacion",
"OAUTH_CLIENT_ID": "tu_client_id",
"OAUTH_CLIENT_SECRET": "tu_client_secret",
"AUTHORIZED_EMAILS": ["correo1@institucion.com", "correo2@institucion.com"],
"DEFAULT_EMAILS": ["admin@institucion.com", "coordinador@institucion.com"]
}- Ejecutar instalación: Hacer doble clic en
start_bitacora.bat - Esperar instalación: El sistema instalará automáticamente todas las dependencias
- Acceso directo creado: Se creará automáticamente un acceso directo en el escritorio
- Aplicación abierta: El navegador se abrirá automáticamente con la aplicación
- Opción 1 - Acceso Directo: Hacer doble clic en "Bitacora de Sala de Computacion.lnk" del escritorio
- Opción 2 - PWA: Hacer doble clic en el acceso directo de la PWA instalada
- Opción 3 - Manual: Ejecutar
start_bitacora.batdirectamente
Nota: El acceso directo verifica automáticamente si el servidor está corriendo y lo inicia si es necesario.
- Acceso inicial
- Abrir la aplicación en el navegador (automático con acceso directo)
- Hacer clic en "Iniciar Sesión con Google"
- Autorizar la aplicación con una cuenta de Google autorizada
- Crear un registro
- Completar el formulario con la información de la sesión
- Especificar los destinatarios del correo
- Hacer clic en "Guardar y Enviar"
- Administrar registros
- Usar el menú desplegable para acceder a "Ver Registros"
- Visualizar todos los registros en formato de tabla
- Ver estadísticas de uso y métricas importantes
- Buscar registros
- Acceder a "Buscar" desde el menú
- Seleccionar rango de fechas
- Hacer clic en "Buscar" para filtrar resultados
- Gestionar correos predeterminados
- Acceder a "Gestionar Correos" desde el menú
- Agregar nuevos correos frecuentes
- Eliminar correos que ya no se usen
- Envío automático: Cada registro genera un correo con PDF adjunto
- Formato profesional: Mensajes estructurados con información completa
- Múltiples destinatarios: Soporte para listas de correos separados por comas
- Documentos adjuntos: Generación automática de PDFs con formato institucional
- Registro automático: Los usuarios se crean automáticamente al iniciar sesión
- Historial completo: Seguimiento de todas las actividades por usuario
- Sesiones seguras: Manejo robusto de autenticación y autorización
- Múltiples formatos: SQLite, JSON y CSV
- Respaldo automático: Cada registro se guarda en los tres formatos
- Migración fácil: Datos portables entre diferentes instalaciones
BitacoraAPP/
├── app.py # Aplicación principal Flask
├── app.db # Base de datos SQLite
├── requirements.txt # Dependencias de Python
├── README.md # Documentación principal
├── config_inicio.json # Configuración de primer inicio
├── start_bitacora.bat # Script de instalación automática
├── iniciar_servidor_si_no_existe.bat # Script inteligente de verificación
├── iniciar_pwa_sin_consola.vbs # Ejecución PWA sin consola
├── crear_acceso_directo.ps1 # Generación de acceso directo
├── crear_acceso_directo_simple.bat # Método alternativo de acceso directo
├── static/ # Archivos estáticos
│ ├── css/
│ │ └── styles.css # Estilos personalizados
│ ├── imagenes/
│ │ ├── logo.jpg # Logo de la aplicación
│ │ └── logo2.ico # Icono para acceso directo
│ └── manifest.json # Configuración PWA
├── templates/ # Plantillas HTML
│ ├── login.html # Página de login
│ ├── formulario.html # Formulario principal
│ ├── admin.html # Panel de administración
│ ├── buscar.html # Página de búsqueda
│ └── correos.html # Gestión de correos
├── docs/ # Documentación técnica
│ └── ERD/ # Modelo de base de datos
│ ├── ERD.mmd # Diagrama entidad-relación
│ ├── ERD.png # Imagen del diagrama
│ ├── ERD.svg # Vector del diagrama
│ ├── schema.sqlite.ddl.sql # DDL de la base de datos
│ └── README-ERD.md # Documentación del modelo
└── venv/ # Entorno virtual
-
Instalar Gunicorn
pip install gunicorn
-
Ejecutar en producción
gunicorn -w 4 -b 0.0.0.0:8000 app:app
Para producción, configurar las siguientes variables:
FLASK_ENV=productionSECRET_KEY=clave_secreta_muy_seguraDATABASE_URL=sqlite:///app.db
- HTTPS obligatorio: Usar certificado SSL válido
- Credenciales seguras: Cambiar todas las credenciales predeterminadas
- Backup regular: Respaldar la base de datos regularmente
- Monitoreo: Implementar logs de acceso y errores
- Respaldos regulares: Exportar base de datos SQLite
- Limpieza de logs: Rotar archivos de log grandes
- Actualizaciones: Mantener dependencias actualizadas
- Monitoreo: Verificar funcionamiento del sistema de correos
- Error de autenticación: Verificar credenciales OAuth
- Correos no enviados: Verificar configuración SMTP
- Base de datos corrupta: Restaurar desde respaldo
- Rendimiento lento: Verificar índices de base de datos
- Logs de aplicación: Revisar salida de consola
- Logs de base de datos: Verificar integridad con PRAGMA
- Logs de correos: Verificar configuración SMTP
Este proyecto está bajo la Licencia MIT. Ver el archivo LICENSE para más detalles.
Las contribuciones son bienvenidas. Por favor:
- Fork el proyecto
- Crear una rama para tu feature (
git checkout -b feature/AmazingFeature) - Commit tus cambios (
git commit -m 'Add some AmazingFeature') - Push a la rama (
git push origin feature/AmazingFeature) - Abrir un Pull Request
Para soporte técnico o preguntas:
- Crear un issue en el repositorio
- Contactar al administrador del sistema
- Revisar la documentación de Flask y las dependencias utilizadas
- Progressive Web App (PWA) completa con manifest.json
- Acceso directo inteligente que verifica y ejecuta servidor automáticamente
- Sistema sin consola - Todo funciona en segundo plano
- Navegador automático - Se abre automáticamente
- Instalación PWA - Se puede instalar como aplicación del navegador
- Verificación de servidor - Comprueba si está corriendo antes de abrir
- Scripts robustos - PowerShell y VBS para máxima compatibilidad
- Meta tags PWA - Configuración completa en todos los templates
- Iconos personalizados - Logo de la institución en PWA
- Base de datos SQLite profesional
- Interfaz moderna con Bootstrap 5
- Panel de administración completo
- Sistema de búsqueda avanzada
- Sistema de correos predeterminados
- Acceso sin restricciones de lista blanca
- Validaciones robustas
- Mejor manejo de errores
- Diseño responsive
- Animaciones y efectos visuales
- Documentación completa
- Script de instalación automática
Desarrollado para instituciones educativas
Sistema de Bitácora de Sala de Computación - Gestión profesional del uso de recursos tecnológicos educativos