YOVI is a full-stack strategy game built as a monorepo. It combines a React frontend, a Node.js users service, a Rust game engine, and MongoDB-based local infrastructure.
| Contributor |
Git Account |
Role |
| Tobias Navrat |
@Th0be |
Frontend |
| Ahmet Bilal Yazıcıoğlu |
@bilalyazicioglu |
Game Logic & Bots |
| Ignacio Hoyos Diego |
@nacho50900 |
Backend |
| Alejandro de San Claudio Mesa |
@UO300896 |
Database and DevOps |
yovi_en1b/
├── webapp/ React + Vite + TypeScript + E2E tests
├── users/ Node.js + Express + MongoDB
├── gamey/ Rust game engine & bot
├── mongo-init/ JavaScript + MongoDB
├── docs/ Arc42 architecture docs
└── load-tests/ Artillery
| Feature |
Description |
| 🔐 Authentication |
Register and log in securely to keep track about your games |
| 💥 Game Variants |
Play special modes such as the one with explosion |
| 🗺️ Board Sizes |
Choose between different board sizes for each match |
| 🧑🤝🧑 vs Player |
Play locally against another player on the same device |
| 🤖 vs Bots |
Challenge bots powered by several strategies |
| 🕘 Game History |
Browse previous games and review what happened |
| 🏆 Leaderboard |
Compare results and rankings with other players |
| 📊 Statistics |
Track wins, losses, and performance over time |
docker-compose up --build
# Backend
cd users && npm install && npm start
# Frontend
cd webapp && npm install && npm run dev
# Game engine
cd gamey && cargo run
| Command |
Description |
npm run dev |
Start dev server |
npm test |
Run unit tests |
npm run test:e2e |
Run end-to-end tests |
npm run start:all |
Start webapp + users together |
| Command |
Description |
npm start |
Start the service |
npm test |
Run tests |
npm run test:coverage |
Run tests with coverage report |
| Command |
Description |
cargo build |
Build the engine |
cargo test |
Run tests |
cargo run |
Run the engine |
cargo doc |
Generate docs |
| Command |
Description |
docker-compose up -d mongodb |
Start the database in the background |
docker-compose stop mongodb |
Stop the database without deleting the instance |
docker-compose down |
Shut the environment down |
- 📖 Architecture and documentation:
docs/
- 🧪 Service-specific setup: see the README files in each subproject
Built with ❤️ at the University of Oviedo — ASW 2025/26