Skip to content

Building a modern "Video Streaming Application". Working on developing the good backend code quality.

Notifications You must be signed in to change notification settings

MOHINI1403/VideoStreamingApplication

Repository files navigation

Video Streaming Application

A full-featured video streaming platform built on Node.js and Express.js, offering an interactive, personalized user experience with real-time analytics, secure user management, and dynamic media content handling. Deployed on Azure App Services, this application employs a CI/CD pipeline via GitHub Actions for smooth, scalable deployment.

Node.js MongoDB npm Cloudinary Postman Azure App Services


Key Features

  • Secure User Authentication: JWT-based authentication with separate access and refresh tokens, stored securely in the user model, ensures safe and reliable user access.
  • User Profile and History Management: MongoDB tracks user profiles, watch history, and subscription details, allowing seamless video consumption and personalized interaction tracking.
  • Channel Subscription System: Users can subscribe or unsubscribe to channels, view the list of their subscriptions, and check a channel’s subscriber details.
  • Cloud-Based Media Management: Cloudinary integration enables users to easily upload and update profile avatars and channel cover images.
  • Efficient Data Management: MongoDB aggregation pipelines power advanced features, supporting efficient handling of user watch history and subscriptions.
  • Robust Error Handling and Validation: Comprehensive error handling ensures a smooth user experience with clear error messaging and input validation.
  • CI/CD Pipeline for Scalable Deployment: GitHub Actions streamline the CI/CD pipeline, enhancing deployment efficiency and scalability.
  • Real-Time Analytics and Health Monitoring: Real-time analytics and a health-check API maintain platform stability and responsiveness.

Technology Stack

  • Backend: Node.js, Express.js
  • Database: MongoDB (with Aggregation Pipelines)
  • Authentication: JWT for access and refresh tokens, bcrypt for secure password hashing
  • Media Management: Cloudinary for avatar and cover image storage
  • CI/CD and Deployment: GitHub Actions, Azure App Services

Model Structure:

Model Image


API Endpoints

API Endpoints


Setup and Installation

Prerequisites

Installation

  1. Clone the Repository

    git clone https://github.com/your-username/video-streaming-app.git
    cd video-streaming-app
  2. Install Dependencies

    npm install
  3. Configure Environment Variables: Add a .env file for JWT secret keys, MongoDB URI, Cloudinary credentials, and any other configuration.

  4. Run the Application

    npm start
  5. Test the Application

    npm test

Deployment

  1. Configure Azure App Services settings.
  2. Deploy using GitHub Actions for automatic deployment on each commit to the main branch.

Contributing

Contributions are welcome! Please fork this repository, create a new branch, and submit a pull request with your changes.


License

This project is licensed under the MIT License. See the LICENSE file for details.


About

Building a modern "Video Streaming Application". Working on developing the good backend code quality.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published