You are given a few simple tasks in order to exercise the skills learned through the first lectures from the Node.js course. The main goal is to improve your knowledge on using async operations
, modules
and building the design of your applications, all that in a Node.js environment.
Extend the IMDB scrapper from here. Now, the scrapper only parses simple information about each movie (its title and id in IMDB).
- Fork the repository in your account
- Add your teammates as committers
- Extract the
wait()
method - Find a way to improve the generation of urls
- i.e. use some kind of string formatters
- Hint Lodash and its template engine may be your solution\
- i.e. use some kind of string formatters
- Extract all "magic" values to meaningful constants
- Extract into a module all simple-movie-scrapping functionality
app.js
should be just the entry-point of the application
- Using the simple-movie-scrapping functionality, extract in your database ~2000 movies
-
Write functionality for extracting detailed information for the simple movies
- Store them in a new collection, i.e.
MovieDetails
- Do not change the
SimpleMovie
mongoose model in any way
- Store them in a new collection, i.e.
-
For each movie extract:
- At least one cover image (its link)
- Optional trailer (its link), if one is available
- Title
- Description/Storyline
- Categories (Genres)
- Release date
- List of actors
- Nested documents
- Have name of the role in the movie, name, id in IMDB and profile image (its link)
- Use this page for reference
-
Write functionality for extracting detailed information for actors
- Store them in a new collection, i.e.
Actors
- Do not store actors detailed info in
SimpleMovie
orMovieDetails
mongoose models
- Store them in a new collection, i.e.
-
For each actor extract:
- At least profile image (its link)
- Name
- Biography
- A list of movies, he took part in:
- For each movie extract name of the movie, the id of the Movie in IMDB, and the name of the character
- Use this page for reference
- Review your application and think of a way to improve the quality
- More abstraction of the modules
- Extracting constants and "magic" values
- etc...
- Each team member submits the team's solution at the course page