Plataforma de juegos diseñada para transformar el estudio.
Plataforma web de juegos educativos diseñada para transformar el estudio en una experiencia más dinámica, interactiva y entretenida. Permite crear, administrar y resolver distintos tipos de desafíos adaptados a diversas áreas de conocimiento, niveles de dificultad y modalidades de juego.
Crear una herramienta que haga del aprendizaje una experiencia más atractiva y motivadora, brindando una alternativa a los métodos tradicionales de estudio. Al mismo tiempo, demostrar la implementación de una arquitectura web moderna, escalable y mantenible mediante el desarrollo de una aplicación completa de principio a fin. 1
La plataforma combina una interfaz web intuitiva con una API REST y una base de datos relacional para gestionar juegos, preguntas, configuraciones e historial de partidas. Gracias a sus diferentes modalidades, filtros personalizables y registro de resultados, ofrece una experiencia flexible que se adapta a distintos contenidos y necesidades de aprendizaje. Además, su arquitectura basada en Docker facilita la instalación, ejecución y mantenimiento del sistema en cualquier entorno.
- Administrador:
http://localhost/pages/admin/index.html - Jugador:
http://localhost(equivalente ahttp://localhost:80cuando se utiliza el puerto HTTP por defecto) o enhttp://localhost:<puerto_configurado>si se configuró un puerto diferente.
flowchart LR
U["Usuario"]
subgraph Host["Máquina host"]
SRC["Código fuente"]
ENV[".env"]
DATA["./data<br/>Datos persistentes"]
SCHEMA["schema.sql<br/>Estructura inicial"]
SEEDS["seeds.sql<br/>Datos iniciales"]
subgraph Docker["Docker y Docker Compose"]
direction LR
subgraph Images["Imágenes"]
IF["Imagen Frontend"]
IB["Imagen Backend"]
IDB["Imagen PostgreSQL oficial"]
end
subgraph Containers["Contenedores"]
direction LR
subgraph CF["Contenedor Frontend"]
N["Nginx<br/>Servidor web"]
F["HTML<br/>CSS<br/>JavaScript"]
N -->|"sirve archivos"| F
end
subgraph CB["Contenedor Backend"]
B["REST API<br/>Node.js + Express.js<br/>Servidor HTTP de la REST API"]
CORS["CORS<br/>Permite peticiones del frontend"]
CORS -.-> B
end
subgraph CDB["Contenedor Base de Datos"]
DB["PostgreSQL<br/>Servidor de base de datos"]
end
end
IF --> CF
IB --> CB
IDB --> CDB
F -->|"fetch() envía peticiones usando HTTP"| B
B -->|"consultas SQL mediante pg"| DB
end
SRC -->|"build"| IF
SRC -->|"build"| IB
ENV -.->|"configura"| CB
ENV -.->|"configura"| CDB
DATA <-->|"persistencia"| DB
SCHEMA -->|"inicializa tablas"| DB
SEEDS -->|"inicializa datos"| DB
end
U -->|"navegador"| N
Para instalar, ejecutar y acceder al proyecto (localmente).
Clonar el repositorio:
git clone https://github.com/iwallberg-fiuba/TPFINALIDS.gitPara construir las imágenes de Docker, crear los contenedores e iniciarlos: 10
make buildUna vez iniciados los contenedores, el frontend estará disponible en los links detallados en la sección Demo.
Las contribuciones al código del proyecto permanecerán cerradas hasta la aprobación de la entrega del mismo, prevista, si todo sale según lo esperado, para fines de julio de 2026.
Este proyecto está licenciado bajo la WGG Source-Available License v1.0 (sí, la acabamos de inventar y el archivo con su contenido se encuentra en el repositorio).
Si deseás apoyar a la Universidad de Buenos Aires (UBA), nos alegra saber que estarás contribuyendo a la institución que hizo posible este proyecto. Podés hacerlo a través de la Fundación 1821.
- Universidad de Buenos Aires (UBA).
- Facultad de Ingeniería de la Universidad de Buenos Aires (FIUBA).
- Los docentes y ayudantes de la Cátedra Camejo de la materia TB022 – Introducción al Desarrollo de Software.
- Excompañera Camila Basaldua.
- Las herramientas de Inteligencia Artificial. 11
Estudiantes de la carrera Ingeniería en Informática en la Facultad de Ingeniería de la Universidad de Buenos Aires (FIUBA).
Footnotes
-
Para más información, revisar la consgina del trabajo y el siguiente link (acceso restringido). ↩
-
Entorno de ejecución de JavaScript del lado del servidor. ↩
-
Framework para crear servidores HTTP y REST API. ↩
-
Sistema de gestión de bases de datos relacional. ↩
-
Plataforma para contenerizar aplicaciones y estandarizar entornos de desarrollo y ejecución. ↩
-
Servidor web utilizado para servir el frontend estático. ↩
-
Librería para conectar aplicaciones Node.js con PostgreSQL. ↩
-
Librería para cargar variables de entorno desde un archivo
.env. ↩ -
Middleware que permite controlar qué orígenes pueden acceder a la API mediante peticiones entre distintos dominios. ↩
-
Puede ser necesario abrir la aplicación Docker Desktop antes y dejarla en segundo plano. ↩
-
Las herramientas de Inteligencia Artificial utilizadas durante el desarrollo, por agilizar tareas repetitivas, responder dudas ridículamente específicas a cualquier hora, explicar el uso de herramientas de testeo como Postman y colaborar en la definición de nomenclaturas, convenciones de estilo y parte de la documentación del proyecto. Cabe aclarar que su uso fue autorizado por los docentes, siempre que se limitara a tareas de consulta, aprendizaje y asistencia técnica, sin sustituir el diseño, la implementación ni la toma de decisiones realizadas por los autores del proyecto. ↩












