https://sharing.clickup.com/9013913601/l/h/5-90135396944-1/65f5a890d2d3e36
Portfolio‑grade microservices video platform built with Java (Spring Boot), Node.js, and a React / Next.js front‑end.
Demonstrates clean architecture (DDD + Hexagonal), asynchronous processing with Kafka, and modern observability patterns.
| Service | Tech | Purpose |
|---|---|---|
| gateway | Spring Cloud Gateway | Single ingress – routing, OAuth2 token relay |
| user‑service | Spring Boot + Postgres | Stores Keycloak user ID and profile data |
| video‑service | Spring Boot + Mongo | Uploads, metadata, feed, streaming, playlists (delivery 2) |
| processing‑video‑service | Node.js + Express + Kafka | Consumes VIDEO_UPLOADED, generates thumbnails, marks video processed |
| scheduling‑service | Spring Boot + Postgres | Generates publication time‑slots & validates schedules |
| front‑end | Next.js (React 18 + TypeScript) | SPA with protected routes & video player |
- Front‑end hits
POST /videoson video‑service via the gateway. - video‑service stores the temporary file, writes metadata to Mongo (
status=UPLOADING), and emits aVIDEO_UPLOADEDKafka event. - processing‑video‑service consumes the event, performs lightweight processing (e.g., thumbnail service), then
PATCH /videos/{id}/status→PROCESSED. - The public feed (
GET /videos/feed) returns onlyPUBLISHEDitems. My Uploads shows every status.
- Spring Boot 3 / Java 21 – REST APIs, JPA, observability.
- Node.js 18 + Express – event consumer & processing.
- Next.js 14 + React 18 + TypeScript – front‑end SPA, server components, React Query.
- Kafka – decoupled event pipeline.
- MongoDB & PostgreSQL – polyglot persistence (document vs. relational).
- Spring Cloud Gateway – token relay & routing.
- Resilience4j – circuit breakers (Delivery 3).
- Spring Cloud Sleuth & Zipkin – distributed tracing (Delivery 3).
- Docker Compose – local‑dev orchestrator.
- DDD + Hexagonal – ports/adapters isolation, clear domain boundaries.
| Delivery | Scope |
|---|---|
| 1. Core UX & Upload Pipeline | Login / logout, Home feed, upload modal, My Uploads, streaming page, upload + processing pipeline |
| 2. Scheduling & Playlists | Admin page for time slots, scheduling endpoints, playlist CRUD in video‑service & UI |
| 3. Observability & Resilience | Circuit breaker, distributed tracing, metrics dashboards, UI polish |