A simple TODO application using AWS Lambda and Serverless framework, for the final project of the Udacity Cloud Developer Nanodegree.
This application will allow creating/removing/updating/fetching TODO items. Each TODO item can optionally have an attachment image. Each user only has access to TODO items that he/she has created.
Before getting started, make sure Node.js is downloaded and installed. The latest version of Node.js can be downloaded from nodejs.org and it's recommended to use the LTS version.
Serverless Framework is used to build and deploy the application. Instructions for installing Serverless Framework can be found here.
An AWS account is required to deploy the application.
Auth0 is used for authentication and an Auth0 application should be created with asymmetrically encrypted keys (RS256).
To build and deploy the application, first edit the backend/serverless.yml
file to set the appropriate AWS and Auth0 parameters, then run the following commands:
- cd to the backend folder:
cd backend
- Install dependencies:
npm install
- Build and deploy to AWS:
sls deploy -v
To run the client application, first edit the client/src/config.ts
file to set the appropriate AWS and Auth0 parameters, then run the following commands:
- cd to the client folder:
cd client
- Install dependencies:
npm install
- Run the client application:
npm run start
This should start a development server with the React application that will interact with the serverless TODO application.
A Postman collection is available in the root folder of the project, as an alternative way to test the API.
This project was bootstrapped with https://github.com/udacity/cloud-developer/tree/master/course-04/project/c4-final-project-starter-code.