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/CINEMATCHREADME
🌐 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
-
Clone and Navigate
cd your-project-folder -
Install Dependencies
pip install -r requirements.txtOr on Windows, run:
install.bat -
Run the Application
python app.py -
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
- Landing Page → Choose "New User"
- Registration → Enter preferences (genres, languages)
- Rate Movies → Rate 10 recommended movies
- Get Recommendations → View personalized suggestions
Returning Users
- Landing Page → Choose "Returning User"
- Login → Enter User ID
- AI Recommendations → Get ALS-powered suggestions
- 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
- Database Integration: Migrate from CSV to PostgreSQL/MongoDB
- User Authentication: Add secure login system
- Advanced Analytics: More detailed user insights
- API Development: RESTful API for mobile apps
- Deployment: Deploy to cloud platforms
🤝 Contributing
- Fork the repository
- Create a feature branch
- Make your changes
- Test the application
- Submit a pull request
📝 License
This project is open source and available under the MIT License.
🙋♂️ Support
If you encounter any issues:
- Check that Java is properly installed for Spark
- Ensure all dependencies are installed via
requirements.txt - Verify that ports 5000 and 4040 are available
- 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
openhue
347.6kControl Philips Hue lights and scenes via the OpenHue CLI.
sag
347.6kElevenLabs text-to-speech with mac-style say UX.
weather
347.6kGet current weather and forecasts via wttr.in or Open-Meteo
tradingview-mcp
609Advanced TradingView MCP Server for AI-powered market analysis. Real-time crypto & stock screening, technical indicators, Bollinger Band intelligence, and candlestick patterns. Works with Claude Desktop & AI assistants. Multi-exchange support (Binance, KuCoin, Bybit+). Open source trading toolkit.
