Dylan De Faoite 662966f138 14 standardize and clean api and fix bruno configuration (#25)
* ADD JWT authentication support with token generation and validation

* ADD JWT handling after successful login

* ADD user authentication and standardize user retrieval

* COMBINE token dtos

* ADD JWT authentication filter

* IMPROVE token handling

* STANDARDIZE API endpoints and improve JWT handling

* REMOVE extra logging

* REMOVE redundant job existence checks

* UPDATE Bruno Google token

* REFACTOR some classes

* ADD JWT cookie check

* ADD AuthProvider and CORS configuration; UPDATE API endpoints for consistency

* ADD JWT validation check;

* ADD profile picture to database

* ADD reload after login to update page

* PATCH login issue

* REMOVE unused classes

* ADJUST logging in JwtFilter

* REMOVE unused React component
2025-08-10 22:41:37 +02:00
2025-06-03 10:39:06 +02:00
2025-06-03 10:39:06 +02:00
2025-06-03 10:39:06 +02:00
2025-06-03 10:44:46 +02:00

Overview

The VoD System is a powerful clip management platform designed to streamline how you handle your video content. Whether you're a content creator, streamer, or educator, VoD System lets you:

  • Upload clips effortlessly and securely.
  • Edit and trim videos with intuitive controls.
  • Compress files to specific file sizes.
  • Organize your clips for quick access and sharing.

This VoD system began as a small project back in my 5th year of secondary school, during lockdown. I wanted a quick way to send game clips to Discord, but the 8MB file size limit made it frustrating to manually tweak bitrates for every clip. To solve that, I wrote a simple Python script to automate the process. What started as a quick fix has since evolved into a full-fledged system — now built with a Spring Boot backend and a modern React/Vite frontend.

Requirements

  • Docker & Docker Compose
  • JDK 21+
  • Node.js 16+
  • FFMPEG

Steps

  1. Spin up docker container with docker compose up
  2. Run ./mvnw clean package to build the jar
  3. Run ./mvnw spring-boot:run to run the backend section
  4. Run cd frontend && npm install && npm run dev to build and run the frontend
  5. Endpoints should be available at 8080 (backend) and 5173 (frontend)

Future Plans

  • User Management
    • Database integration with authentication and login
    • Clip saving and management for authenticated users
  • Format Handling
    • Backend conversion of non-MP4 files via FFMPEG for broader format support
  • Input Sources
    • Support for local file uploads and YouTube imports
  • Testing
    • Unit tests, including coverage for FFMPEG-related functionality
  • API Documentation
    • Comprehensive and maintainable backend API docs
Description
A lightweight VoD system for uploading, editing, and compressing video clips to a target file size for easy sharing.
Readme 924 KiB
Languages
Java 59.9%
TypeScript 36.7%
CSS 2.1%
JavaScript 0.6%
Dockerfile 0.4%
Other 0.3%