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.
-
You must have a mongo server running.
docker-compose up
-
Build and run the server (from the root directory of the server) via
./mvnw clean spring-boot:run
-
Build and run the client (from the root directory of the client) via
./mvnw clean spring-boot:run