๐ฅ๏ธ Client - ๐๏ธ Client Infrastructure
This API demonstrates the use of:
- HAL is used to represent the API.
- The API is documented using RAML.
- Serverless Framework is used to manage the AWS Lambda application and accompanying resources.
- Containerising the Serverless Framework dependency using Docker and Docker Compose.
- ES6 JavaScript is used with Webpack, Babel and Flow.
- Testing is achieved using Jest.
- Authentication is handled by Amazon Cognito using JWT.
- Persistent state is stored using Amazon DynamoDB.
- Signed Amazon S3 URLs are used to upload and store photos.
- Thumbnails are created using an asynchronous S3 upload trigger and AWS Lambda (inc. ImageMagick).
- The custom Amazon API Gateway domain is managed using serverless-domain-manager.
You are able to easily interact with the Docker container using the provided Makefile
.
Note: ensure that you have provided the necessary AWS credentials within a .env
file, based on .env.template
.
$ make build
$ make test
$ make deploy