A site to search and discover TV shows and learn more about them using a public movie database!
-
The home page shows you the most popular shows. Visit the database's popularity page to learn more. The top right "popular shows" tab always navigates back to popular shows.
-
Use the search bar at the top to look up a specific show(s). The results will be sorted by popularity.
Your task is to create a TV show discovery web app using the open-source Movie Database API.
- When first loaded, there should be a list of popular TV shows and a search bar.
- Upon searching for a TV show in the search bar, the user should see a list of shows whose title matches the search.
- After clicking on a TV show, the user should be taken to a page with more information about that particular TV show.
- Create a full-stack application with a backend that communicates with the movie API.
- The front-end should be intuitive to use.
- Accompany your code with a full test suite.
- Deploy your site to a web host (e.g. on Amazon EC2, Heroku, Netlify, Google AppEngine, etc.).
This the my reasoning behind my technical choices. This include trade-offs I made, anything I left out, and what I may have done differently if I had more time to spend on the project.
-
Chose Rails because it's the framework I am most comfortable with, but I do look forward to getting better at front-end frameworks as well. Since no internal database is needed at this point, a front-end framework may have been a good choice here.
-
The architecture focus was build RESTful routes based on the API database structure.
-
It was determined that having two controllers was necessary to maintain RESTful routes.
-
Decided to not have any models since all of the data will be gathered using the movie database API. This means a large portion of the logic will be handled by helper modules with some assistance from controllers and views.
-
Keep API key secret from public repo.
-
Break up the API caller helper modules to be very flexible. For example, adding API requests for movies, should be straightforward.
-
Use partials to display results, show views and page numbers.
-
Create helper methods that can be used by multiple controllers.
-
Add continuous test integration (Circle CI), a style checker (Rubocop) and a test coverage checker (Code Climate).
-
Add tests for partial views.
-
Add more query options when searching and looking at popular shows.
-
Create a view that is always displayed when a route doesn't exist.
-
Add caching for configuration and any other data that doesn't change frequently on the API database.
-
In show views, display the country and language more clearly.
-
Simplify or export logic from index actions in both controllers.
-
Improve UI/UX with more color and animation.
Please see the FORDEVELOPERS.md file.