A project for managing pulmonary function test data using AWS.
PFT X uses Textract and regular expressions to filter pulmonary function test data out of PDF format and into structured JSON.
Note This project is for demonstration purposes only.
- AWS
- DynamoDB
- Lambda
- Textract
- S3
- KMS
- SNS
- CDK
- CloudWatch
- CloudFormation
- TypeScript
- SST + AWS CDK
- React
- Next.js
- ⚙️ Reproducible cloud infrastructure
- 🕵️♂️ Audit friendly
- Set up ~/.aws/credentials. This guide will assume you are using your crendetials as the "default" profile.
- Ensure you have Node.js 14.x installed
cd src/server; npm install
npm run deploy
- Create a user account to log into via the AWS Managment panel -> Cognito
- The deployment will store output values necessary to run the client in
outputs.cdk.json
- this file will not be committed
The frontend application for the project can be run completely locally.
- Ensure you have Node.js 12.x installed
cd src/client; npm install
- Use the
outputs.cdk.json
values to build a file atsrc/client/.env.local
that looks like:
NEXT_PUBLIC_API_ENDPOINT = ""
NEXT_PUBLIC_AWS_REGION = ""
NEXT_PUBLIC_USER_POOL_ID = ""
NEXT_PUBLIC_USER_POOL_WEB_CLIENT_ID = ""
npm run start
We use AWS CloudFormation Stacks to describe the entirety of an individual deployment of the software. We use Serverless Stack (SST) - which is a superset framework on top of AWS CDK - to achieve this. One of the great features about SST is the ability to proxy Lambdas locally. When you're reading to begin work on the contents of src/server/src
, which is where the APIs etc are defined, you can run a local development environment with npm run start
.
No additional development notes. Make sure you set up your .env.local
file.