Cards Amusing Humanity (Presentation)

Single-player "Cards Against Humanity" game.

Player is presented with a board containing a question card (black) and a number of answer cards (white). They pick which answer card is the funniest match with the question. After making a pick, the player is shown a similarity score which is determined by historical results from what other players have answered to a similar board of cards.

Development

All top level directories contain the source code for an individual, independent service. Each service directory contains a Dockerfile which describes how the source code is packaged. Each directory also contains a kubernetes manifest (manifest.yaml) to configure how the image is deployed and what external services it needs (ex. databases).

Running

Requirements

Tool Version Reason Install
docker >= v18.3.1 Build container images docker.com
kubectl >= v1.13.5 Interact with the kube api kubernetes.io
minikube >= v0.34.1 Run kubernetes cluster locally kubernetes.io
skaffold >= v0.25.0 Live build/deploy to cluster skaffold.dev

Create local cluster

minikube start

This step can be skipped if your kubeconfig is already configured to access the desired cluster.

Deploy application

skaffold dev

Note that this command might take some time to start showing application logs because it needs to pull container images.

Some features will not work until all pods are ready. This can be checked using kubectl get pods or when there are no more error logs from the regular health checks.

Open website (Optional)

minikube service website

This will open the website in your default browser.

Testing

Requirements

Tool Version Reason Install
pipenv >= v2018.11.26 Python dependency management pipenv.readthedocs.io
node/npm >= v11.10.0 JavaScript dependency management nodejs.org

Run tests

./test

This will go through each service directory to install dependencies, and run the tests.

Script will exit immediately if any command exits with a non-zero code.

Services

Service APIs are described using the OpenAPI Specification.

Analytics Cards Gateway Signing Website

These documents can be visualized using the Swagger Editor.

Students

Name Email Student ID Username Responsibilities
Charles Hardy m.user.work@gmail.com 27417888 Winterhart
  • Cards Service
  • Gateway Service
  • Presentation
Gabriel Harel gabrielj.harel@gmail.com 40006459 g-harel
  • Analytics Service
  • Signing Service
  • Website Service
  • Presentation

License

MIT