Skip to content

djones11/kwiboo

Repository files navigation

Summary:

The app is a photo storage app. Activities includes creating new users, authenticating log ins, uploading photos and viewing previously uploaded photos.

Live website address: http://app-dcj.s3-website.eu-west-2.amazonaws.com

todo: 
    -   Unit/Integration testing, 
    -   Writing a CloudFormation script
    -   Allowing photos to be deleted
    -   Allowing metadata/tags to be attached to photos
    -   Sorting/Filtering photos
    -   Improved caching
    -   Better fail case handling
    -   CI/CD for AWS resources (SAM/CloudFormation)

Resources:

1 Dynamodb,
1 RDS database,
1 Elasticache layer - Redis,
6 Lambda functions
    -   Lambdas exist inside the default VPC with a NAT gateway to access public resources
    -   3 Subnets to the default vpc
2 Secret Manager keys
    -   RDS access details
    -   JWT secret key
5 SMS Parameter keys
    -   Image bucket location
    -   RDS host name
    -   RDS table name
    -   Redis end point
    -   Redis port
2 SQS queues
    -   Dead letter queue
    -   Photo transfer buffer
2 SNS
    -   Error alert
    -   Build notification
1 CodePipeline
    -   CodeBuild
    -   CodeDeploy
1 Git hub repo
2 S3 Buckets
    -   Image store
    -   Static website
1 API gateway
Various IAM roles

Routes:

Create user
    -   API Gateway calls
    -   Lambda calls
        -   RDS database to check available username and to create a new user
        -   Secret Manager store to get RDS access details
        -   Parameter store to get RDS access details
    -   API Gateway

Auth user
    -   API Gateway calls
    -   Lambda calls
        -   RDS database to check credentials
        -   Secret Manager store to get RDS access details
        -   Parameter store to get RDS and redis access details,
        -   Redis to store sessions
    -   API Gateway

Auth token
    -   API Gateway calls
    -   Lambda calls
        -   RDS database to check available username and to create a new user
        -   Secret Manager store to get RDS access details
    -   API Gateway     

Get photos
    -   Requires auth_token for access
    -   API Gateway calls
    -   Lambda calls
        -   Dynambodb to get photos available to the user
        -   Secret Manager store to get JWT secret key
    -   API Gateway

Get presigned url
    -   Requires auth_token for access
    -   API Gateway calls
    -   Lambda calls
        -   S3 to create a presigned url to allow direct uploading
        -   Secret Manager store to get JWT secret key
    -   API Gateway

Transfer photos
    -   S3 event triggers on POST
    -   SQS acts as buffer to store S3 events
    -   Lambda polls SQS
    -   Lambda calls
        -   Dynamodb to write new entries

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published