The Movies Spot is a web application built that utilizes the capabilities of Angular.js and Node.js. The primary idea of the application is to provide an easy view of movies and Tv Series information. This application has the ability to provide popular, upcoming, now Showing/ airing movies and TV series and also provides information on popular celbrities. One can also view detailed information about each movies, its casts and crews, production team, budgets,etc.This appplication uses the MovieDB API to fetch the information about then movies and TV Series.
The Home page contains a jist of information about the movies that are now showing, opening this week and upcoming movies. You can also view the enire list by clicking on th eview more details link. For this purpose we make 3 api calls to the The movieDB API and utilize the capabilities of promise in order to wait for the request to resolve before rendering the home page.The same holds for the angular perspective wherein I use the PostPromise feature in order to wait until i fetch the data from the server. Clicking on each movies will give us a detailed information about it. In addintion te navigation bar has a dropdown for movies, TV shows and people, The dropdown under movies has the following option as shown in the image
Similarly the dropdown under has the following options
- Top Rated
- On TV
- Airing Today
Similarly clicking on Popular people will give out the list as follows
For each a request is made to the movie database api to fetch the data.But since this is not the correct way to do. Why do we have to make a request to fetch a data when the same data was fetch a few minutes back? This problem is solved with the help of caching. There are two caching that are utilised based on the content size. I do a client side caching to save the details about movies which is based on LRU cache. The main purpose of going for LRU cache is because of the restriction in the amount of data that can be stored on the client.The second caching done is memcached with holds the response form the rest Api when information such as popular T.V shows, movies, people and others are fetched. This is done because of the large amount of response obtained for each requests. Thus preventing the REST API calls avoid the unwanted delay if the user is requesting information for the same page he requested a few minutes ago, The data stored in memcache is saved for a specified period of time before it is cleared as there may be an update in the movies, tv shows list.
As said earlier cliking on the movie or tv shows provides a detaild information about the movie or show. For example clicking on the TV SHOW Game of Thrones produces the following result.
Now clicking on the casts page provides a list of casts and crew as follows
You can click on each person to view their full biography. Similarly clicking on the season reviews page list reviews about each season
Clicking on the network lists all the tv shows that are related to the particular network