Skip to content

WhyKash01/CineGraph

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

33 Commits
 
 
 
 
 
 
 
 

Repository files navigation

🍿 CineGraph

A Next-Generation Movie Discovery & Recommendation Platform

React Go Python Neo4j MongoDB Redis Tailwind CSS


CineGraph is a comprehensive, full-stack movie discovery platform. It provides users with an immersive experience for exploring films, cast, and crew, while offering highly personalized movie recommendations powered by a hybrid architecture of traditional relational data and graph-based machine learning.


🏗️ Architecture

Architecture Diagram AI Generated Architecture

The project is split into three core microservices:

  1. Frontend Client (/Client/Movie reviews): A modern, responsive React application built with Vite and Tailwind CSS.
  2. Primary API Server (/server/movie_server): A high-performance Go backend that manages core business logic, user authentication, and movie data serving.
  3. Recommendation Engine (/server/recommendation_server): A specialized Python microservice leveraging Neo4j and Natural Language Processing (NLP) to generate intelligent, context-aware movie recommendations.

✨ Detailed Features

🎬 Movie Discovery & Exploration

  • Comprehensive Movie Details: View deep metadata including synopsis, budget, revenue, runtime, release date, and original language.
  • Rich Media: Integrated YouTube facade for watching official trailers, behind-the-scenes footage, and cast interviews.
  • Cast & Crew Insights: Detailed sections for top cast and key crew members (directors, writers, producers). Navigate to individual person pages for full filmographies.
  • Production Context: Explore movies by production companies, spoken languages, and production countries.
  • Collections: Track movies that belong to a broader franchise or collection.

👤 User Engagement & Activity

  • Authentication: Secure JWT-based user registration and login.
  • Watchlist & History: Users can mark movies as "Watched" or remove them from their history.
  • Rating System: Interactive 10-star rating UI. Ratings influence the personalized recommendation engine.
  • Favorite Genres: Users can select favorite genres to tailor their default recommendations.
  • Dynamic User Tagging: Real-time interest tracking using Redis and Lua scripting. User interactions (watches, ratings) organically boost or penalize genre tags with an exponential time decay model, ensuring recommendations reflect current tastes.

🧠 Intelligent Recommendation Engine

The Python recommendation server uses a Neo4j graph database combined with advanced mathematical modeling to provide multi-layered, hyper-personalized recommendations:

  • TOPSIS Algorithm & Cosine Similarity: Employs the Technique for Order of Preference by Similarity to Ideal Solution (TOPSIS). It calculates Cosine Similarity across positive and negative user tags, combined with a weighted crew score (valuing directors and lead actors), to precisely rank movies based on relative closeness to the user's ideal preference.
  • Fallback Mechanisms:
    • If a user lacks sufficient watch history or active tags, recommendations seamlessly default to movies matching their pre-selected favorite genres.
    • If no preferences are set, the system surfaces globally popular and trending movies.
  • NLP Integration: Utilizes sentence-transformers for semantic similarity matching during data ingestion and advanced querying.

🎨 Modern UI/UX Design

  • Dark Mode Aesthetic: A sleek, cinematic dark theme utilizing zinc and rose color palettes.
  • Micro-animations: Smooth hover effects, backdrop gradients, and transition animations for a premium feel.
  • Responsive Layouts: Fully responsive grid systems and components optimized for both desktop and mobile viewing.
  • Refined Navigation: Enhanced user flows with components like a floating Scroll-to-Top button and dynamic, data-rich movie cards.

🛠️ Technology Stack

Layer Technologies
Frontend React 19, Vite, TypeScript, Redux Toolkit, React Router v7, Tailwind CSS, shadcn/ui
Primary Backend Go 1.24, Gin Web Framework, JWT Auth, LangChainGo, Redis
Recommendation Engine Python, FastAPI, Uvicorn, sentence-transformers
Databases MongoDB, Neo4j, Redis (for real-time tag decay)

🚀 Getting Started

Prerequisites

  • Node.js & npm (for the React Client)
  • Go 1.24+ (for the Movie Server)
  • Python 3.x (for the Recommendation Server)
  • MongoDB (Local or Atlas instance)
  • Neo4j (Local Desktop or AuraDB instance)
  • Redis (Local or Cloud instance for user tags)

Setup Instructions

1. Movie Server (Go)

cd server/movie_server
# Copy the example environment file and configure it with your MongoDB URI and JWT secrets
cp .env.example .env
# Download dependencies
go mod download
# Run the server on default port 8000
go run main.go

2. Recommendation Server (Python)

cd server/recommendation_server
# Create a virtual environment
python -m venv venv
# Activate the virtual environment
source venv/bin/activate  # On Windows use: venv\Scripts\activate
# Install dependencies
pip install -r requirements.txt
# Set up environment variables (.env) for Neo4j and MongoDB URIs
# Run the FastAPI server on port 8001
uvicorn main:app --reload --port 8001

3. Client (React/Vite)

cd "Client/Movie reviews"
# Install dependencies
npm install
# Run the development server
npm run dev

About

Movie recommendation with more than 10,000 movie and show

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors