A .NET Web API that implements the game logic for Code Hunting Games — a treasure hunt game where teams of players compete by reaching physical locations, scanning QR codes, and solving coding puzzles.
This project is a modern re-implementation of the game engine originally built as a Telegram bot in PHP (CodeMOOC/CodeWeek-TreasureHuntBot). By extracting the game logic into a standalone API, it enables a variety of game clients (Telegram bots, web apps, mobile apps) to share the same backend.
├── src/
│ ├── CodeHuntingGames.Core/ # Domain model, game rules, state machines
│ │ └── Gameplay/ # Entities, enums, and business logic
│ ├── CodeHuntingGames.Infrastructure/ # Data access, external services
│ └── CodeHuntingGames.Api/ # ASP.NET Core Web API (controllers, DTOs)
├── tests/
│ ├── CodeHuntingGames.Core.Tests/ # Unit tests for domain logic
│ └── CodeHuntingGames.Api.Tests/ # Integration tests for API endpoints
├── docs/ # Documentation
│ ├── domain-model.md # Entity relationships and data model
│ ├── game-states.md # State machine documentation
│ └── game-session-lifecycle.md # End-to-end session walkthrough
└── CodeHuntingGames.Api.sln # Solution file
# Build
dotnet build
# Run tests
dotnet test
# Run the API
dotnet run --project src/CodeHuntingGames.Api- .NET 10 — ASP.NET Core Web API
- Entity Framework Core — Data access (planned)
- PostgreSQL / SQL Server — Database (planned)
Developed at the University of Urbino (Italy) and DIGIT srl as part of the CodeMOOC project. The original Telegram bot powers codehunting.games and has been used for Code Week Europe, INAF astrophysical hunts, and other events since 2018.