Skip to content

Latest commit

 

History

227 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 

Repository files navigation

🎬 VideoStreamingPlatform

A YouTube-like video streaming platform built as a collaborative project for RS1 – Razvoj Softvera 1 at FIT.

Authors:

  • Dino Salković
  • Irman Isić
  • Azer Pilavdžić

📌 Overview

VideoStreamingPlatform is a full-stack web application that allows users to:

  • Upload and manage videos
  • Watch and interact with video content
  • Like and comment on videos
  • Receive personalized video recommendations
  • Use advanced search (Full-Text + Predictive + Voice search)
  • Authenticate using JWT + verification code

## 🛠 Built With

| Technology | Version |

|----------------------------------|------------|

| ASP.NET Core | 8.0.11 |

| Entity Framework Core | 8.0.11 |

| Angular CLI | 19.1.5 |

| Microsoft SQL Server (LocalDB) | Developer Edition |

🚀 Getting Started

Backend

  Rebuild Solution

  Update-Database

  Run backend

Frontend

  ng serve

🔐 Test Accounts

Two preconfigured users are available:

| Role | Email | Password |

| ---------- | ------------------------------------- | ----------- |

| Basic User | [demo2@mail.ba](mailto:demo2@mail.ba) | BasicPass1! |

| Admin User | [demo3@mail.ba](mailto:demo3@mail.ba) | BasicPass2! |

For testing purposes:

  The verificaiton code is displayed in the browser console under:

  "Login response with code" -> commonResponse -> message

🧪 Testing Registration

  1. Run Backend
  2. Open Swagger
  3. Create new User
  4. Create corresponding UserValues entry
  5. Login through Frontend

⚙️ Features

🎥 Video Management

  • CRUD operations
  • Drag & Drop Upload
  • Thumbnail auto-generation
  • Video compression
  • Upload progress tracking

🔍 Search

  • Full-Text Search
  • Predictive Search Suggestions
  • Category filtering
  • Voice-to-Text search

🤖 Recommendation System

  • Behavioral analytics
  • Machine learning-based recommendations
  • Personalized content delivery

💬 Interaction

  • Like / Dislike system
  • Comment reactions
  • Optimistic UI updates

⏳ Background Jobs

  • Scheduled worker category cleanup (02:00 daily)

🧠 Authentication Flow

  1. Login with email & password
  2. Verification code sent via email
  3. Code must be entered to receive JWT token

(For demo purposes, the verification code is logged in the console)

📂 Project Structure

Backend (.NET 8)

VideoStreamingPlatform

├── Controllers # API endpoints

├── wwwroot # Static files (thumbnails, etc.)

├── appsettings.json # Configuration

├── Program.cs # Application entry point

├── Dockerfile # Container configuration

├── VideoStreamingPlatform.Commons

│ ├── DTOs # Data Transfer Objects

│ ├── Interfaces # Shared service interfaces

│ └── Hubs # SignalR hubs (if used)

├── VideoStreamingPlatform.Database

│ ├── Models # Entity models

│ ├── Migrations # EF Core migrations

│ ├── Helper # Database helpers

│ └── DbContext # Database context configuration

└── VideoStreamingPlatform.Service

  ├── AuthService

  ├── VideoService

  ├── CommentService

  ├── CategoryService

  ├── EmailService

  ├── RecommendationService

  ├── CategoryCleanupService (Background Worker)

  └── Other business logic services

Frontend (Angular 19)

src/app

├── components # Feature components (home, video-view, video-create, etc.)

├── services # API communication services

├── interfaces # TypeScript interfaces

├── guards # Route protection (AuthGuard, etc.)

├── material # Angular Material module aggregation

├── confirm-dialog # Reusable confirmation modal component

└── app.module.ts # Root Angular module

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages