Simple Alice Skill for timetracking in board games like chess, monopoly and etc. The API resives JSon POST queries from Yandex.Dialogs and is able to:
- host several game sessions
- manage players during the game
- track the playing time and moves time for each player
The solution has three-tier architecture:
Project | Description | Tools |
---|---|---|
ChessClock | API for handling queries and responces generation | .NET Core IoC container , Automapper , Swagger API |
ChessClock.BLL | Represents services and rulles for managing entityes (e.g. Player, Move, Session) | DI technique |
ChessClock.DAL | Provides CRUD operations for entities | LINQ , Entity Framework , PostgreSQL |
ChessClock.Kernel | Describes general DTOs and interfaces for interaction between layers | |
ChessClock.UnitTests | Contains unit tests for solution | NUnit |
To build the solution:
- Clone the repository
https://github.com/AnnaShaleva/ChessClock
-
Add the connection string to your PostgreSQL db into
appsettings.json
-
Set
ChessClock.DAL
as default project for NuGET Package Manager console -
Use
Update-Database
to apply migrations -
Build and run the solution
On the AliceDialoges documentation page you can find the details about the protocol of the service.