This is a small, proof-of-concept project that retrieves photovoltaic electricity production estimates from a third-party API located here. Its purpose is to demonstrate how to use several common AWS services to request data from a third-party API, then process the returned data and return the processed results to a client app.
The project is hosted on AWS S3.
This project implements an AWS-based version of an Express/Typescript/React stand-alone app located here.
The provided functionality is very minimal:
- The React app is stored as a static asset in AWS S3.
- The React app sends a request to an AWS API Gateway endpoint.
- The API Gateway endpoint sends a request via an AWS Lambda function to a third-party API.
- The third-party API returns raw estimate data to the AWS API Gateway / Lambda function.
- The AWS API Gateway parses and reformats the raw estimate data using an AWS Lambda function, and returns it to the React app.
- The React app displays the parsed and formatted data to the user.
- React
- AWS
- S3 Static Website Hosting
- API Gateway
- Lambda
- IAM
- Third-party external API
This repo does not provide a 'ready to run' application, meaning that you can't follow the standard process of cloning / installing / running the code.
This repo is simply a place to archive the assets for the project.
To recreate the project you will need to:
- Build the React app
- Upload the build to an AWS S3 bucket.
- Set up an AWS API Gateway endpoint.
- Create AWS Lambda functions based on the folders in the 'backend/lambdaFunctions' folder.
- Copy the AWS Lambda functions code to their respective folders.
- Confiigure all of the required permissions in AWS IAM.
- To Do items are listed in the repo's 'Issues' section.