Skip to content

Latest commit

ย 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐ŸŽฌ Video Streaming Platform

A microservices-based video streaming platform designed to provide scalable, modular, and reliable video content management and streaming.


๐Ÿ“Œ Overview

The Video Streaming Platform is built using a microservices architecture, where each major functionality is developed and deployed as an independent service.

The project demonstrates:

๐Ÿ”น Microservices Architecture ๐Ÿ”น Service Discovery ๐Ÿ”น API Gateway ๐Ÿ”น Centralized Configuration ๐Ÿ”น RESTful APIs ๐Ÿ”น Inter-Service Communication ๐Ÿ”น Video Catalog Management ๐Ÿ”น Video Streaming ๐Ÿ”น Fault Tolerance ๐Ÿ”น Containerized Deployment


๐Ÿ—๏ธ Architecture

Architecture


๐Ÿš€ Features

๐ŸŽฅ Video Catalog

๐Ÿ”น Add video/movie information ๐Ÿ”น Retrieve movie details ๐Ÿ”น Browse available movies ๐Ÿ”น Search movies ๐Ÿ”น Manage movie metadata

โ–ถ๏ธ Video Streaming

๐Ÿ”น Stream video content ๐Ÿ”น Handle video streaming requests ๐Ÿ”น Support large video files ๐Ÿ”น Efficient content delivery

๐ŸŒ API Gateway

๐Ÿ”น Single entry point for clients ๐Ÿ”น Request routing ๐Ÿ”น Service abstraction ๐Ÿ”น Centralized API access

๐Ÿ” Service Discovery

๐Ÿ”น Dynamic service registration ๐Ÿ”น Service lookup ๐Ÿ”น Load-balanced communication between services

โš™๏ธ Centralized Configuration

๐Ÿ”น Externalized application configuration ๐Ÿ”น Environment-specific configurations ๐Ÿ”น Centralized configuration management


๐Ÿงฉ Microservices

Service Responsibility
api-gateway Routes client requests to appropriate services
service-registry Registers and discovers microservices
config-server Provides centralized configuration
movie-catalog-service Manages movie/video metadata
video-streaming-service Handles video streaming
database Stores application data

๐Ÿ› ๏ธ Tech Stack

Backend

๐Ÿ”น โ˜• Java ๐Ÿ”น ๐ŸŒฑ Spring Boot ๐Ÿ”น โ˜๏ธ Spring Cloud ๐Ÿ”น ๐Ÿ”— REST APIs ๐Ÿ”น ๐Ÿ“ก Microservices

Infrastructure

๐Ÿ”น ๐Ÿ” Service Discovery ๐Ÿ”น ๐Ÿšช API Gateway ๐Ÿ”น โš™๏ธ Config Server ๐Ÿ”น ๐Ÿณ Docker ๐Ÿ”น ๐Ÿ”„ CI/CD

Database

๐Ÿ”น ๐Ÿ—„๏ธ PostgreSQL / MySQL

Development Tools

๐Ÿ”น ๐Ÿ™ Git ๐Ÿ”น ๐Ÿ“ฎ Postman ๐Ÿ”น ๐Ÿงฐ Maven ๐Ÿ”น ๐Ÿ’ป IntelliJ IDEA / Eclipse


๐Ÿ“‚ Project Structure

video-streaming-platform/
โ”‚
โ”œโ”€โ”€ api-gateway/
โ”‚
โ”œโ”€โ”€ service-discovery/
โ”‚
โ”œโ”€โ”€ config-server/
โ”‚
โ”œโ”€โ”€ movie-catalog-service/
โ”‚
โ”œโ”€โ”€ video-streaming-service/
โ”‚
โ”œโ”€โ”€ Config/
โ”‚
โ””โ”€โ”€ README.md

๐Ÿ”„ Request Flow

Client
   โ”‚
   โ–ผ
API Gateway
   โ”‚
   โ–ผ
Service Discovery
   โ”‚
   โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ–บ Movie Catalog Service
   โ”‚
   โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ–บ Video Streaming Service
                         โ”‚
                         โ–ผ
                      Storage

๐Ÿ”Œ API Endpoints

Movie Catalog

Method Endpoint Description
POST /movie-info/save Saves all movies from Store
GET /movie-info/lists Get all movies information
GET /movie-info/find-by-id/{movieIndoId} Get movie path by ID

Movie Streaming

Method Endpoint Description
GET /movie-stream/{videoPath} Stream video
GET movie-stream/with-id/{movieInfoId} Gets movie path from catelog service

โš™๏ธ Configuration

Configuration is managed using the centralized configuration service.

Example:

server:
  port: 8080

spring:
  application:
    name: movie-catalog-service

โ–ถ๏ธ Getting Started

Prerequisites

Make sure the following are installed:

๐Ÿ”น Java 21+ ๐Ÿ”น Maven ๐Ÿ”น Git ๐Ÿ”น Docker (optional) ๐Ÿ”น PostgreSQL / MySQL

Clone the Repository

git clone https://github.com/Vansh-829/Video-Streaming-App.git
cd video-streaming-platform

Build the Project

mvn clean install

Run the Services

Start the services in the following order:

1. Config Server
2. Service Discovery
3. API Gateway
4. Movie Catalog Service
5. Movie Streaming Service

๐Ÿ“Š Monitoring & Observability

The platform can be extended with:

๐Ÿ”น Spring Boot Actuator ๐Ÿ”น Application logging ๐Ÿ”น Distributed tracing ๐Ÿ”น Metrics ๐Ÿ”น Centralized log management


๐Ÿ” Security

Potential security features include:

๐Ÿ”น Authentication ๐Ÿ”น Authorization ๐Ÿ”น JWT-based security ๐Ÿ”น API endpoint protection ๐Ÿ”น Secure service-to-service communication


๐Ÿš€ Future Enhancements

  • User authentication
  • User profiles
  • Watch history
  • Recommendations
  • Video upload
  • Video transcoding
  • Redis caching
  • Kafka-based event processing
  • Rate limiting
  • Distributed tracing
  • Kubernetes deployment
  • CI/CD pipeline

๐Ÿ“ธ Screenshots

๐Ÿ”น Home PageHome ๐Ÿ”น Video PlayerVideo ๐Ÿ”น Eureka ServiceEureka


๐ŸŽฏ Learning Objectives

This project demonstrates practical implementation of:

๐Ÿ”น Microservices architecture ๐Ÿ”น Spring Boot ๐Ÿ”น Spring Cloud ๐Ÿ”น API Gateway ๐Ÿ”น Service Discovery ๐Ÿ”น Centralized Configuration ๐Ÿ”น REST API development ๐Ÿ”น Database integration ๐Ÿ”น Inter-service communication ๐Ÿ”น Containerization ๐Ÿ”น Scalable backend design


๐Ÿ‘จโ€๐Ÿ’ป Author

Vansh Gala

๐Ÿ”น ๐Ÿ’ผ LinkedIn ๐Ÿ”น ๐Ÿ™ GitHub ๐Ÿ”น ๐Ÿ“ง Email


โญ Support

If you find this project useful, consider giving it a โญ on GitHub.

About

Video Streaming App using microservice based architecture. Implemented different services such as gateway, config server, microservices , service registry, etc .

Topics

Resources

Stars

2 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages