Q-Wiki is a Wikidata based game (Unity front-end with ASP.NET Core back-end) developed by HTW Berlin students in cooperation with Wikimedia Germany.
Once you clone the repository you might want to use Visual Studio or VS Code depending on your OS.
The WikidataGame.Backend project is the main REST API back-end project written in C# with ASP.NET Core 2.2. By default Sqlite will be used as the database system, to switch to MSSQL just add an environment variable "SQLAZURECONNSTR_SQL" with the connection string. To make use of push notifications add an environment variable "CUSTOMCONNSTR_NotificationHub" and supply the connection string of the Azure Notification Hub. Authentication works with Firebase authentication tokens, for this another connection string "CUSTOMCONNSTR_FirebaseAuth" with the firebase json configuration needs to be supplied. Additionally, a secret for JWT authentication is nessecary, which should be provided in appsettings.json as "AuthSecret".
Check out the swagger documentation that is automatically generated via swashbuckle from code: https://wikidatagame.azurewebsites.net
A simple Microsoft Azure Webjob which closes a game if a player is inactive for a certain amount of time and sends out push notifications to both players to notify them.
The WikidataGame.Backend.Tests contains unit tests (XUnit) for the asp.net core project. Tests are mainly used to assure that map generation and sparql queries are working properly.
The WikidataGame.ApiClient project is an API client, completely auto generated with autorest from swagger.json.
A single file sample console application to showcase the WikidataGame.ApiClient.
An integration test project (XUnit) to assure that both, the endpoints in combination with the Api client are working properly.