After having our own html, css setup from Figma UIUX class
We are going to reuse this design to have a "Like/Dislike | Recommend/Not Recommend | Love/Hate" my Movies app
- 🎥 Result
- Usage
- The Movie Database API
- Some Examples
- Not Extras, but required (MUST)
- You already now how to deliever it ;)
🎥 Result
The app will look like this:
- You will display the movie poster as an icon. (
poster_path
field) - Movie Title (
original_title
field) - Free Field (choose wisely the field you wish to display)
- The movie plot/synopsis (
overview
) - Two vote buttons (UP/DOWN) which will increase/decrease the vote_count
- Vote Count which will initialize at
vote_count
- Feel free to modify the layout to add anything you want. some suggested fields to display:
- vote_average
- runtime
- genres
- homepage
- imdb_id (prob generate an IMDb link)
- popularity
here only one box is shown, obviously you will work with a variable list of movies.
Usage
Fill this with your instructions on how to run your app.
This app is deployed in Heroku http://love-movies.herokuapp.com/
You can run this app locally as well by doing the following:
- Clone this repository
- Run the docker-compose file
- For this, Docker must be properly installed.
# IT MUST RUN VIA DOCKER
# example 1
docker-compose up --build
The Movie Database API
We are going to use The Movie Database API 3 TMDd to retrieve our initial data.
You better create your own account and respect the request limits, that I why I'm including some .json
files already.
This is the API's full URL
Some Examples
Discover Movies
The Request URL was
https://api.themoviedb.org/3/discover/movie?api_key=<<api_key>>&language=en-US&sort_by=popularity.desc&include_adult=false&include_video=false&page=1
I replaced <<api_key>> with my own API_KEY
Which resulted in discover_movies.json
Movie Details
The Request URL was
https://api.themoviedb.org/3/movie/475557?api_key=<<api_key>>
Which gave me joker_movie_details.json
Trending Movies
Request URL was
https://api.themoviedb.org/3/trending/movie/week?api_key=<api_key>>
Which gave me trending_movies.json
Not Extras, but required (MUST)
- Use Flask as backend (for now)
- Use Redis as the counter DB (incr/decr vote_count)
- Use Redis to store any details or additional info for the movies (JSON respond)
- Use Redis as a cache.
- CI/CD (you can use GithubActions (beta) / Gitlab CI /Travis/ Circle CI)
- Dockerfile with a valid docker build & push to a valid Docker Hub repository.
- A good html/css layout of your own.
- Modularize everything with files and functions.
- Use javascript to "Click and show more details of the movie"
- IT WILL NOT RUN under python, but Docker, you must provide under the README's Usage how to run it using Docker commands
You already now how to deliever it ;)
- FORK it
- WORK it
- GIT TAG it
- DELIVER it