Demo | About | Features | Technologies | Requirements | Starting | Todo | License | Author
I needed a way to find television shows I might like so I built this webapp. It makes use of TMDB's API to find and displays tv shows which can then be liked/disliked which will help determine a recommended list.
✔️ Display current popular shows;
✔️ Search for shows;
✔️ Recommend shows based on liked and disliked shows;
✔️ Remember previous searches
The following tools were used in this project:
Before starting 🏁, you need to have Git installed. You will also need to signup for TMDB user account which will give you access to an API key.
# Clone this project
$ git clone https://github.com/tauhir/seriesrecommender
# Access folder
$ cd seriesrecommender
# Install dependencies using setup.sh script - this will install rbenv to manage ruby versions, postgres and node
$ chmod +x setup.sh
$ setup.sh
# Create your user role for the Postgres db (replace my username tauhir with yours):
$ sudo -u postgres createuser --superuser tauhir
# Start the Postgres server
$ sudo pg_ctlcluster 12 main start
# Open .envsample and replace the API key with your own. Save the file as .env
# First time running
$ rails db:create
$ rails db:migrate
# To start:
$ ./bin/webpack-dev-server & bundle exec rails s && fg
# The server will initialize in the <http://localhost:3000>
The following list includes features that need to be worked on and bugs that need to be fixed
- optimize demo site (currently searching is extremely slow)
- Make use of docker
- Share lists
- Show user where they can watch
TODOs from code:
- app/models/search.rb
- line 5:need to update this to be able to search next page and add to list. might need to add current page attrib?
- line 19:can probably remove search_id param then use self.id
- line 112: deal with search with no results
- app/frontend/packs/application.js
- line 133: check to see if no search options left and let user know
- line 163: find better method than using window
This project is under license from MIT. For more details, see the LICENSE file.
Made with ❤️ by Tauhir