Skip to content

Latest commit

 

History

History
131 lines (69 loc) · 2.93 KB

README.md

File metadata and controls

131 lines (69 loc) · 2.93 KB

Aves App

I developed an image uploading app for birds called "AVES APP". This app caters for bird lovers who can upload beautiful images of birds. This app was also tested using local environment (user based testing).The technology used behind in developing this app is as follows:

AWS Services

  • Lambdas for storing functions
  • DynamoDB
  • Api Gateway (front-door securing, monitoring...the REST API)
  • S3 Bucket (storage of images)
  • CloudFormation (infrastructure as code, provisioning a collection of needed resources)
  • IAM user
  • XRay

Serverless Framework

Frontend client

  • ReactJS

Auth0

  • OAuth integration for 3rd party apps
  • RS256 Algorithm

Few Optimisations added

  • Global Secondary Indexes on DynamoDB
  • Xray for debugging logs

App functionality video:

The video of this application can be found here: https://youtu.be/k7BTm2mjsHE

Getting started:

Installation

Use the node package manager to install Aves app

   cd backend
   npm install

   cd ../frontend
   npm install

To start the client in localhost

  • Update client/src/config.ts credentials to match your Auth0 account and
  • Serverless deployment

The client can be installed and run locally in http://localhost:3000/

   cd client
   npm run start

Endpoints:

Functions:

  • Auth: Aves-dev-Auth
  • getImages: Aves-dev-getImages
  • createImage: Aves-dev-createImage
  • updateImage: Aves-dev-updateImage
  • deleteImage: Aves-dev-deleteImage
  • generateUploadUrl: Aves-dev-generateUploadUrl

Screenshots

Serveless deployment:

Alt text

CloudFormation:

Alt text

s3 buckets:

Alt text

Alt text

AWS lambdas:

Alt text

XRay service map:

Alt text

Auth0

Alt text

Successful upload message:

Alt text

Alt text

Error Handling:

User not logged in:

Alt text

User tries to upload without choosing an image:

Alt text