Skip to content

NikanEidi/CineVision

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

22 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

🎬 CineVision

CineVision Banner

A full-stack Movie & TV Show Tracker with AI-powered recommendations and a stunning Liquid Glass UI.

React Vite Flask Supabase TMDB


✨ Features

πŸ” Authentication & User Management

  • Secure sign-up/sign-in with Supabase Auth
  • Password reset flow with email verification
  • Persistent user sessions

πŸ“š Watchlist Management

  • Add, remove, and organize movies & TV shows
  • Track watched status for movies
  • Episode-level progress tracking for TV series
  • View by genre, rating, or media type

πŸ€– AI-Powered Recommendations

  • Content-based filtering using TF-IDF vectorization
  • Cosine similarity matching across 10,000+ titles
  • Learns from your watchlist preferences
  • Real-time updates when you add new content

🎨 Modern UI/UX Design

  • Liquid Glass (Glassmorphism) design system
  • Smooth animations and micro-interactions
  • Fully responsive (mobile β†’ desktop)
  • Dark theme with purple/cyan accents
  • Coverflow search with keyboard navigation

πŸ–ΌοΈ Screenshots

Dashboard Detail Page Search
Bento grid layout with popular movies, shows, watchlist, and AI recommendations Dynamic backgrounds, ratings, cast, trailers, and streaming providers Coverflow navigation with real-time filtering

πŸ› οΈ Tech Stack

Frontend

Technology Purpose
React 19 UI framework
Vite 7 Build tool & dev server
React Router Client-side routing
Framer Motion Animations
Supabase JS Auth & database client
Axios HTTP requests

Backend

Technology Purpose
Python 3.11+ Runtime
Flask REST API framework
Scikit-learn TF-IDF & cosine similarity
Pandas/NumPy Data processing
TMDB API Movie/TV metadata

Design System

Feature Implementation
Glassmorphism backdrop-filter: blur() with rgba backgrounds
Color Palette Primary: #5F099E, Accent: #00E5FF
Typography Orbitron, Outfit, Oxanium, Inter
Responsive Mobile-first with 7 breakpoints

πŸ“ Project Structure

CineVision/
β”œβ”€β”€ frontend/
β”‚   β”œβ”€β”€ public/              # Static assets (videos, images, SVGs)
β”‚   β”œβ”€β”€ src/
β”‚   β”‚   β”œβ”€β”€ styles/          # Modular CSS system
β”‚   β”‚   β”‚   β”œβ”€β”€ design-system.css   # Variables, utilities, animations
β”‚   β”‚   β”‚   β”œβ”€β”€ components.css      # Reusable component styles
β”‚   β”‚   β”‚   β”œβ”€β”€ layouts.css         # Page layout structures
β”‚   β”‚   β”‚   β”œβ”€β”€ search.css          # Search page specific
β”‚   β”‚   β”‚   β”œβ”€β”€ responsive.css      # All breakpoints
β”‚   β”‚   β”‚   └── index.css           # Main entry point
β”‚   β”‚   β”œβ”€β”€ App.jsx          # Router & main app
β”‚   β”‚   β”œβ”€β”€ DashBoard.jsx    # Home page
β”‚   β”‚   β”œβ”€β”€ Movies.jsx       # Movies browse
β”‚   β”‚   β”œβ”€β”€ Shows.jsx        # TV shows browse
β”‚   β”‚   β”œβ”€β”€ Search.jsx       # Coverflow search
β”‚   β”‚   β”œβ”€β”€ Detail.jsx       # Movie/show detail
β”‚   β”‚   β”œβ”€β”€ Watchlist.jsx    # User watchlist
β”‚   β”‚   β”œβ”€β”€ Recommendation.jsx # AI recommendations
β”‚   β”‚   β”œβ”€β”€ Login.jsx        # Sign in
β”‚   β”‚   β”œβ”€β”€ Signup.jsx       # Register
β”‚   β”‚   └── supabaseClient.js # Supabase config
β”‚   β”œβ”€β”€ .env.example         # Environment template
β”‚   └── package.json
β”‚
β”œβ”€β”€ backend/
β”‚   β”œβ”€β”€ app.py               # Flask API
β”‚   β”œβ”€β”€ recommender.py       # ML recommendation engine
β”‚   β”œβ”€β”€ requirements.txt     # Python dependencies
β”‚   └── artifacts/           # Generated ML models (gitignored)
β”‚
β”œβ”€β”€ .gitignore
β”œβ”€β”€ LICENSE
└── README.md

πŸš€ Getting Started

Prerequisites

  • Node.js 18+ and npm
  • Python 3.11+
  • Supabase account (free tier works)
  • TMDB API key (free at themoviedb.org)

1. Clone the Repository

git clone https://github.com/NikanEidi/CineVision.git
cd CineVision

2. Frontend Setup

cd frontend
npm install

Create a .env file:

VITE_SUPABASE_URL=your_supabase_project_url
VITE_SUPABASE_ANON_KEY=your_supabase_anon_key
VITE_TMDB_API_KEY=your_tmdb_api_key
VITE_API_BASE=http://127.0.0.1:5178

Start the dev server:

npm run dev

3. Backend Setup

cd backend
python -m venv venv
source venv/bin/activate  # Windows: venv\Scripts\activate
pip install -r requirements.txt

Create a .env file:

TMDB_API_KEY=your_tmdb_api_key

Start the Flask server:

python app.py

4. Open the App

Navigate to http://localhost:5173 πŸŽ‰


πŸ”§ API Endpoints

Method Endpoint Description
GET /healthz Health check
POST /recommend Get AI recommendations
POST /rebuild Rebuild ML artifacts

/recommend Request

{
  "watchlist": [
    { "media_type": "movie", "media_id": 550 },
    { "media_type": "tv", "media_id": 1399 }
  ],
  "limit": 20
}

🎨 Design System

The CSS follows a modular architecture:

/* Import order in index.css */
@import './design-system.css';  /* Tokens & utilities */
@import './components.css';     /* Reusable components */
@import './layouts.css';        /* Page structures */
@import './search.css';         /* Search-specific */
@import './responsive.css';     /* Breakpoints (LAST) */

Key CSS Variables

:root {
  /* Glass Effects */
  --glass-bg-medium: rgba(255, 255, 255, 0.06);
  --blur-md: blur(16px);
  
  /* Colors */
  --color-primary: #5F099E;
  --color-accent-cyan: #00E5FF;
  
  /* Typography */
  --font-display: 'Orbitron', sans-serif;
  --font-heading: 'Outfit', sans-serif;
}

πŸ“± Responsive Breakpoints

Breakpoint Width Behavior
Mobile SM < 480px Single column, hidden nav text
Mobile 480-599px Compact cards
Mobile LG 600-767px Stacked actions
Tablet 768-1023px Bottom nav bar
Tablet LG 1024-1199px Side nav returns
Desktop 1200-1599px Full layout
Desktop XL 1600px+ Maximum content width

πŸ“ Attribution

This product uses the TMDB API but is not endorsed or certified by TMDB.
Movie and TV data provided by The Movie Database.


πŸ‘¨β€πŸ’» Author

Nikan Eidi

Full-stack developer specializing in AI/ML-powered web applications.


πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.


Made with ❀️ and lots of β˜•

⬆ Back to Top

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors