This objective of this assignment is to create a web page which displays movies with movie title, poster , description, directorname and the rating. The user can favourite the movie by clicking the favourite icon . The use can also search for a specific movie using the search option in the header. The user can see all his favourite movies by clicking on Favourite Movies link in the header
Create a web page using using Bootstrap with the below mentioned components
-
Navbar This should contain the company logo ( logo.png is provided under images folder, use the same) Application Title ( My Favourite Movies ) A Bootstrap form with a search box and a button
-
section with container class
-
card component for displaying each movie
After the successful completion of this assignment, the participants can develop Developing Single Page Applications using Async Programming
and will get hands on the following topics
- Fetch API with GET, POST, DELETE HTTP requests
- Promise API ( usage of resolve, reject, then, catch functions)
- Bootstrap and its components (NavBar, GridSystem,Form,Card)
- json-server , http-server
- Font-Awesome Icons
- Add some movies data in db.json ( sample movie object is provided in db.json)
- After adding the movies, run the command
npm run dbserver
- Fetch the movies from db.json using fetch API at the API URL
http://localhost:3000/movies
- Display these movies in index.html using Bootstrap card component ( as shown in the image )
- When the user clicks on the favourite icon , add the movie to the favouties using fetch API Post request to the API URL
http://localhost:3000/favourites
- If the movie is already favourited, if the user clicks on favourite icon, remove the movie from the favourites in db.json and update the UI
- If user searches for a specific movie by entering the movie name and clicks on submit button, update the UI with the searched movies list
Design the page as per the image
- Page must have title, favicon, description and meta tags
- Must use Bootstrap framework and its components navbar, form, card, grid system
- Use descriptive class names for HTML elements to apply the CSS
- Use proper CSS3 selectors
- Use proper indentation
- Boilerplate contains the images, font-family, colors. Use them to get the exact output