A serverless JAMstack App with Gatsby, TypeScript, ApiGateway, EventBridge, SNS, and CloudFront. The web app has been deployed to AWS CloudFront, and can be accessed here.
The following are some of the features of this project:
- An HTML form to submit a dummy lab report of an animal
- Lab report is submitted through an API Gateway endpoint.
- The API Gateway puts the lab report data in the form of an event on the EventBridge default bus.
- EventBridge publishes a message on an SNS topic.
- SNS sends the message to an email subscriber and a phone number subscriber.
- Bootstrapped with GatsbyJS
- Additionally, includes TypeScript support for gatsby-config, gatsby-node, gatsby-browser and gatsby-ssr files.
- Site hosted on AWS CloudFront.
- CI/CD with GitHub Actions
- Completely typed with TypeScript
This AWS CDK App deploys the backend infrastructure for Project 14D. The app consists of two stacks.
It contanis the AWS services for delivering the lab report. It has the following constructs:
- An API Gateway Rest API with CORS enabled which puts the lab report data as an event on EventBridge default bus
- An EventBridge rule to publish a message (containing the lab report data) on an SNS topic
- An email and a phone number subscribers to the SNS topic
It contains the infrastructure to deploy frontend client. It has the following constructs:
- A S3 Bucket with public access to store the static assets of Gatsby web app
- A Cloud Front Distribution to serve the static assets through a CDN. It also has the error handling capability: redirects any
404s
to/404.html
.