Descripción del proyecto
Gestión Centro Cultural es una aplicación web desarrollada en Python con el framework Django como proyecto académico para la asignatura de Arquitectura Software. Su objetivo principal es permitir la gestión organizada de las principales entidades de un centro cultural, incluyendo actividades, usuarios inscritos, monitores y salas.
El proyecto se planteó como una oportunidad para trabajar con el patrón MTV propio de Django, la definición de modelos relacionados, la creación de vistas para operaciones CRUD y la validación de reglas de negocio dentro de una aplicación web estructurada.
Objetivos y alcance del proyecto
El objetivo principal de la aplicación fue construir un sistema funcional para administrar la información básica de un centro cultural. Para ello, se diseñaron entidades que permiten registrar actividades, asignar monitores, gestionar salas y controlar las inscripciones de usuarios.
El alcance del proyecto incluye el desarrollo de una aplicación web con operaciones de alta, consulta, modificación y eliminación de datos, junto con restricciones específicas para mantener la coherencia de la información. Entre estas reglas se contemplan aspectos como la relación entre actividades y salas, la asignación de monitores y la validación de restricciones antes de realizar determinadas operaciones.
Capturas de la aplicación
A continuación se muestran algunas capturas de la aplicación en ejecución, donde se pueden ver distintas pantallas relacionadas con la gestión de actividades, usuarios, monitores y salas.
Tecnologías empleadas
Para el desarrollo de la aplicación se utilizó Python junto con Django, aprovechando las herramientas que ofrece el framework para construir aplicaciones web basadas en modelos, vistas, plantillas y formularios.
- Python: lenguaje principal utilizado para implementar la lógica de la aplicación.
- Django: framework web empleado para estructurar el proyecto, definir modelos, gestionar rutas, vistas y plantillas.
- SQLite: base de datos utilizada durante el desarrollo para almacenar la información de la aplicación.
- HTML: lenguaje usado para construir las plantillas y la estructura visual de las páginas.
- CSS: utilizado para aplicar estilos básicos y mejorar la presentación de la interfaz.
- Django ORM: herramienta empleada para trabajar con la base de datos mediante modelos de Python.
Además, el proyecto permitió trabajar con formularios, validaciones, relaciones entre modelos y pruebas automatizadas para comprobar el correcto funcionamiento de las reglas de negocio definidas.
Arquitectura del proyecto
La aplicación se ha diseñado siguiendo una estructura propia de un proyecto Django, separando la lógica de datos, las vistas, las plantillas y las reglas de negocio. Para representar la organización del sistema se han elaborado varios diagramas basados en el modelo C4.
Estos diagramas permiten visualizar el sistema desde distintos niveles de detalle: primero como parte de su contexto general, después como conjunto de contenedores principales y, finalmente, como una organización interna de componentes.
Resumen del desarrollo
El desarrollo de Gestión Centro Cultural permitió construir una aplicación web basada en entidades relacionadas entre sí. Se definieron modelos para representar actividades, usuarios inscritos, monitores y salas, estableciendo relaciones que permiten reflejar el funcionamiento básico de un centro cultural.
Uno de los aspectos más importantes del proyecto fue la definición de restricciones y reglas de negocio. Por ejemplo, se contemplaron validaciones para evitar incoherencias en la asignación de salas o monitores, así como restricciones relacionadas con la eliminación de entidades que todavía están asociadas a otros elementos del sistema.
También se trabajó con pruebas automatizadas para comprobar que las relaciones entre entidades y las validaciones principales funcionaban correctamente. Esto permitió reforzar la fiabilidad de la aplicación y comprobar que los casos principales del dominio estaban cubiertos.
En conjunto, este proyecto sirvió para consolidar conocimientos de desarrollo web con Django, especialmente en la creación de modelos, relaciones, formularios, vistas, plantillas, validaciones y tests. Además, permitió aplicar una estructura organizada para resolver un caso práctico de gestión de información dentro de un contexto académico.

