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