Giter Site home page Giter Site logo

open-planning-poker-game-engine's Introduction

Open Planning Poker - Game Engine

This is a Game Engine implementation of Open Planning Poker project. For mor details visit the main Open Planning Poker page.

Description

Work in progress.

Tech stack

Most important external dependencies

  • 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.

Application Access Data

Work in progress.

Seq - Logs monitoring

Swagger API - Swagger representation

PostgreSQL

  • host: localhost
  • port: 5432
  • dbname: open-planning-poker-db .
  • username: postgres
  • password: posgres

DB Diagram

DB Diagram

Technical description

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.

Requirements

To run this project, the only thing that has to be installed on the machine is Docker.

How To

Start

There are two ways to start the solution, directly from Visual Studio or using Docker Compose.

Visual Studio 2022 (or newer)

  • 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)

Docker Compose

  • 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

Test

Work in progress.

Postman

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!

Future Improvements

Work in progress.

open-planning-poker-game-engine's People

Contributors

bokunda avatar

Stargazers

Jelena Čolić avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.