/Streaming_App

Prealpha Version - Django, React, WebRTC

Primary LanguageTypeScript

🎥 Streaming App Overview

The Streaming App provides a versatile platform that enables users to create thematic rooms, broadcast video content and chatting.

🛠 Technologies Used

Backend

  • Language: Python 🐍
  • Framework: Django 🌟

Frontend

  • Languages: JavaScript (TypeScript) 📜
  • Framework: React ⚛️
  • Styling: Tailwind CSS 🌬️

Database

  • Type: SQLite 📁

Streaming Module

  • Technology: WebRTC 📡
  • SFU Server: Ion-SFU 🚀

Deployment

  • Containerization: Docker 🐳
  • Web Server: Nginx ✳️

Key Features

🔒 Authentication

Utilizes Django's built-in authentication for session management and CSRF protection, ensuring a secure user experience.

  • Secure User Identification
  • Protection Against CSRF Attacks
  • Customizable Authentication Flow

🚪 Private Rooms

Allows users to create password-protected rooms with custom tokens for added security and privacy.

🔐 Security Tokens

Implements various tokens for enhanced security, including CSRF, SessionId, and RoomId.

🌐 WebRTC with SFU Server

Employs the SFU server model for efficient, low-latency broadcasting.

☎️ Django Channels

This Django feature has been used to let sending messages between users, checking online watchers and following count of users live in each stream.

Screenshot from 2024-03-10 14-29-54 Screenshot from 2024-03-10 14-29-25

📄 Architecture Overview

Illustrates the app's network architecture and communication flow.

Screenshot from 2024-03-10 14-29-25

Installation Guide

  1. Clone the Repository
    git clone https://github.com/sit3kk/Streaming_App.git
    
  2. Backend
    cd Streaming_App
    sudo docker-compose up --build
    
  3. Frontend
    cd Streaming_App/reactapp
    yarn start