Quack Stanley is an Apples-to-Apples-style party game, inspired by Snake Oil, designed by Jeff Ochs.
Play at quackstanley.net, have fun!
Quack Stanley is an Elm frontend with a Scala backend that runs "serverless" as an AWS Lambda Function.
Project | Purpose |
---|---|
core | Quack Stanley game logic |
lambda | AWS Lambda handler |
frontend | Web application for game UI |
cloudformation | Infrastructure for AWS deployment |
dev-server | Standalone server for local development |
To run Quack Stanley locally, you will need the following installed:
You can then run the api and frontend using the helper scripts in the root of the repository.
- devapi.sh
- devfrontend.sh
The development server stores game data in-memory. This data will not persist through a restart of the API.
Quack Stanley can be run in AWS using the two CloudFormation templates provided in this repository.
Notes:
- Running Quack Stanley in AWS will incur costs.
- Some properties are hard-coded for the public Quack Stanley service. If you'd like to change these to run your own version of Quack Stanley some settings will need to be changed.
- The region is currently hard-coded in Quack Stanley's source code
quack-stanley-storage.template.yaml
creates the persistent resources needed to run Quack Stanley.
Quack Stanley stores its data in S3. The template creates one S3 bucket
for the web assets and another for storing the data for in-progress games.
quack-stanley.template.yaml
sets up the application itself. It creates an API Gateway with an AWS Lambda
function as the backend, and a CloudFront distribution for serving the webapp.
It also uses Route53 to configure the webapp's DNS.