2025 · personal project

Video Sharing Web App

A screenshot of the homepage for a Video Sharing app. Shows a grid of videos

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

A screenshot of a the Library page of the Video Sharing app. A filter dropdown is shown

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

Upload Video

A screenshot of the admin dashboard

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

A diagram of the 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

A screenshot of the thumbnail choosing feature

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

Managing Tags

A screenshot of the manage tags form

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

Managing Videos

A screenshot of the manage videos form

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