Web App: https://anime-recommender-AlimU.pythonanywhere.com (not fully mobile optimized)
Parametrized anime recommendation system that produces recommendations based on
- individual title or set of titles
- user profile (refer to Current limitations section for further details)
- Clone the repository
git clone https://github.com/AlimU11/Anime-Recommender.git
- Install requirements from requirements.txt
pip install -r requirements.txt
- Run
main_etl.py
python main_etl.py
This will fetch the data from the source and save it in the data
folder. This should take approximately 15 minutes. See
python main_etl.py -h
to run only chosen parts of the ETL process.
- Run
main_local.py
python main_local.py
This will start the local server with the app.
You can also run the app in a docker container. Check out this page for more information.
-
anime_recommender
module - contains all the code for the app -
assets
- images used in README.md and NOTES.md. CSS and js for dash app -
notebooks
- notebooks used for data exploration and model development -
data
- folder with data used for the app. Not included in the repository due to its size. Could be easily recreated by running `main_etl.py
Key features in further updates (unordered, full details are at the project page):
- Add new recommendation engines
- Improve UI - add dark theme
Make responsive layout for mobile devicesDone ✔️Create weekly or monthly etl process to update data martDone ✔️- Resolve current limitations (refer to
Current limitations
section for further details) - Add support for user profiles from other sites (MyAnimeList, Kitsu, etc.)
- Create etl and data mart for manga
- User's lists - all titles in INCLUDED user's lists MUST HAVE scores
- Score systems - other than ten-point score system was not yet tested
- Only top 20 results are shown
Only titles with status 'Completed' at the moment of data scrapping (20.09 - 21.09) are taken into account and could be recommended
Only titles with status 'Completed' at the moment of data update (every week on Monday at 04:00 UTC) are taken into account and could be recommended- Only AniList user profiles supported
- Further limitations might be mentioned at the project page