You can find it live: korobka.anastaszi.com
Video: https://www.youtube.com/watch?v=W6DsQzFFvGA
User can browse through already uploaded files, download them, edit, and delete
User can update filename, description and file version
Admin can see all files and delete them.
The project is done using only AWS resources:
- Amplify
- Cognito
- Route53
- Lambda
- DynamoDb
- GraphQl API
Most of the resources were created by using Amplify Cli \ (it automatically creates CloudFormation template that can be modified later)
amplify init
amplify auth (cognito)
amplify storage (s3)
amplify api (graphql and dynamodb)
amplify function (lambda)
S3 settings (Lifecycle management and Acceleration Configuration) were modified in CloudFormation template:
"AccelerateConfiguration" : {
"AccelerationStatus" : "Enabled"
},
"LifecycleConfiguration": {
"Rules": [
{
"Id": "GlacierRule",
"Status": "Enabled",
"ExpirationInDays": "730",
"Transitions": [
{
"TransitionInDays": "75",
"StorageClass": "STANDARD_IA"},
{
"TransitionInDays": "365",
"StorageClass": "GLACIER"
}
]
}
]
}
Cognito Admin group was also created with CloudFormation template
# BEGIN USER GROUPS RESOURCES
UserPoolGroupAdmins:
Type: 'AWS::Cognito::UserPoolGroup'
Properties:
GroupName: Admins
UserPoolId: !Ref UserPool
As well as custom fields like first and last names:
Schema:
...
-
Name: custom:firstname
AttributeDataType: String
Required: false
Mutable: true
-
Name: custom:lastname
AttributeDataType: String
Required: false
Mutable: true