Movie Ranker

Phase 1 — Server & local database

  • Create a server with /search?title, /search?actor, /movie/<id> endpoints
  • Create a SQLite database storing movies, actors, ratings, trailers, reviews
  • Aggregates the ratings from various sources to 0–5 and 0–100 scales

Functional result: Running the server and calling /search?title=Inception returns a normalized JSON movie object with aggregated scores (both 0–5 and 0–100) or empty arrays if not yet known (stored in the database).


Phase 2 — External fetch & caching

  • Create adapters (at least 3) for IMDb, RottenTomatoes, TMDB, YouTube or other similar platforms
  • If the title is not stored: fetch data, normalize, and save to DB
  • Fetch short review snippets + links where available

Functional result: Unknown titles trigger live fetch, store, and return combined ratings, trailers, and reviews.


Phase 3 — Client GUI (Tkinter)

  • Search by title or actor
  • Display results list, rating details, trailers, and reviews
  • Open trailer links in browser

Functional result: The user searches by title or actor, sees a list of results, selects one, and the UI shows scores from multiple sites, trailers, and reviews; links open correctly.


Phase 4 — Refresh & minimal errors

  • “Refresh data” button to re-fetch from external sources
  • Minimal errors only: brief banner if an external source fails; partial results still displayed

Functional result: Selecting a movie and pressing Refresh re-pulls external data and updates aggregated scores.