Born of the pandemic, Hold'em Hounds is an (🚧 in development 🚧) poker app that's aiming to bring a fresh perspective to a crowded field of garish, clunky apps, desparate to suck you into microtransactions.
Hold'em Hounds should be...
- Multiplayer
- Free to play
- Real time
- Account optional
- Download optional
- Not too serious
- Beautiful
holdem/
.circleci/ --> CI/CD configuration
client/ --> Client (React) code
src/
components/ --> UI Elements
data/ --> Constants
hooks/ --> Generic React hooks
state/ --> Application state (i.e. the "data layer")
utils/ --> Generic reusable code
infrastructure/ --> Infrastructure (Terraform) code
server/ --> Server (Node.js) code
src/
api/ --> View/Controller logic
domain/ --> Business logic (i.e. the "service layer")
loaders/ --> Side effects (i.e. mongo and redis connections)
modules/ --> Specific reusable code
utils/ --> Generic reusable code
While you you could set up each individual piece of the system locally (i.e. server, client, mongo, redis)
the easiest way to run the project is through docker-compose
. First make sure you have docker
and
docker-compose
installed. Then you can use the scripts.sh
file which takes a variety of subcommands:
We have a scripts.sh
file which takes a includes a number of subcommands. Some options are:
up
stand up the system in the foreground (with logs)rebuild
force a fresh build of the docker images/containers
For example, to get the app up and running, run ./scripts.sh up
and then, viola,
http:localhost:3000.
The docker-compose
configuration supports hot reloading, so once you have it running, your
changes to ./client
and ./server
will be respected. However, if you ever need to force a
rebuild: ./scripts build
.
In order to lint the source code or run the test suite, you'll need to run npm install
in the
directory in question (i.e. client
or server
) and then run either npm run test
or npm run lint
.
We have a couple of diagrams to get a high level feel for the implementation:
- Read our contributing guide
- Find a Github issues
- Fork this repository (if you aren't a collaborator)
- Open a pull request