Fullstack implementation of an online/realtime TicTacToe game. The purpose is to test some tools and frameworks. The solution provides a WebApi (currently hosted on Azure) and a frontend with a basic implementation of the TicTacToe game.
Always refer to the readme file of the master branch, to get the most up-to-date info.
Simple Asp.NetCore API with a CQRS/ES pattern. For real time communication, it uses SignalR. The data is persisted in a SQLite database with the use of EFCore (both for EventSourcing and read datamodel).
Key technologies:
- .Net 5
- CQRSLite v1.33.0
- Swashbuckle.AspNetCore v6.1.4
- Microsoft.AspNetCore.SignalR.Core (1.1.0)
- EFCore v5.0.8
- EFCore.Sqlite v5.0.8
Cross platform client.
- Xamarin Forms 5 with support for iOS, Android and UWP
Project developed with VS2019. Supported by VS2019+ There are 2 solutions, one for backend and the other for frontend. You can run the api locally or use the one I'm currently hosting in Azure (https://rttictactoe.azurewebsites.net/swagger).
Note: At any given time this endpoint might be deleted without prior notice.
The main api project is the RTTicTacToe.WebApi
. You can run the api locally (it should work without any special configuration) or publish it to a hosting service.
Since the frontend is implemented with Xamarin Forms, you can choose one of the implemented platforms and run in a simulator or real device. The code should compile and run as-is. The only required change, is the base url for the api endpoint. To configure it, just go RTTicTacToe.Forms/App.cs
and set the static string AzureBackendUrl
. By default it's pointing to the Azure hosted web app.
- Try EventFlow for the CQRS/ES handling
- Use a specialized framework to store the data from EventSourcing, (e.g. NEventStore)
- Add logic to revert movements using CQRS features
- MAUI implementation