Giter VIP home page Giter VIP logo

rankme's People

Contributors

tomek199 avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

rankme's Issues

Restore complete game functionality

Complete game has been removed from Game domain in case of introducing new separate Event domain for scheduled matches.
Restore complete functionality to be able to finish scheduled match.

Exception handling

  • Create new exceptions and handlers
    • league
    • competitor
    • event
    • game
  • Handler for common exception

Game queries

Implement Game queries:

  • get completed games by league id with pagination

Glicko Algorithm

Implement Glicko algorithm that update Player's rating and rating deviation fields after played game.

Player query

  • Mongo accessor
  • Message consumer for player-created
  • GraphQL player query

Rearrange modules

  • remove deprecated modules
  • merge domain and application modules
  • move docker-compose to main project
  • merge api and infrastructure modules

Match query

  • matches connection for league
  • Get event by id

Game mutations

Implement game mutations:

  • add new scheduled game
  • add new completed game
  • complete scheduled game

Use Spring's Converter

Instead of custom Mapper interface, use Spring's Converter to map domain object to model.

Competitor queries

Implement competitor queries:

  • get all competitors by league id
  • get competitor by id

Create player command

  • Add "create player command"
  • Store event in event in database
  • Emit event via AMQP
  • Add port/adapter to check if league exist

League query

  • Add listeners to update read database by league events.
  • Create league query to get league by id.

Move mappers to services

Move domain-model mappers to services layer and return model object instead.
GraphQL mutations, queries and resolvers should contains only calls service's methods without any business logic.

Improve in-memory storage

Improve in-memory storage save methods to update entity when id is provided
Todo:

  • league
  • competitor
  • game

Game query

Implement game queries:

  • get game by id

Archive completed match

Do not remove a match from the database. Instead of provide flag SCHEDULED, COMPLETED, DELETED.
If COMPLETED add additional parameter that contains Game id.

Create Game model

Add Game model and creation instance after played game by two players.

Combine match and game domain

It is in fact the same domain with different state. Combine it by using some composition of aggregate State class.

Logger improvements

  • Wrap original exception during catching
  • Log message when catching command exception

In-memory storage

Instead of creating custom in-memory storage, provide some embedded database.

Create in-memory storage for domain objects

Implement in-memory storage infrastructure module for testing purposes for domain objects:

  • League
  • Competitor
  • Game
  • Add Spring dependencies to infrastructure module with 'dev' profile

Play game command

Add game:

  • domain
  • player port/adapter
  • storage/emitter
  • command
  • mutation

Use Mockk

Consider and try to use in one module Mockk instead of Mockito.

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.