Standups is a project developed to help facilitate remote scrum meetings (Standups) in the workplace. The project is open-source and contributions are greatly appreciated.
- ReactJS
- Material-UI
- WebRTC
- AWS Amplify
- Create amazonConfig.json file | We'll need it for our Client application
export const API_GATEWAY_NAME = ''
export const INPUT_STORAGE = {
bucket: '' ,
region: '' ,
}
export const OUTPUT_STORAGE = {
bucket: '' ,
region: '' ,
}
export const YOUR_THUMBNAILS_BUCKET = {
bucket: '' ,
region: '' ,
}
export const configuration = {
Auth: {
identityPoolId: '' ,
region: '' ,
userPoolId: '' ,
userPoolWebClientId: '' ,
},
API: {
endpoints: [
{
name: API_GATEWAY_NAME,
endpoint: ''
}
]
}
}
- Create UserPool
- Save
Pool Id
asidentityPoolId
inamazonConfig.json
- Set attribute to
Email address or phone number
- Create App Client
- Save
App client id
asuserPoolWebClientId
inamazonConfig.json
- Save
- Create new identity pool
- Set
User Pool ID
andApp client id
for Cognito Authentication Provider - Save
Identity pool ID
as userPoolId inamazonConfig.json
- Set
- Create S3 Buckets for input and output videos
- Create both buckets and save their names under
INPUT_STORAGE
,OUTPUT_STORAGE
andYOUR_THUMBNAILS_BUCKET
with the region accordingly - Set CORS configuration to all buckets
- Create both buckets and save their names under
<?xml version="1.0" encoding="UTF-8"?>
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<CORSRule>
<AllowedOrigin>*</AllowedOrigin>
<AllowedMethod>HEAD</AllowedMethod>
<AllowedMethod>GET</AllowedMethod>
<AllowedMethod>PUT</AllowedMethod>
<AllowedMethod>POST</AllowedMethod>
<AllowedMethod>DELETE</AllowedMethod>
<MaxAgeSeconds>3000</MaxAgeSeconds>
<ExposeHeader>x-amz-server-side-encryption</ExposeHeader>
<ExposeHeader>x-amz-request-id</ExposeHeader>
<ExposeHeader>x-amz-id-2</ExposeHeader>
<AllowedHeader>*</AllowedHeader>
</CORSRule>
</CORSConfiguration>
-
Setting up Elastic Transcoder
- Create
Transcoding Pipeline
- Specify input, output and thumbnails buckets
- Under
IAM Role
selectElastic_Transcoder_Default_Role
- Safe pipeline id
- Create
-
Set up IAM policies
- Create
UserBucketPolicy
and replaceYOUR_INPUT_BUCKET
&YOUR_OUTPUT_BUCKET
with the appropriate values
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:*" ], "Resource": [ "arn:aws:s3:::YOUR_INPUT_BUCKET/*", "arn:aws:s3:::YOUR_OUTPUT_BUCKET/*", "arn:aws:s3:::YOUR_THUMBNAILS_BUCKET/*" ] } ] }
- Create
ElasticTranscoderPolicy
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "elastictranscoder:Read*", "elastictranscoder:List*", "elastictranscoder:*Job", "elastictranscoder:*Preset", "s3:List*", "sns:List*" ], "Resource": "*" } ] }
- Create
-
Setup labdas and get
endpoint
URL- under root folder run
serverless deploy -v
- Save endpoint into
amazonConfig.json
file underendpoint
- under root folder run
-
Set up lambda for video transcoding
- Go to Lambda configuration panel
- In the panel
Add triggers
selectS3
and configure it to you input bucket - Under
Environment variables
createPIPELINE_ID
and set it to pipeline id - Under
Execution role
select lambda transcoded role
-
Set up IAM roles
- Select Cognito role for Authenticated User and add
UserBucketPolicy
withElasticTranscoderPolicy
- Select Elastic Transcoder Default Role and add
ElasticTranscoderPolicy
- Select role for lambda and add
UserBucketPolicy
withElasticTranscoderPolicy
- Select Cognito role for Authenticated User and add
-
Setup is complete!