This is a Game Engine implementation of Open Planning Poker project. For mor details visit the main Open Planning Poker page.
Work in progress.
- .NET 8 - Web Api
- PostgreSQL - Database
- Docker - Containerisation
- Seq - Platform used for storing logs
- Entity Framework - ORM
- Dapper - Micro ORM
- MediatR - Mediator implementation in .NET
- Serilog - .NET logging with fully-structured events
- AutoMapper - object-object mapper
- FluentValidation - Library for building strongly-typed validation rules
- RichardSzalay.MockHttp - Testing layer for Microsoft's HttpClient library.
- FluentAssertions - Set of extension methods for assertions in testing to make the assertions more readable and easier to understand.
- FakeItEasy - dynamic fake framework for creating all types of fake objects, mocks, stubs etc.
- Testcontainers.PostgreSql - Testing library that provides easy and lightweight APIs for bootstrapping integration tests with real services wrapped in Docker containers.
- NetArchTest.Rules - A fluent API for .Net Standard that can enforce architectural rules in unit tests.
Work in progress.
Seq - Logs monitoring
Swagger API - Swagger representation
- host: localhost
- port: 5432
- dbname: open-planning-poker-db .
- username: postgres
- password: posgres
Implementation follows Clean Architecture principles by creating Api, Application, Infrastructure, and Domain libs. The idea was to show good practices for organizing the code and handling requests, mappings, validations, errors...
Sequential Guid Generator is implemented so we can guarantee that records will be sorted by Id by default.
A big focus was on tests as well, so the solution contains blueprints for: Domain tests, Application tests, API tests (integration tests), and Architecture tests.
To run this project, the only thing that has to be installed on the machine is Docker.
There are two ways to start the solution, directly from Visual Studio or using Docker Compose.
- Open this solution using Visual Studio 2022 or newer
- Right-click on the docker-compose item in Solution Explorer (follow the blue whale icon 🐋)
- Chose 'Set as Startup project'
- Run the solution (click on the green play button on the top of the Visual Studio window)
- Navigate to the root of the open-planning-poker-game-engine folder
- Open console
- run
docker-compose -f docker-compose.yml -f docker-compose.override.yml up
command
Work in progress.
Download Link - Postman Collection
Just set {{gameEngineUrl}} environment variable in Postman to https://localhost:6992
and you can start testing the app.
If a download fails, navigate to Resources folder and download Open Planning Poker - Game Engine.postman_collection.json file.
NOTE: Initial setup of the collection is with valid data!
Work in progress.