|
|
há 4 semanas atrás | |
|---|---|---|
| .claude | há 4 semanas atrás | |
| internal | há 4 semanas atrás | |
| user_platform | há 4 semanas atrás | |
| .env | há 4 semanas atrás | |
| .gitignore | há 4 semanas atrás | |
| README.md | há 4 semanas atrás | |
| compose.yaml | há 4 semanas atrás |
Este repositorio contiene el código correspondiente al proyecto final desarrollado por un equipo de estudiantes de segundo curso del Grado en Ciencia de Datos. El objetivo de este trabajo es la creación de una plataforma educativa orientada a reducir la brecha digital, integrando conceptos de analítica de datos, desarrollo backend y despliegue de software.
Es importante destacar que todos los componentes de este proyecto han sido desarrollados manualmente desde cero, con un enfoque académico y técnico orientado a consolidar los conocimientos adquiridos durante el curso:
El código está estructurado de la siguiente manera para separar responsabilidades y facilitar su mantenimiento:
Ubicada en el directorio schemas, contiene los archivos .sql necesarios para la inicialización y estructuración de la base de datos relacional (usuarios, entregas, calificaciones, etc.). Se optó por PostgreSQL debido a su fiabilidad en entornos de producción y su capacidad para manejar estructuras complejas propias de la ciencia de datos.
El directorio src/backend contiene el servidor principal. Se utilizó Python y el framework FastAPI por su eficiencia y tipado estático, cualidades fundamentales para proyectos de datos.
models.py: Encargado del mapeo objeto-relacional (ORM) mediante SQLAlchemy.routers: Contiene la lógica de negocio dividida por dominios. Incluye un módulo de autenticación (JWT y encriptación bcrypt) y módulos de gestión académica.En src/frontend se aloja la interfaz de usuario. Con el fin de minimizar dependencias externas y demostrar un control sólido sobre las tecnologías web, se desarrolló como una Single Page Application (SPA) utilizando únicamente JavaScript puro (Vanilla JS). Las peticiones asíncronas al backend permiten actualizar la interfaz de manera dinámica sin recargar el navegador.
Para asegurar que el proyecto se ejecute de manera idéntica en cualquier sistema, se ha empaquetado en contenedores Docker. El archivo compose.yaml define la red interna, las variables de entorno y los volúmenes persistentes tanto para la base de datos como para el servidor de FastAPI.
Para iniciar el proyecto en un entorno local, es necesario disponer de Docker. El despliegue automatizado se realiza ejecutando el siguiente comando en la raíz del repositorio:
docker compose up --build -d user_backend
Una vez finalizada la construcción de las imágenes y levantados los contenedores, la aplicación estará disponible en el navegador web accediendo a la dirección http://localhost:8001.