Pontificia Universidad Católica del Ecuador Sede Ambato (PUCESA) Facultad de Ingeniería en Sistemas
El Sistema de Gestión de Canchas (SGC) es una solución tecnológica integral diseñada para automatizar y optimizar la administración de los espacios deportivos de la PUCESA. El sistema centraliza el proceso de reservas, control de mantenimientos y gestión de sanciones, reemplazando los procesos manuales por una plataforma web eficiente, escalable y transparente.
El software permite a estudiantes, docentes y personal administrativo interactuar con la disponibilidad de las canchas en tiempo real, garantizando un uso equitativo de los recursos institucionales y proporcionando a las autoridades herramientas de reporte para la toma de decisiones.
El sistema abarca los siguientes módulos operativos:
- Gestión de Reservas: Visualización de disponibilidad mediante calendario interactivo, solicitud de reservas y validación de horarios.
- Administración de Canchas: Catálogo de espacios deportivos (fútbol, básquet, etc.) con gestión de estados.
- Control de Mantenimiento: Registro y programación de mantenimientos preventivos y correctivos, bloqueando automáticamente la disponibilidad de los recursos afectados.
- Sistema de Sanciones: Módulo para la aplicación y seguimiento de penalizaciones a usuarios por mal uso de las instalaciones.
- Reportes y Estadísticas: Generación automática de informes en formatos PDF y Excel sobre la ocupación, usuarios sancionados e historial de mantenimientos.
- Asistente Virtual (Chatbot): Herramienta integrada para resolver consultas frecuentes de los usuarios de manera inmediata.
- Gestión de Usuarios: Roles diferenciados (Administrador, Usuario, Conserje) con autenticación segura.
El sistema ha sido diseñado siguiendo rigurosos estándares de ingeniería de software para asegurar su escalabilidad, seguridad y facilidad de mantenimiento.
La aplicación implementa el patrón MVC para separar claramente las responsabilidades del código:
- Modelo (Model): Representa la estructura de datos y la lógica de negocio. Se encarga de interactuar con la base de datos, validar reglas y mantener la integridad de la información (ej. Modelos de Usuario, Reserva, Cancha).
- Vista (View): Es la interfaz de usuario con la que interactúan los clientes. Renderiza la información proveniente del controlador de forma visual y captura las acciones del usuario (ej. Plantillas HTML con Jinja2, Formularios).
- Controlador (Controller): Actúa como intermediario. Recibe las peticiones del usuario desde la Vista, procesa la lógica necesaria invocando al Modelo y devuelve la respuesta adecuada (ej. Rutas de Flask, Lógica de validación).
Para la conexión y manipulación de la base de datos MySQL, se utiliza SQLAlchemy como ORM. Esto ofrece ventajas críticas:
- Seguridad: Protege automáticamente contra inyecciones SQL al sanitizar las consultas.
- Abstracción: Permite trabajar con objetos de Python (Clases) en lugar de escribir código SQL puro, facilitando la lectura y mantenimiento.
- Migraciones: Mediante Flask-Migrate, los cambios en la estructura de la base de datos se gestionan como versiones de código, permitiendo actualizaciones y rollbacks seguros sin perder datos.
Backend
- Lenguaje: Python 3.11
- Framework Web: Flask
- ORM: SQLAlchemy
- Autenticación: Flask-Login
- Migraciones: Flask-Migrate (Alembic)
Frontend
- Plantilla Base: AdminLTE 3 (Bootstrap 4)
- Lenguajes: HTML5, CSS3, JavaScript (ES6)
- Componentes Clave: FullCalendar, DataTables, SweetAlert2, Chart.js
Base de Datos
- Motor: MySQL
- Entorno Local Sugerido: Laragon / XAMPP
El código fuente sigue una organización modular dentro del paquete app:
/
├── app/
│ ├── controllers/ \# Lógica de control y negocio (Controller)
│ ├── models/ \# Definición de tablas y relaciones (Model)
│ ├── routes/ \# Definición de endpoints y Blueprints
│ ├── static/ \# Archivos públicos (CSS, JS, Imágenes)
│ ├── templates/ \# Vistas HTML (View)
│ ├── utils/ \# Herramientas auxiliares y decoradores
│ ├── extensions.py \# Inicialización de extensiones
│ └── \_\_init\_\_.py \# Factoría de la aplicación
├── migrations/ \# Historial de migraciones de base de datos
├── .env.example \# Plantilla de variables de entorno
├── .gitignore \# Archivos excluidos del control de versiones
├── config.py \# Clases de configuración (Dev, Prod)
├── LICENSE \# Licencia MIT
├── README.md \# Documentación del proyecto
├── requirements.txt \# Dependencias del proyecto
└── run.py \# Punto de entrada para ejecutar el servidor
- Python 3.11 o superior.
- Servidor MySQL en ejecución.
- Git instalado.
git clone \[https://github.com/BRUMILO/BRUMILO-SGC.git\](https://github.com/BRUMILO/BRUMILO-SGC.git)
cd BRUMILO-SGC
# Crear entorno virtual
python \-m venv venv
\# Activar entorno (Windows)
venv\\Scripts\\activate
\# Activar entorno (Linux/Mac)
source venv/bin/activate
pip install \-r requirements.txt
cp .env.example .env
Edite .env con sus credenciales de base de datos.
flask db upgrade
python run.py
Acceso: http://localhost:5000
Nota: Se creará un usuario administrador por defecto (0000000000) si no existe.
Este software es propiedad intelectual del equipo BRUMILO, desarrollado para la Facultad de Ingeniería en Sistemas de la PUCESA.
- Ing. Joaquín Bermeo - Director del Proyecto / Analista de Requerimientos
- Ing. Emilio Jiménez - Desarrollador Full Stack Senior / DBA / Arquitecto de Software
- Ing. Juan Esteban Vivero - Desarrollador Backend / Comité de Calidad
- Ing. Carlos Ortega - Desarrollador Frontend / Diseño e Interacción
Este proyecto se distribuye bajo la Licencia MIT. Consulte el archivo LICENSE para más detalles.
Copyright (c) 2025 BRUMILO.