Skip to content

Latest commit

 

History

287 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

NotCasinoLogo

NotCasino

Plataforma de juegos diseñada para transformar el estudio.


Descripción

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.


Objetivo

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


Cómo lo logra

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.



Demo


pagina1 pagina2 pagina3

pagina4 pagina5 pagina6

pagina7 pagina8 pagina9

pagina10 pagina11 pagina12


Páginas

  • Administrador: http://localhost/pages/admin/index.html
  • Jugador: http://localhost (equivalente a http://localhost:80 cuando se utiliza el puerto HTTP por defecto) o en http://localhost:<puerto_configurado> si se configuró un puerto diferente.




Stack

Frontend

Backend

Base de datos

Otras herramientas y dependencias



Arquitectura

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
Loading



Guía de instalación

Para instalar, ejecutar y acceder al proyecto (localmente).


1) Instalación

Clonar el repositorio:

git clone https://github.com/iwallberg-fiuba/TPFINALIDS.git

2) Ejecución

Para construir las imágenes de Docker, crear los contenedores e iniciarlos: 10

make build

3) Acceso

Una vez iniciados los contenedores, el frontend estará disponible en los links detallados en la sección Demo.



Contribuciones

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.



Licencia

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



Apoyo

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.



Agradecimientos



Autores


Estudiantes de la carrera Ingeniería en Informática en la Facultad de Ingeniería de la Universidad de Buenos Aires (FIUBA).


Footnotes

  1. Para más información, revisar la consgina del trabajo y el siguiente link (acceso restringido).

  2. Entorno de ejecución de JavaScript del lado del servidor.

  3. Framework para crear servidores HTTP y REST API.

  4. Sistema de gestión de bases de datos relacional.

  5. Plataforma para contenerizar aplicaciones y estandarizar entornos de desarrollo y ejecución.

  6. Servidor web utilizado para servir el frontend estático.

  7. Librería para conectar aplicaciones Node.js con PostgreSQL.

  8. Librería para cargar variables de entorno desde un archivo .env.

  9. Middleware que permite controlar qué orígenes pueden acceder a la API mediante peticiones entre distintos dominios.

  10. Puede ser necesario abrir la aplicación Docker Desktop antes y dejarla en segundo plano.

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

About

Aplicación web desarrollada como trabajo práctico final para la materia TB022 - Introducción al Desarrollo de Software.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Used by

Contributors

Languages