FilmVault (AI-Automated Movie Tracker)
FilmVault (AI-Automated Movie Tracker) — an experiment shown in the showcase reel.
Lifecycle
Video
FilmVault (AI-Automated Movie Tracker) — an experiment shown in the showcase reel.
Details
Prompt
CONTEXT This mimics a real content acquisition workflow used in OTT/media companies: search a film, auto-pull its metadata, log it in a tracker, and manage its rights/acquisition status over time. TECH STACK - Backend: Python, Flask, Flask-CORS - External API: OMDB API (http://www.omdbapi.com) -- free tier, needs an API key - Data storage: Excel file (films.xlsx) via openpyxl - Frontend: plain HTML, CSS, JavaScript (no framework) CORE FEATURES 1. Search bar where I type a film title (e.g. "RRR"). 2. On search, call the OMDB API and fetch: title, year, language, genre, director, cast, IMDB rating, plot, and poster URL. 3. Display the result as a card: poster image on one side, details on the other. 4. Below the fetched details, show editable fields for: - Rights Status (dropdown: Available / Acquired / Expired) - Agreement Expiry (date picker) - Follow-up Status (dropdown: Pending / In Progress / Completed) 5. A "Save" button that writes the film (fetched data + the 3 editable fields + today's date as "Added On") as a new row into films.xlsx, creating the file with proper headers if it doesn't exist yet. 6. A table below the search section listing all films currently saved in films.xlsx, reading from the Excel file live. 7. Each row in the table should be editable -- let me update Rights Status, Agreement Expiry, or Follow-up Status for an existing entry and save the change back to the Excel file. 8. A "Download Excel Report" button that lets me download the current films.xlsx file. EXCEL COLUMNS (in this order) Film Name | Year | Language | Genre | Director | Cast | IMDB Rating | Plot | Rights Status | Agreement Expiry | Follow-up Status | Added On BACKEND ROUTES NEEDED - GET / -> serve the frontend - GET /search?title=... -> call OMDB, return JSON film data - POST /save -> append a new row to films.xlsx - GET /films -> return all saved films as JSON (for the table) - POST /update -> update an existing row's editable fields - GET /download -> download films.xlsx REQUIREMENTS - Use an OMDB API key from an environment variable (OMDB_API_KEY), and clearly show me where to put my own key. - Handle the case where OMDB returns "Movie not found." - Format the Excel sheet nicely: bold headers, auto-sized columns, and a header row background color using openpyxl styling. - Keep the frontend simple and clean -- a single index.html with inline CSS/JS is fine, styled like a lightweight internal tool, not flashy. - Include a requirements.txt (flask, flask-cors, openpyxl, requests). - Include a short README with setup steps: install dependencies, add API key, run app.py, open localhost:5000. DELIVERABLE Give me the full project: app.py, index.html, requirements.txt, and README.md, structured so I can just drop in my OMDB API key and run it locally.