Goals
Specifications
Realization
The aim of this project is to realize a real-world movie web application and setup the whole infrastructure.
This project involves 5 skills:
To involve these skills, you will have to build an movie database application able to share movie titles and their ratings by users. The application is divided in two sides, the user and movies definition on one side and the movies ratings on the other side.
Users will be stored in the Relational Database. Each user has some privileges defined by a role. Movies also are defined in the database. Each movie can have an author, a release date, a type. The information that a User has seen a movie is indicated in an association table. Each user definition has some administrative information attached, defining a Contact. Each Contact has a billing address, a first name, last name, phone number and an email address. An address is composed of the Country, Area, City, Street and Street number.
Associated to each movie, one can find a rating made by one user which is also containing a comment about the movie. The rating of each movie is stored within the NoSQL database because the data can be of different form depending on the movie type. The format of the rating is also evolving a lot to take more and different data over time. Each movie description is also in the NoSQL database.
A movie is defined by the following characteristics:
{
"title": "...",
"releaseDate": "...",
"category": "...",
"movieDirector": "..."
}
and the rating:
{
"rating" : "...",
"commentTitle" : "...",
"commentContent": "...",
"userId": "..."
}
The application should be able to implement the following scenario:
At least 3 APIs using REST (at least one with node), that target the databases and make the required data agregation for frontend presentation.
At least 2 databases (relational db, and a document-based or a graph-based)
One React application to expose the features listed in previous section
Bonus : setup an api gateway and authorization server