Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

API

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

The API runs in Kubernetes, using a nodejs Dockerfile. Staging has a single cluster that handles requests and the RabbitMQ queue, while Production has one cluster to handle requests and another to handle queue events.https://github.com/Spordle/Play/tree/master/api

Dependencies

Kubernetes is hosted in AWS EKS. PostgreSQL is used as the database, which is hosted by RDS, and RabbitMQ is used as a message queue, which is hosted via Amazon MQ.

...

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

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.https://github. com/Spordle/Play/tree/master/admin

Dependencies

Admin depends on the API.

...

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.https://github.com/Spordle/Play/tree/master/reports

Dependencies

Reports depends on the API.

...

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.https://github.com/Spordle/Play/tree/master/web

Dependencies

Websites depend on the API.

...

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. https://github. com/Spordle/Play/tree/master/fn

Dependencies

The reports lambda depends on the Reports app, and the iCal lambda only depends on the database.

...

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

Other

Metabase

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

https://metabase.hisports.app/

Emails

Emails are sent using AWS SES. The API uses nodemailer library with an SMTP connection to SES.

Bounces are automatically suppressed by AWS and added to the its suppression list. The API logs every email sent to be able to verify delivery, which you can find in Cloudwatch.

DNS

Cloudflare manages all DNS for Play.

hisports.app is used for all API/app related domains, and hisports.site is used for websites only. See also: Domain migration

The HiSports account also manages the domains omahahockey.ca and northwestdistrictmha.ca on behalf of OMAHA and NWD.

https://dash.cloudflare.com/

Errors

Errors are logged in Sentry. This is only used for the API and Admin app.

https://hisports.sentry.io/issues/