The web application allows users to access detailed information about featured films, including casts,
producers, directors, and genres. Users will be able to create a personal account, and will have the
abilitiy to customize their own list of favorite movies and a wish list of movies they would like to watch.
Business Logic | URL | HTTP Method | Request body data format | Response body data format |
---|---|---|---|---|
Returns a list of all movies to the user | /movies | Get | None | Json object holding data about all movies |
Returns data about a single movie by title to the user | /movies/[title] | GET | None | Json object holding data about a single movie, containing: year, genre, and director, and using the
following
structure:
{
"movieId": "00000",
"Title": "Movie Title Here",
"Synopsis": "Movie Description Here",
"ImagePath": "image.png",
"Year": "0000",
"Director": {
"DirectorId": "0000",
"Name": "Director Name",
"Bio": "Biography of director here.",
"BirthYear": "0000",
"DeathYear": "0000",
},
"Genre": {
"GenreId": "0000"
"Name": "Genre here",
"Description": "Description of genre here."
}
|
Returns data about a genre by name/title | /movies/genres/[genreName] | GET | None | Json object holding data about a single genre and it's description, using the following structure:
{
"GenreId": "0000",
"Name": "Genre Name",
"Description": "Description of genre here."
}
|
Returns data about a director by name, containing: bio, birth year, and death year, and using the following
structure:
{
"DirectorId": "00000",
"Name": "Director Name",
"Bio": "Direcotry biography here.",
"Birth Year": "0000",
"Death Year": "0000"
}
|
/movies/directors/[directorName] | GET | None | Json object holding data about a single director, containing: director name, bio, birth year, and death year. |
Allow new users to register | /users | POST | Json object holding data about user to add, using the following structure:
{
ID: Integer,
userName: String,
Password: String,
email: String,
birthdate: Date,
favoriteMovies: String,
}
|
Json object holding data about user that was added (including ID), using the following structure:
{
"__id": "00aaa0000a0000a0",
"userName": "TestUser",
"Password": "0000",
"email": "test@email.com",
"birthdate": "0000-00-00"
"favoriteMovies": [],
}
|
Allows users to update their user info | users/[Username] | PUT | Json object holding data about the user info that needs updating, using the following structure:
{
Username: req.body.Username,
Password: req.body.Password,
Email: req.body.Email,
Birthday: req.body.Birthday,
}
|
|
Allows users to add a movie to their list of favorites | /users/[Username]/movies/[MovieID] | POST | None | Json object holding data about the updated list of favorites, using the following structure:
{
"__id": "00aaa0000a0000a0",
"userName": "TestUser"
"Password": "0000",
"email": "test@email.com",
"birthdate": "0000-00-00"
"favoriteMovies": [
"1", "2", "3"
]
}
|
Allows users to remove a movie from their list of favorites | /users/[Username]/movies/[movieID] | DELETE | None | Json object holding data about the updated list of favorites, using the following structure:
{
"__id": "00aaa0000a0000a0",
"userName": "TestUser"
"Password": "0000",
"email": "test@email.com",
"birthdate": "0000-00-00"
"favoriteMovies": [
"1", "2"
]
}
|
Allows existing users to deregister | /users/[Username] | DELETE | None | A text message showing that a user has been removed. |