SkillAgentSearch skills...

CINEMATCH

CineMatch is a movie recommendation system built with Apache Spark and Python. It supports new users with content-based suggestions and returning users with Spark ALS collaborative filtering. User ratings are stored in CSV, and recommendations are visualized with bar charts.

Install / Use

/learn @PraveenaaKannan/CINEMATCH
About this skill

Quality Score

0/100

Supported Platforms

Zed

README

🌐 CINEMATCH - AI-Powered Movie Recommendation Website

A beautiful, full-stack movie recommendation platform that combines Content-Based Filtering for new users and Collaborative Filtering (ALS) for returning users, built with Apache Spark, Flask, and modern web technologies.

✨ Features

  • 🎬 Beautiful Modern UI - Responsive design with animated components
  • 🧠 AI-Powered Recommendations - Apache Spark ALS model for collaborative filtering
  • 🎯 Content-Based Filtering - Smart recommendations based on genre/language preferences
  • 📊 Visual Analytics - Interactive charts showing rating insights
  • ⚡ Real-time Processing - Fast recommendations powered by Spark
  • 🌍 Multi-language Support - Movies in Hindi, Tamil, Telugu, Malayalam, English
  • 📱 Responsive Design - Works perfectly on all devices

🚀 Quick Start

Prerequisites

  • Python 3.8+
  • Java 8 or 11 (for Apache Spark)

Installation

  1. Clone and Navigate

    cd your-project-folder
    
  2. Install Dependencies

    pip install -r requirements.txt
    

    Or on Windows, run:

    install.bat
    
  3. Run the Application

    python app.py
    
  4. Access the Application

    • Main Website: http://localhost:5000
    • Spark UI: http://localhost:4040 (when Spark is running)

🏗️ Architecture

┌─────────────────────────────────┐
│         Frontend (HTML/CSS/JS)   │
│         Bootstrap + Custom CSS   │
└─────────────┬───────────────────┘
              │
              ▼
┌─────────────────────────────────┐
│         Flask Backend           │
│         Python Web Server      │
└─────────────┬───────────────────┘
              │
              ▼
┌─────────────────────────────────┐
│      Apache Spark Engine       │
│   • Content-Based Filtering    │
│   • ALS Collaborative Filtering │
│   • Real-time Processing       │
└─────────────┬───────────────────┘
              │
              ▼
┌─────────────────────────────────┐
│         CSV Data Store          │
│   • movies_full_dataset.csv    │
│   • movies_user_ratings.csv    │
└─────────────────────────────────┘

📁 Project Structure

cinematch/
├── app.py                      # Main Flask application
├── requirements.txt            # Python dependencies
├── install.bat                # Windows installation script
├── templates/                  # HTML templates
│   ├── index.html             # Beautiful home page
│   ├── new_user.html          # New user registration
│   ├── returning_user.html    # User login
│   ├── rate_movies.html       # Movie rating interface
│   └── recommendations.html   # Recommendation results
├── static/                    # Static assets
│   ├── css/
│   │   └── style.css         # Custom styles
│   ├── js/
│   │   └── main.js           # Interactive features
│   └── chart_images/         # Generated charts
├── movies_full_dataset.csv    # Movie database
├── movies_user_ratings.csv    # User ratings data
└── readme.txt                # Original project documentation

🎯 User Flows

New Users

  1. Landing Page → Choose "New User"
  2. Registration → Enter preferences (genres, languages)
  3. Rate Movies → Rate 10 recommended movies
  4. Get Recommendations → View personalized suggestions

Returning Users

  1. Landing Page → Choose "Returning User"
  2. Login → Enter User ID
  3. AI Recommendations → Get ALS-powered suggestions
  4. View Results → Interactive movie cards with predictions

🛠️ Technology Stack

| Layer | Technology | |-------|------------| | Frontend | HTML5, CSS3, JavaScript, Bootstrap 5 | | Backend | Flask (Python) | | AI Engine | Apache Spark, PySpark ALS | | Data | CSV files (scalable to databases) | | Visualization | Matplotlib, Seaborn | | Styling | Custom CSS with animations |

⚙️ Key Features

🎨 Beautiful UI Components

  • Animated hero section with floating movie cards
  • Interactive rating system with star animations
  • Progress tracking for user engagement
  • Responsive design for all screen sizes
  • Modern color scheme with gradients and shadows

🧠 AI Recommendations

  • Content-Based Filtering: For new users based on preferences
  • Collaborative Filtering: ALS model for returning users
  • Cold Start Solution: Handles users with no rating history
  • Real-time Processing: Fast Spark-powered computations

📊 Analytics & Insights

  • Rating visualizations with interactive charts
  • Prediction confidence indicators
  • User progress tracking
  • Spark integration with live status monitoring

🎮 Interactive Features

  • Live Spark Status - Real-time engine monitoring
  • Rating Animations - Smooth star rating interactions
  • Progress Tracking - Visual feedback for user actions
  • Toast Notifications - User-friendly feedback system
  • Responsive Cards - Movie cards with hover effects
  • Auto-suggestions - Smart form completion

📊 Data Integration

  • Movie Database: 1000+ movies with metadata
  • User Ratings: Collaborative filtering dataset
  • Real-time Updates: Dynamic chart generation
  • CSV Processing: Efficient Spark-based data handling

🔧 Configuration

The application automatically configures Spark with optimal settings:

spark = SparkSession.builder \
    .appName("CINEMATCH_WebApp") \
    .config("spark.sql.adaptive.enabled", "true") \
    .config("spark.sql.adaptive.coalescePartitions.enabled", "true") \
    .getOrCreate()

🎯 Next Steps

  1. Database Integration: Migrate from CSV to PostgreSQL/MongoDB
  2. User Authentication: Add secure login system
  3. Advanced Analytics: More detailed user insights
  4. API Development: RESTful API for mobile apps
  5. Deployment: Deploy to cloud platforms

🤝 Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Test the application
  5. Submit a pull request

📝 License

This project is open source and available under the MIT License.

🙋‍♂️ Support

If you encounter any issues:

  1. Check that Java is properly installed for Spark
  2. Ensure all dependencies are installed via requirements.txt
  3. Verify that ports 5000 and 4040 are available
  4. Check the console for error messages

🎬 Happy Movie Discovery with CINEMATCH!

Explore. Rate. Discover. Let AI recommend what's perfect for you today.

Related Skills

View on GitHub
GitHub Stars4
CategoryCustomer
Updated1mo ago
Forks0

Languages

Python

Security Score

70/100

Audited on Feb 15, 2026

No findings