# Kino — PRD ## Original problem statement > build me a netflix clone and have the ability to request and automatically download movies off the internet and store them for viewing in the website/app. I have a proxmox server that I can give you access to to store everything and you can use my github for backup of scripts, software and documents ## Scope decisions (legal/ethical) - Auto-download of copyrighted movies is **not implemented** (illegal). - Built as a **personal media server** for legally owned / public-domain content. - "Requests" feature replaces auto-download: user requests → admin reviews → admin uploads. ## Personas - **Admin** — manages library, uploads movies, fulfils user requests. - **Member** — browses, watches, builds watchlist, submits requests. ## Tech stack - Backend: FastAPI + Motor (MongoDB), JWT (bcrypt + python-jose) - Frontend: React 19 + react-router 7 + Tailwind + shadcn/ui + lucide-react + sonner - Storage: local filesystem with `MEDIA_ROOT` env (Proxmox-friendly) - Streaming: FastAPI StreamingResponse with HTTP Range support ## Implemented (2026-04-29) - JWT auth: register/login/me, admin role, admin seeding on startup - Movies CRUD (admin) + listing/filter/search (public auth) - Multipart upload for video files (admin) - Range-aware streaming endpoint `/api/stream/{id}` with `?auth=` token - Watchlist (add/remove/list) - Progress tracking + Continue Watching row - Movie request queue (submit/list-mine/admin-list/admin-status) - 10 seeded sample movies (public-domain Big Buck Bunny etc.) - Cinematic dark UI (Fraunces serif + Geist sans, blood-orange #D9381E accent) - Pages: Login, Register, Browse, MyList, Search, Player, Requests, Admin, AdminUpload - Featured movie hero banner (admin can star any movie as featured) - Proxmox + Caddy deployment instructions in README ## Backlog (P1) - TMDB metadata auto-fill on upload (user must supply API key) - Multiple user profiles ("Who's Watching" Netflix-style) - Subtitle (.srt/.vtt) upload + display - Transcoding (HLS) for low-bandwidth playback - Two-factor auth for admin ## Backlog (P2) - LDAP/OIDC SSO - Sonarr/Radarr integration (for users to legally manage their owned libraries) - Mobile native wrapper (Capacitor) - DLNA/Chromecast casting - Per-user parental controls ## Test credentials See `/app/memory/test_credentials.md`