Architecture - Shravsssss/MovieRecommender GitHub Wiki

Architecture

This Movie Recommender App's architecture is designed to provide modular functionality for user authentication, movie recommendation, watchlist management, and movie filtering. It uses Flask as the web framework, SQLite for database management, and APIs to fetch real-time movie data.

Key Components

  • User Authentication: Users can register, log in, and manage their profiles. Passwords are securely hashed using werkzeug.security.
  • Recommendation Engine: Collaborative filtering algorithms are used to recommend movies based on the user’s preferences or past ratings.
  • Watchlist Management: Users can add movies to their watchlist and view or remove them as needed, and share them as well.
  • Movie Filtering: Users can filter movies based on genres and IMDb ratings to find their desired content.
  • API Integration: The app integrates with the OMDB and TMDB APIs to fetch movie ratings, genres, reviews, and available streaming platforms.

Folder Structure


β”œβ”€β”€ Code
β”‚   β”œβ”€β”€ __init__.py
β”‚   β”œβ”€β”€ prediction_scripts
β”‚   β”‚   └── item_based.py
β”‚   β”œβ”€β”€ recommenderapp
β”‚   β”‚   β”œβ”€β”€ app.py
β”‚   β”‚   β”œβ”€β”€ experiment_results
β”‚   β”‚   β”œβ”€β”€ filter.py
β”‚   β”‚   β”œβ”€β”€ search.py
β”‚   β”‚   β”œβ”€β”€ templates
β”‚   β”‚   β”‚   β”œβ”€β”€ history.html
β”‚   β”‚   β”‚   β”œβ”€β”€ landing_page.html
β”‚   β”‚   β”‚   β”œβ”€β”€ login.html
β”‚   β”‚   β”‚   β”œβ”€β”€ profile.html
β”‚   β”‚   β”‚   β”œβ”€β”€ register.html
β”‚   β”‚   β”‚   β”œβ”€β”€ success.html
β”‚   β”‚   β”‚   └── watchlist.html
β”‚   β”‚   └── tmdb_utils.py
β”‚   └── text based approach
β”œβ”€β”€ asset
β”œβ”€β”€ data
β”‚   β”œβ”€β”€ movies.csv
β”‚   └── ratings.csv
β”œβ”€β”€ requirements.txt
β”œβ”€β”€ setup.py
└── test
    β”œβ”€β”€ README.md
    β”œβ”€β”€ test_authentication.py
    β”œβ”€β”€ test_filter.py
    β”œβ”€β”€ test_history.py
    β”œβ”€β”€ test_movies.py
    β”œβ”€β”€ test_search.py
    β”œβ”€β”€ test_watchlist.py
    └── tests.py