
Overview
This video sharing webapp for a martial arts gym allows members to watch and favorite instructional videos uploaded by the admin. Users are authenticated and authorized using express sessions stored in a Redis database. The admin creates tags for the video in order to allow members to filter their searches. Upon uploading a video, a frame is chosen out of the uploaded video to set as a thumbnail. Videos are uploaded directly to an AWS S3 bucket with a pre-signed url, then optimized for filesize through AWS MediaConvert saving storage space.
Screenshots
Library

Members can filter videos in Library, This week, and Favorites using tags created by an admin.
Upload Video

Admins can drag and drop or click to upload videos, add tags that have been created, set the skill level, and include the instructor's name.
AWS Pipeline

Upon uploading a video (1,2) the client sends a request to the server for a pre-signed url to upload to an AWS S3 bucket. (3) The client then sends the uploaded video and thumbnail to the input S3 bucket. (4) Using a lambda function, (5) a MediaConvert job is started that is configured to optimize the video's file size. (6) Once upload is complete, the MediaConvert job outputs the new optimized video to the S3 output bucket. (7) The client is then able to request the optimized video from the S3 output bucket.
Choosing a Thumbnail

Admins can then select a frame from the uploaded video to set as a thumbnail.
Managing Tags

Admins create, edit, and delete tags to attach to videos for members to filter videos with.
Managing Videos

Here admins can update or delete titles, tags, and videos