Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/zleao/rttictactoe
Online and RealTime TicTacToe sample, that uses CQRS/ES, SignalR, Xamarin Forms, .Net5 and MAUI
https://github.com/zleao/rttictactoe
cqrs-es cqrs-pattern efcore maui net5 signalr sqlite xamarin-forms
Last synced: about 1 month ago
JSON representation
Online and RealTime TicTacToe sample, that uses CQRS/ES, SignalR, Xamarin Forms, .Net5 and MAUI
- Host: GitHub
- URL: https://github.com/zleao/rttictactoe
- Owner: zleao
- License: mit
- Created: 2017-09-17T16:54:25.000Z (about 7 years ago)
- Default Branch: master
- Last Pushed: 2022-12-08T15:43:45.000Z (almost 2 years ago)
- Last Synced: 2024-10-06T10:13:19.575Z (about 1 month ago)
- Topics: cqrs-es, cqrs-pattern, efcore, maui, net5, signalr, sqlite, xamarin-forms
- Language: C#
- Homepage:
- Size: 1.42 MB
- Stars: 1
- Watchers: 1
- Forks: 1
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
# RTTicTacToe
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](https://rttictactoe.azurewebsites.net/swagger)) and a frontend with a basic implementation of the TicTacToe game.### **Always refer to the readme file of the [master](https://github.com/zleao/RTTicTacToe/tree/master) branch, to get the most up-to-date info.**
## Backend
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## Frontend
Cross platform client.
- Xamarin Forms 5 with support for **iOS**, **Android** and **UWP**## Run the code
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](https://rttictactoe.azurewebsites.net/swagger)).**Note:** At any given time this endpoint might be deleted without prior notice.
### Backend
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.### Frontend
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.## Future tryouts
### Backend
- Try [EventFlow](https://eventflow.readthedocs.io/) for the CQRS/ES handling
- Use a specialized framework to store the data from EventSourcing, (e.g. [NEventStore](https://github.com/NEventStore/NEventStore))
- Add logic to revert movements using CQRS features
### Frontend
- MAUI implementation