Skip to content

BRUMILO/SGC-PUCESA

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

121 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Sistema de Gestión de Canchas (SGC)

Pontificia Universidad Católica del Ecuador Sede Ambato (PUCESA) Facultad de Ingeniería en Sistemas

Descripción del Proyecto

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.

Alcance Funcional

El sistema abarca los siguientes módulos operativos:

  1. Gestión de Reservas: Visualización de disponibilidad mediante calendario interactivo, solicitud de reservas y validación de horarios.
  2. Administración de Canchas: Catálogo de espacios deportivos (fútbol, básquet, etc.) con gestión de estados.
  3. Control de Mantenimiento: Registro y programación de mantenimientos preventivos y correctivos, bloqueando automáticamente la disponibilidad de los recursos afectados.
  4. Sistema de Sanciones: Módulo para la aplicación y seguimiento de penalizaciones a usuarios por mal uso de las instalaciones.
  5. 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.
  6. Asistente Virtual (Chatbot): Herramienta integrada para resolver consultas frecuentes de los usuarios de manera inmediata.
  7. Gestión de Usuarios: Roles diferenciados (Administrador, Usuario, Conserje) con autenticación segura.

Arquitectura de Software

El sistema ha sido diseñado siguiendo rigurosos estándares de ingeniería de software para asegurar su escalabilidad, seguridad y facilidad de mantenimiento.

Patrón de Diseño: MVC (Modelo-Vista-Controlador)

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

Gestión de Datos: ORM (Object-Relational Mapping)

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.

Stack Tecnológico

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

Estructura del Proyecto

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

Instalación y Despliegue

1. Prerrequisitos

  • Python 3.11 o superior.
  • Servidor MySQL en ejecución.
  • Git instalado.

2. Clonar el Repositorio

git clone \[https://github.com/BRUMILO/BRUMILO-SGC.git\](https://github.com/BRUMILO/BRUMILO-SGC.git)
cd BRUMILO-SGC

3. Configuración del Entorno Virtual

# Crear entorno virtual
python \-m venv venv

\# Activar entorno (Windows)
venv\\Scripts\\activate

\# Activar entorno (Linux/Mac)
source venv/bin/activate

4. Instalación de Dependencias

pip install \-r requirements.txt

5. Variables de Entorno

cp .env.example .env

Edite .env con sus credenciales de base de datos.

6. Inicialización de la Base de Datos

flask db upgrade

7. Ejecución

python run.py

Acceso: http://localhost:5000

Nota: Se creará un usuario administrador por defecto (0000000000) si no existe.

Autores

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

Licencia

Este proyecto se distribuye bajo la Licencia MIT. Consulte el archivo LICENSE para más detalles.

Copyright (c) 2025 BRUMILO.

About

Sistema de Gestión de Canchas

Topics

Resources

License

Stars

1 star

Watchers

0 watching

Forks

Packages

 
 
 

Contributors