FlixThis!

This web application give users access to info about different movies, genres, and directors. The users will be capable of signing up, updating their account info, and create and manipulate a list of their favorite movies.

DESCRIPTION URL METHOD TYPE QUERY PARAMETERS FORMAT OF REQUEST BODY FORMAT OF RESPONSE
Get list of all movies. /movies GET None None A JSON object holding data of all the movies.
Get data about a specific movie. /movies/[name] GET :name None A JSON object holding data about a specific movie including the description, genre, director, actors, image, and whether or not they are featured. Example:
                
                  {
                    "Title": "MacGruber",
                    "Description": "MacGruber is a comedy film about...",
                    "Genre": {
                      "Name": "Comedy",
                      "Description": "Comedy is a...",
                    },
                    "Director": {
                      "Name": "Jorma Taccone",
                      "Bio": "Jorma Taccone is..."
                    },
                    "Actors": ["Will Forte", "Kristen Wiig"],
                    "ImagePath": "macgruber.png",
                    "Featured": True
                  }
                
              
Get data about a specific genre. /movies/genre/[genre name] GET :name None A JSON object holding a description of a specific genre. Example:
                
                  {
                    "Name": "Comedy",
                    "Description": "Comedy is a..."
                  }
                
              
Get data about a director /movies/director/[director's name] GET :name None A JSON object holding data about a director including their name and a Bio. Example:
                
                  {
                    "Name": "Richard Kelly",
                    "Bio": "James Richard Kelly is..."
                  }
                
              
Allow a user to register. /users POST None A JSON object holding data about a user to be added. Example:
                
                  {
                    "Username": "Michael",
                    "Password": "Michael",
                    "Email": "Michael@michael.com",
                    "Birthday": "01-01-1919",
                    "favoriteMovies": []
                  }
                
              
            
A JSON object holding data about the user just added.
Allow user to update their username /users/[username] PUT :id A JSON object with the updated username. Example:
 
                
                    {
                      "Username": "Andrea Updated",
                      "Password": "Andrea",
                      "Email": "Andrea@andrea.com",
                      "Birthday": "01-01-1916",
                      "favoriteMovies": []
                    }
                  
                
A JSON object with updated username. Example:
                
                  {
                    "Username": "Andrea Updated",
                    "Password": "Andrea",
                    "Email": "Andrea@andrea.com",
                    "Birthday": "01-01-1916",
                    "favoriteMovies": []
                  }
                
              
Allow user to add a movie to favorites list /users/[username]/[movie] POST :id, :name none A text message confirming the movie was added to user's favorites list.
Allow user to remove movie from favorites list /users/[username]/[movie] DELETE :id, :movie None A text message confirming the movie was removed from user's favorites list.
Allow a user to deregister /users/[username] DELETE :id None A text message confirming the user's email has been removed.