Skip to content

AswinES97/Video-app-pub

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Video Upload, Transcode, and Live Stream Application

Welcome to the repository for our video upload, transcode, and live stream application. This project is currently under development, and I am excited to share my progress with you. Below, you will find all the necessary details about the project, its structure, technologies used, and how to get started.

Table of Contents

  1. Overview
  2. Diagram
  3. Technologies Used
  4. Project Structure
  5. Getting Started
  6. Starting the Cluster

Overview

This application allows users to upload videos, which are then transcoded and made available for live streaming. The backend is built with Node.js and Express, while the frontend is developed using Angular. We use a combination of MongoDB and PostgreSQL for data storage, and Kafka for messaging between microservices.

Diagram

Website

Technologies Used

  • Frontend: Angular 16, NGRX
  • Backend: Node.js 18.17, Express
  • Databases: MongoDB with mongoose, PostgreSQL with Sequelize ORM
  • Messaging: Kafka
  • Testing: Jest
  • Containerization: Docker
  • Orchestration: Kubernetes
  • Authentication: JWT HSA/RSA
  • Email: Node-Mailer
  • File Storage: AWS S3
  • Error Handling: Custom NPM package

Project Structure


root
│── backend
│   ├── apigateway
│   ├── auth
│   ├── infra
│   ├── isolated-uploader
│   ├── profile
│   ├── video
│   ├── ...
│── frontend
│   ├── src
│   │   ├── app
│   │   ├── assets
│   │   ├── environments
│   │   └── ...
│   ├── angular.json
│   ├── package.json
│   └── ...
└── ...

Getting Started

  • Prerequisites

    • Node.js 18.17
    • Docker
    • Kubernetes
    • MongoDB
    • PostgreSQL
    • AWS S3 CLI/aws-sdk
  • Clone the repository:

    git clone https://github.com/AswinES97/Video-app-pub.git

  • Install dependencies:
    1. In backend, npm install on all services if you want to run individual services.
    2. create .env for all services as mentioned in the respective readme file.
    3. In frontend, 'npm install'.

Starting the Cluster

  1. In backend, if you have a k8s cluster/minikube follow the readme on the backend to start.
  2. In frontend, ng serve

We welcome contributions from the community. Please follow these steps to contribute:

  • Fork the repository
  • Create a new branch (git checkout -b feature-branch)
  • Commit your changes (git commit -am 'Add new feature')
  • Push to the branch (git push origin feature-branch)
  • Create a new Pull Request

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published