tkvangorder / poker-server

This is an attempt to build a server for use in a "remote" home poker game.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Poker Server Overview

This is a sandbox environment for experimenting with Spring reactive programming to implement a poker server for use as a "remote" home game. Our poker group has been forced recently to move our home game online due to social distancing. There are surprisingly few choices out there to manage a private cash or tournament game. This project is an attempt to scratch that itch while giving us an excuse to study reactor and RSocket. The plan is to implement a server first and then build (or recruit someone to build) a client using something like React or Angular?

Percent

Description

30%

Convert imperative to reactive code. Using Reactor.

50%

Build a domain model for a game, table, and players.

0%

Sort out testing of reactive code.

0%

RSocket Security Authorization (Enforce permissions on API to limit user’s access to others user information)

0%

Game creation and management

0%

Game manager functionality (pause game, add/move players, etc)

  • Build out a domain primitive for a deck of cards.

  • Implement a poker hand ranking algorithm. Should handle Texas Hold’em to start.

  • Implement a blind schedule calculator.

  • Stub out a command-line RSocket client (http://github.com/tkvangorder/poker-client)

  • User management (Create/sign-up, update, find)

  • RSocket Authentication (You can connection as anonymous to create your user, then you can login as a registered user to access most end points)

This project is built with Java 11 and you will need to haver a Java 11 JDK installed on your machine. I recommend https://sdkman.io/ for managing your Java installations. This project provides a docker-compose file for starting up a mongo server within a docker container.

  1. You must have a mongo server running. docker-compose up

  2. Build and run the server (from the root directory of the server) via ./mvnw clean spring-boot:run

  3. Build and run the client (from the root directory of the client) via ./mvnw clean spring-boot:run

About

This is an attempt to build a server for use in a "remote" home poker game.


Languages

Language:Java 100.0%