Skip to content

Video Touch is a Video Hosting & Streaming platform. In Video Touch users can easily upload, manage and stream videos on demand

Notifications You must be signed in to change notification settings

toufiq-austcse/video-touch

Repository files navigation

Video Touch

Video Touch is a Video Hosting & Streaming platform. In Video Touch users can easily upload, manage and stream videos on demand.

Table Of Contents

The Goals Of This Project


  • Implementing video processing with the help of asynchornus job queue
  • Generating video thumbnail
  • Using RabbitMQ as a Job Queue
  • Using Event Driven Communications
  • Using GraphQL for client side communications
  • Using AWS s3 as storage
  • Stream videos with CDN (AWS Cloudfront)
  • Building a simple Dashboard with Next.js and shadcn/ui
  • Using Github Actions for implenting CI
  • Using Docker-Compose for our deployment mechanism.

Features


  • User Login/Registration
  • Video Upload
  • Video Transcoding in several resolutions(720p,540p,480p,360p)
  • Automatic Thumbnail Generation
  • Stream videos on Demand with CDN

Technologies


Backend Architecture


How To Run


To run this project locally, follow these steps:

  1. Clone this repository
git clone git@github.com:toufiq-austcse/video-touch.git
  1. Run server app
  • You will need AWS credentials, S3 Bucket and Cloudfront distribution

  • From project directory run the following commands:

    cd server
    cp example.env .env
    
  • Put your aws credentials, s3 bucket name and cloudfront cdn url in the following env's value

    AWS_ACCESS_KEY_ID=
    AWS_REGION=
    AWS_SECRET_ACCESS_KEY=
    AWS_S3_BUCKET_NAME=
    CDN_BASE_URL=
    
  • Create a seperate diretory for videos in your s3 bucket and put directory url in the following env value. Example value https://test-bucket.s3.ap-southeast-1.amazonaws.com/videos

    VIDEO_BASE_URL=
    
  • Put your JWT secret key and token expiren value in seconds in the following env's value

    JWT_SECRET=
    JWT_EXPIRATION_TIME_IN_SEC=
    
  • Run the follwong command

       docker compose up -d
    
  1. Run the Frontend app
  • From project directory run the following commands:
    cd frontend
    docker compose up -d
    

Frontend


Click here to show the screenshots of the project

SignUp Page

Login Page

Dashboard

Video Details Page

Import Video From Link

Upload Video

Edit Video Details

About

Video Touch is a Video Hosting & Streaming platform. In Video Touch users can easily upload, manage and stream videos on demand

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published