This project is a web application that recommends movies and series to users based on their input using a content-based recommendation system. The system calculates cosine similarity to find similar shows from a database filled by web scraping IMDb with bueatifulsoup. This content based recommendation is built using sikitlearn. The backend is built with FastAPI and MongoDB, while the frontend utilizes HTML, CSS, and JavaScript.
You will need Python3 running on your machine
-
Clone this repository:
git clone https://github.com/YasserRohaim/To-watch-recommender
-
Install dependencies:
pip install -r requirements.txt
-
Start MongoDB server:
mongod
-
Run the FastAPI application:
python main.py
-
Access the application in your web browser at
http://localhost:80
main.py
: Main FastAPI application entry point.app/routers
: Contains router definitions for handling different endpoints.app/logic
: Contains the logic for recommendation system and scraping.app/schemas
: Contains data schemas.templates
: Contains HTML templates for frontend.static
: Contains static files (CSS, JavaScript).
/
: Home page./moviesearch
: Page for searching movies./recommend
: Endpoint for receiving recommendations based on user input./recommends
: Endpoint for receiving recommendations based on multiple movies./scrape
: Endpoint for initiating web scraping of IMDb.
Contributions are welcome! Feel free to open issues or submit pull requests.
This project is licensed under the MIT License - see the license file for details.