| Name | UO | Github username |
|---|---|---|
| Alejandro Aloso Bayón | UO300216 | alonsobayonalejandro-ctrl |
| Antonio Postigo de Diego | UO265373 | tonipdd |
| Guillermo Gil Naves | UO300475 | UO300475 |
| Ignacio Torre Suárez | UO245469 | NachoTS |
| Pedro Díaz González | UO294790 | Gedepe |
El proyecto se divide en cuatro subdirectorios principales:
webapp/: Frontend de la aplicación hecho en React + TypeScript con Vite.users/: Backend de gestión de usuarios hecho en Express.jsgamey/: Backend del juego hecho en Rust.database/: archivos necesarios para lanzar el contenedor de la base de datos MySQL.docs/: Documentación arquitectónica usando la plantilla arc42.
webapp es una single-page application (SPA) creada con Vite y React.
src/App.tsx: Componente principal de la aplicación.package.json: Contiene los scripts necesarios para ejecutar, compilar y probar webapp.vite.config.ts: Archivo de configuración para Vite.Dockerfile: Archivo que define la imagen de Docker para webapp.
users es una API implementada usando Node.js and Express.
users-service.js: Archivo principal deusersdesde donde se lanzará el módulo.package.json: Contiene los scripts necesarios para iniciar y probar el servicio.Dockerfile: Archivo que define la imagen de Docker para users.
gamey es el módulo del juego con soporte para bots hecho con Rust y Cargo.
src/main.rs: Punto de entrada principal de la aplicación.src/lib.rs: Biblioteca del motor de juego.src/bot/: Registro e implementación de bots.src/core/: Lógica base del juego, incluyendo acciones, coordenadas, estado y gestión de jugadores.src/notation/: Notación del juego (YEN, YGN).Cargo.toml: Dependencias y metadatos del módulo.Dockerfile: Archivo que define la imagen de Docker para gamey.
database es el submódulo que contiene la información necesaria para arrancar la base de datos MySQL de users.
Dockerfile: Archivo que define la imagen de MySQL para gamey.
Se puede ejecutar el proyecto en local usando Docker o sin Docker. Si da problemas con Docker, probar a ejecutarlo de la otra forma.
- Base de datos: sobre el directorio base: lanzar el contenedor de la base de datos con
docker-compose -f docker-compose.yml up -d database - Módulo gamey: sobre el directorio
gamey: ejecutarcargo run -- --mode server --port 4000 - Módulo users: sobre el directorio
users: ejecutarnpm run start - Módulo webapp: sobre el directorio
webapp: ejecutarnpm run dev
Finalmente, entrar en http://localhost:5173/.
NOTA: recordar ejecutar npm install en users y webapp por si hay alguna dependencia nueva pendiente de instalar.
NOTA: como arreglo temporal para que arranque la base de datos en local, cambiar en users/config/db.js, línea 7, el valor de la IP por 127.0.0.1. No subir este cambio a master.
This is the easiest way to get the project running. You need to have Docker and Docker Compose installed.
- Build and run the containers: From the root directory of the project, run:
docker-compose up --buildThis command will build the Docker images for both the webapp and users services and start them.
2.Access the application:
- Web application: http://localhost
- User service API: http://localhost:3000
- Gamey API: http://localhost:4000
Cada módulo posee su conjunto de scripts. A continuación se listan los scripts de cada módulo:
npm run dev: Starts the development server for the webapp.npm test: Runs the unit tests.npm run test:e2e: Runs the end-to-end tests.npm run start:all: A convenience script to start both thewebappand theusersservice concurrently.
npm start: Starts the user service.npm test: Runs the tests for the service.
cargo build: Builds the gamey application.cargo test: Runs the unit tests.cargo run: Runs the gamey application.cargo doc: Generates documentation for the GameY engine application