This web app recommends podcasts to users based on their interests. Interest categories include 1) Arts 2) Culture 3) Technology 4) Sports and Recreation 5) Politics and many others.
Users can choose as many interest categories as they please from a simple checkbox form. For each interest category that the user chooses, 10 of the best podcasts of that category are suggested to the user. 'Best podcasts' are determined by the highest ranked podcasts according to the official Itunes API which has more than 250,000 free podcasts.
Each podcast is displayed with a description, a 'save' button and a link to redirect the user to that podcast's profile on the official Apple iTunes library which provides more information such as listener reviews and average rating.
Users can also save recommended podcasts to their profile for later review. Users may update their interests at anytime and receive new appropriate suggestions.
Once a user signs in, and before the user fills out the interests form, the user is recommended 3 of the top rated podcasts from the official Apple iTunes library. This was implemented to cater for users who might be new to podcasts and unsure what interest categories suit them. If these podcasts do not interest you, the user can then fill out the 'preferences' checkbox form to receive appropriate suggestions.
Please follow these instructions to get a local copy of this project on your machine.
All required dependencies for this app are listed in the file named 'requirements.txt'
- Make a virtual environment:
mkvirtualenv <NAME>
. - Create a local PostgresSQL database for this project
createdb name-of-database
- Install the app requirements:
pip install -r requirements.txt
- Upgrade your database
python manage.py db upgrade
.
This project was built with the following tools and technologies:
- The Apple iTunes API
- Python
- Flask
- Flask-Login
- Flask-Modus
- Flask-Bcrypt
- Flask-Migrate
- Flask-SQLAlchemy
- SQL Alchemy
- Jinja2
- JavaScript