A server for Yakamon
Find a file
2026-04-24 21:03:48 +02:00
database Submission exercises-database-c762926 2026-02-12 18:07:53 +01:00
endpoints models and archi 2026-02-12 19:44:18 +01:00
yakamon tar dur, jws demotivant 2026-04-04 22:25:16 +02:00
.gitignore models and archi 2026-02-12 19:44:18 +01:00
README.md Added README 2026-04-24 21:03:48 +02:00

JWS

Note

This is a school project, therefore it probably won't interest you if you are looking for something useful.

Overview

JWS stands for Java Web Services and as its name doesn't suggest at all, it's basically a web server for a a pokemon-like game. It's written in Java and built onto Quarkus and Jakarta, providing a REST API with strict server-side rules like cooldowns and cheating prevention.

Architecture

Note

Source code is located inside the yakamon folder, both others are school requirements and aren't important

Each layer is strictly separated and can only communicate via to the one directly below or above it via converters.

Presentation Layer (REST & DTOs)

  • located at yakamon/jws/yakamon/src/main/java/fr/epita/assistants/yakamon/presentation
  • Handled by JAX-RS (Jakarta RESTful Web Services).
  • Exposes standard HTTP endpoints (/player, /move, /yakadex, etc.). Full API specification can be found inside yakamon/src/main/resources/openapi.yaml
  • Implements strict Data Transfer Objects (DTOs) for both Requests and Responses to ensure the internal database models are never exposed directly to the client.

Business Logic Layer (Services)

  • located at yakamon/jws/yakamon/src/main/java/fr/epita/assistants/yakamon/domain
  • Acts as the brain of the application.
  • Implements complex game rules: validating if a target tile is walkable based on the terrain type, calculating cooldowns between moves, and managing creature capture probabilities.
  • Converters are used to translate Entities from the Data Layer into DTOs for the Presentation Layer.

Data Access Layer (Hibernate ORM)

  • located at yakamon/jws/yakamon/src/main/java/fr/epita/assistants/yakamon/data
  • Manages persistence using Hibernate ORM with the Active Record / Repository pattern.
  • Defines relational entities (Player, Game, Yakamon, Item) mapped to a PostgreSQL database.