← all repositories
kishan0725/AJAX-Movie-Recommendation-System-with-Sentiment-Analysis

A movie recommender that reads the room — literally

This Flask app pairs content-based recommendations with sentiment analysis of IMDB reviews, all glued together with AJAX calls and a TMDB API key.

610 stars Jupyter Notebook Domain AppsData Tooling
AJAX-Movie-Recommendation-System-with-Sentiment-Analysis
Velocity · 7d
+0.3
★ / day
Trend
steady
star history

What it does

Type a movie, get back similar titles. Pick one, and the app scrapes IMDB reviews with BeautifulSoup, then runs sentiment analysis to tell you whether audiences loved it or hated it. The whole thing is a Flask server with a plain HTML/JS frontend; “AJAX” in the name mostly means the frontend fetches results without page reloads.

The interesting bit

The author built their own cosine-similarity recommender from movie metadata rather than using an off-the-shelf engine. The catch: it only handles English-language movies because a full multi-language Count Vectorizer matrix for TMDB’s 700,000+ titles ate 200% RAM even on Heroku. The author spun that limitation into a separate project, “The Movie Cinema,” which uses TMDB’s built-in recommendation engine instead.

Key highlights

  • Content-based filtering using cosine similarity on movie text features (genre, overview, etc.)
  • Live IMDB review scraping via BeautifulSoup4, fed into sentiment analysis
  • TMDB API for movie metadata and posters
  • Fuzzy search handles typos if auto-suggest misses your title
  • YouTube demo and featured in Krish Naik’s live session

Caveats

  • Requires manual API key insertion in two places in a JS file (line 15 and 29)
  • The “AJAX” branding is slightly aspirational; it’s standard fetch/XHR patterns
  • Web scraping IMDB is brittle by nature; layout changes break the sentiment pipeline

Verdict

Good for students who want to see a full-stack ML pipeline wired together end-to-end, warts and all. Skip it if you need production-grade recommendations or a maintainable scraper.

heatdrop uses Google Analytics to see which pages get read — nothing else. Your call. How we handle data.