Code Monkey home page Code Monkey logo

project14d-pet-theory-event-driven's Introduction

Gatsby

Project 14D: Pet Theory App for Lab Reports with Event-Driven Architecture

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.

Frontend

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

Backend

This AWS CDK App deploys the backend infrastructure for Project 14D. The app consists of two stacks.

Stack 1: API Gateway API, EventBridge and SNS

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

Architecture Diagram

Stack 2: CloudFront Distribution and S3 Bucket

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.

Architecture Diagram

project14d-pet-theory-event-driven's People

Contributors

sharjeelsafdar avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.