Project Summary
PokerTrainer is a set of tools necessary to run an online poker server (including a front-end) so it can be used to train poker bots and also allow humans to improve their poker skills playing against bots.
This project will take a lot of work to be done as it involves many components. I am not a very experienced coder and have never done a big project, I would love to receive feedback and suggestions on how I can properly architect this projectMy rough estimate of the main components involved are:
-
Poker Table – This component acts essentially as a poker dealer, it will draw cards, serve them to the players, define which plays are valid or not, keep the count of chips for each player at the table and so on.
-
Casino – This component is responsible for instantiating all of the tournament directors, keeping the user’s account balance, connecting users to tables, and generating tournament structures.
-
Notebook – Database for the Poker Table, it will store every hand played.
-
Tournament Director – Component responsible for generating tournaments, managing the Poker Table instances (for things like level change, schedule and so on). Still not sure if cash games will be handled by this or a different component.
-
Vault – Database for user data, tournament data, balances and everything else, with the exception of Poker Table data.
-
Back-office – Front-end for the server’s organizer.
-
Poker Room – Front-end for players.
Devember 2021 challenge
My Devember 2021 goal is to work on the “Poker Table” and have it act as a dealer for Texas Hold’em games. Although it should also support other game types.
I will also take the challenge of learning Rust along the way, as I am not a rust developer and this project will be developed in Rust.