:::warning
📬 Submit this assignment by October 21th 11:59pm IST by emailing your assignment files ZIP to [submissions@ontraq.org](mailto:submissions@ontraq.org)
:::
# Unit 1 Project: Flixster - Part 1
**Overview**: This project lets users view a list of movies sourced from the The Movie Database API.
**Video Walkthrough**: Start with this [video walkthrough playlist](https://www.youtube.com/playlist?list=PLV6gJRQBrizjugeFBdPGx-7XBknGXOXH2) to complete a basic version of this assignment.
**Submission Instructions**: Send a ZIP file containing your project folder to [submissions@ontraq.org](mailto:submission@ontraq.org) similar to the previous Assignment Zero.
* Make sure you are adding and committing files in git as you complete features and milestones.
### Check out The Movie DB API
* [Video Intro to the Movie DB API](https://www.youtube.com/watch?v=LegaQt3W0t0)
1. Poke around in the [The Movie Database documentation](https://developers.themoviedb.org/3/getting-started) to familiarize yourself with the API's general structure and features.
- ["Now Playing" endpoint](https://developers.themoviedb.org/3/movies/get-now-playing).
- Sample Request:
- <https://api.themoviedb.org/3/movie/now_playing?api_key=e0469e9cff585a68ae5b8d236d46d8d8> in your browser.
- API Key `e0469e9cff585a68ae5b8d236d46d8d8`
- **Note:** It's helpful to install the [JSONView Chrome Extension](https://chrome.google.com/webstore/detail/jsonview/chklaanhfefbnpoihckbnefhakgolnmc?hl=en) to view the returned JSON more easily.
**Mockups:**
With required and a few optional user stories completed,
 
In portrait mode, the layout should look like:

In landscape mode, the layout should look like:

The required and optional user stories are outlined below.
## User Stories
> A user story is a way to capture requirements for an app from an end-user perspective.
> It is a common practice in app development and helps to simplify the way requirements are specified.
### Required Stories
- User can view a list of movies (title, poster image, and overview) currently playing in theaters from the Movie Database API. (_**10 points**_)
- [Networking and Parsing JSON](https://www.youtube.com/watch?v=Qt1XZHGUVIo)
- [RecyclerView implementation](https://www.youtube.com/watch?v=tIMrYiqcL_s)
**Project setup**: Completing this project requires the use of the AsyncHttpClient and the Glide libraries. You will need to add dependencies for these libraries to the `app/build.gradle` file.
### Optional Stories
- Views should be responsive for both landscape/portrait mode. (_**2 points**_)
- In portrait mode, the poster image, title, and movie overview is shown.
- In landscape mode, the rotated alternate layout should use the backdrop image instead and show the title and movie overview to the right of it.
- [Alternate resources walkthrough](https://www.youtube.com/watch?v=BTczD_b_htQ)
- Display a nice default placeholder graphic for each image during loading (use the Glide library). If you're running your app on an emulator, you can change the network speed of the emulator to test this feature by following the guidance [here](https://stackoverflow.com/questions/6236340/how-to-limit-speed-of-internet-connection-on-android-emulator). (_**1 point**_)
- Improve the user interface through styling and coloring (_**1 to 5 points** depending on the difficulty of UI improvements_)
- For popular movies (i.e. a movie voted for more than 5 stars), the full backdrop image is displayed. Otherwise, a poster image, the movie title, and overview is listed. Use "Heterogenous RecyclerViews" and use different ViewHolder layout files for popular movies and less popular ones. (_**2 points**_)