Skip to content

Funny Movies — Personal Project

Built for fun. Learning by doing.

A personal side project for streaming funny videos — built to explore modern backend architecture, AI-assisted development, and real-world engineering practices. No business pressure, just curiosity and a love for building things.


Why This Project Exists

Goal What I'm exploring
Build something real End-to-end video streaming system — not just a tutorial
Learn modern tech Java 24 Virtual Threads, Spring Boot 3.x, React 19, HLS streaming, Kubernetes
Learn AI-assisted dev Using Claude Code to scope features, write ADRs, generate plans, and implement code
Practice good engineering ADRs, PRDs, architecture diagrams, coverage gates, CI/CD pipelines
Take security seriously Bitwise permissions, feature flags, Trivy scanning, magic link auth

Tech Stack

Backend: Java 24 · Spring Boot 3.x · Virtual Threads (Project Loom) · PostgreSQL · Liquibase · Guava Cache · JWT · OpenTelemetry

Frontend: React 19 · Vite · TanStack Query · React Router · Bootstrap 5

Infrastructure: Docker · Kubernetes · Helm · GitHub Actions · Docker Hub

AI Tooling: Claude Code — for scoping, architecture decisions, implementation, and documentation


How Features Are Built

Every feature follows a structured flow powered by Claude:

/scope → PRD → /architect → ADR → /swarm-plan → Plan → /swarm-execute → /qa-engineer → /code-review → merge

See the full guide: From Scope to Implementation · Tiếng Việt


Architecture Documents


Architecture Decisions (ADRs)

ADR Title Status
ADR-0001 Use Relational Database (PostgreSQL) for Core Data Accepted
ADR-0002 Use Layered Spring Boot Architecture with Virtual Threads Accepted
ADR-0003 Use Guava Cache Initially, with Planned Migration to Redis Accepted
ADR-0004 Use Vanilla JS + Bootstrap with Planned Migration to React Accepted
ADR-0005 Use LRU Cache for Video Streaming Accepted
ADR-0006 Switch to HLS for Local Video Streaming Proposed
ADR-0007 Admin Dashboard — Content & Account Management Accepted
ADR-0008 Migrate Frontend to React with Vite Proposed
ADR-0009 Unified Video List API for UI Display Proposed
ADR-0010 Add Trivy Dependency & Filesystem Scanning to CI Accepted
ADR-0011 Hot Video Priority Scoring Accepted
ADR-0012 Bookmark Feature — Storage and API Design Proposed