Skip to content

This project is a scalable video streaming web application built on AWS. It allows users to upload, store, process, and stream video content efficiently. Utilizing a serverless architecture, the application is designed to scale automatically with demand.

Notifications You must be signed in to change notification settings

PasanAbeysekara/video-streaming-web-app-using-aws-services

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Video Streaming Web Application Using AWS Services

This is a video streaming web application built using AWS. It allows users to upload, store, process, and stream videos. The serverless architecture ensures scalability and a seamless streaming experience.

Tech Stack

React.js Badge Node.js Badge AWS Lambda Badge AWS API Gateway Badge AWS S3 Badge AWS CloudFront Badge AWS Amplify Badge

Architecture Overview

  • Amazon S3: Stores videos securely.
  • Amazon CloudFront: Ensures fast global video delivery.
  • AWS Lambda: Manages video processing.
  • Amazon API Gateway: Handles video uploads and management.
  • Amazon DynamoDB: Keeps track of video metadata and user stats.
  • Amazon Amplify: Simplifies app deployment.

Features

  • Upload and store videos.
  • Automatic video processing.
  • Secure and scalable streaming.
  • User authentication.
  • Analytics on video engagement.

Backend Testing Overview

Our backend testing suite ensures robust and reliable operation through:

  1. Model Testing with Mocha & Chai:

    • Verifies that the Video model behaves as expected, including data integrity for attributes like name, views, and likes.
  2. API Endpoint Testing using Chai-HTTP:

    • Ensures the /api/videos route fetches all videos correctly, checking for a 200 status and an array response.

Running the Tests

Execute our comprehensive test suite to validate backend functionality before deployment:

npm run mocha

Setup

Prerequisites

  • AWS Account
  • AWS CLI
  • Node.js and npm

Deployment Steps

  1. AWS Setup:

    • Create S3 buckets for video storage.
    • Set up a CloudFront distribution for video delivery.
    • Deploy Lambda functions for video processing.
    • Configure Amazon API Gateway for video management.
    • Set up DynamoDB tables for metadata.
  2. IAM Configuration:

    • Create roles for Lambda, API Gateway, and other services.
  3. Web Application Deployment:

    • Amazon S3 Hosting:
      • Create an S3 bucket for hosting.
      • Enable static website hosting.
      • Upload your application and set public read permissions.
    • AWS Amplify:
      • Connect your Git repository.
      • Configure build settings.
      • Deploy your application.

Usage

To use the app, start by uploading videos. You can then stream videos, and interact with features like liking and commenting.

About

This project is a scalable video streaming web application built on AWS. It allows users to upload, store, process, and stream video content efficiently. Utilizing a serverless architecture, the application is designed to scale automatically with demand.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published