Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Table of Contents
minLevel1
maxLevel2
outlinefalse
stylenone
typelist
printablefalse

Backends

API

https://github.com/Spordle/Play/tree/master/api

...

https://github.com/Spordle/Play/actions

Lambdas

https://github.com/Spordle/Play/tree/master/fn

Play uses two AWS Lambdas; one for generating PDF reports (described above) and another for generating an iCal file so that game officials can subscribe to their calendars.

Dependencies

The reports lambda depends on the Reports app, and the iCal lambda only depends on the database. The iCal lambda creates link to the admin app.

Deployment

Buddy CI is used to manually deploy to staging or production since these are very rarely changed. The serverless library is used to manage the Lambda configuration and deployment.

https://app.buddy.works/hisports/hisports/pipelines

Frontends

Admin

https://github.com/Spordle/Play/tree/master/admin

The admin app is a React single-page application that’s hosted in Amplify and built with webpack.

Dependencies

Admin depends on the API, with links to Reports and the iCal lambda, and embeds Metabase as an iframe.

Deployment

Github Actions automatically deploys to staging when a commit is pushed to master. Deploys to production are manual. This is done in the same deployment pipeline as the API, so both are always updated together.

https://github.com/Spordle/Play/actions

Reports

https://github.com/Spordle/Play/tree/master/reports

There are two parts to reports: the React single-page application for all the rendering, which is hosted on Netlify, and the PDF generator which is an AWS Lambda that runs Puppeteer.

Dependencies

Reports depends on the API.

Deployment

Buddy CI automatically deploys to staging when a commit is pushed to master. Deploys to production are manual.

https://app.buddy.works/hisports/hisports/pipelines

Websites

https://github.com/Spordle/Play/tree/master/web

The legacy websites are React single-page applications that are individually deployed to Netlify. Each website has custom build configurations through env variables, so they are required to be built individually.

Dependencies

Websites depend on the API, and may link to Reports depending on configuration.

Deployment

Buddy CI automatically deploys a staging site when a commit is pushed to master. Deploys to production are manual.

https://app.buddy.works/hisports/hisports/pipelines

Lambdas

https://github.com/Spordle/Play/tree/master/fn

Play uses two AWS Lambdas; one for generating PDF reports (described above) and another for generating an iCal file so that game officials can subscribe to their calendars.

Dependencies

The reports lambda depends on the Reports app, and the iCal lambda only depends on the database. The iCal lambda creates link to the admin app.

Deployment

Buddy CI is used to manually deploy to staging or production since these are very rarely changed. The serverless library is used to manage the Lambda configuration and deployment.

https://app.buddy.works/hisports/hisports/pipelines

Other

...

Services

Reporting

Metabase is hosted in the Kubernetes cluster. There’s one instance for production and another for staging.

...