Serverless Task Manager Application

This is a simple serverless Task Manager Application. It allows only authenticated user to create, fetch, update and delete tasks as well as upload an image for each tasks.

Tasks are grouped into Pending tasks and Done tasks

BACKEND

The backend folder contains codes to run a serverless backend (APIs).

Prerequisites

  • Auth0 account
  • GitHub account
  • NodeJS version up to 12.xx
  • Serverless
    npm install -g serverless@2.21.1
    serverless --version
    • Login and configure serverless to use the AWS credentials
    # Login to your dashboard from the CLI. It will ask to open your browser and finish the process.
    serverless login
    # Configure serverless to use the AWS credentials to deploy the application
    # You need to have a pair of Access key (YOUR_ACCESS_KEY_ID and YOUR_SECRET_KEY) of an IAM user with Admin access permissions
    sls config credentials --provider aws --key YOUR_ACCESS_KEY_ID --secret YOUR_SECRET_KEY --profile serverless

Frontend

The client folder contains a web application that can use the API that should be developed in the project.

You can chose to deploy the client or run locally. Ensure to update config.ts file with API endpoint and Auth0 configuration:

const apiId = '...' API Gateway id
export const apiEndpoint = `https://${apiId}.execute-api.us-east-1.amazonaws.com/dev`

export const authConfig = {
  domain: '...',    // Domain from Auth0
  clientId: '...',  // Client id from an Auth0 application
  callbackUrl: 'http://localhost:3000/callback'
}

How to run the application

Backend

To deploy an application run the following commands:

cd backend
npm install
sls deploy -v

Frontend

To run a client application first edit the client/src/config.ts file to set correct parameters. And then run the following commands:

cd client
npm install
npm run start