In this project, I developed a simple ToDo CRUD React app using AWS Lambda and Serverless Framework. The app also uses Auth0 for authentication and authorization. DynamoDB is used as the database.
React app is developed using create-react-app
and Typescript
. Auth0
is used for authentication and authorization and allows for login using Google accounts.
Welcome page before login:
Auth0 authorisation page and prompt for login using Google account:
App running successfully:
The backend entails:
- A custom authorizer for API gateway (
Auth0 JWT
) IamRoleStatements
configured for CRUD operations onDynamoDB
- A presigned URL for uploading attachment files to
S3 bucket
. CORS configuration
for the API gateway functions.DynamoDB
table for storingToDo
items.
- Validation of incoming HTTP requests using the
serverless-reqvalidator-plugin
. - Generation of application-level
metrics
for monitoring. Logging
of application-level events with aWinston
logger for JSON-formatted logs.Distributed tracing
usingAWS X-Ray
.- A
Postman
collection for testing the API is included.
Deployment instructions included in Deployment.md
if you would like to try out the app