Watched, is the best movie library service on the market. Access IMDb's metadata for every movie as well as adding your own movie masterpieces.
The Watched API is organized around REST. Our API has predictable resource-oriented URLs, accepts form-encoded request bodies, returns JSON-encoded responses, and uses standard HTTP response codes, authentication, and verbs.
A project for Concordia University's SOEN487, Assignment 3
- Basic Account creation
- Search for any movie
- Create and delete movies
- Follow other users and see what's new with them
Clients can make calls as connected users, thye will require to register before utilizing certain functionalities.
Conventional HTTP response codes are used to indicate the success or failure of an API request.
1 - Clone the repository
git clone [email protected]:immaroot/SOEN487-A3.git
cd SOEN487-A3
2 - Install all dependencies with npm on each folders
cd front-end
npm install
cd back-end
npm install
3 - Launch the back-end server
cd back-end
node index.js
4 - Launch the front-end server
cd front-end
node index.js
Returns success message.
- URL
/register/:email:password
- Method:
POST
- URL Params
Required:
`email=[string]`
`password=[string]`
- Data Params
None
- Success Response:
- Code: 200
Content: `{"User Created"}`
- Error Response:
- Code: 409
Content: `{"User already registered"}`
OR
- Error Response:
- Code: 500
Content: `{"Error during registration"}`
Returns success message.
- URL
/login/:email:password
- Method:
POST
- URL Params
Required:email=[string]
password=[string]
- Data Params
None
- Success Response:
- Code: 200
Content:{Access Token of user}
- Code: 200
- Error Response:
- Code: 400
Content:{"No user found with this email"}
OR
- Code: 400
- Error Response:
- Code: 400
Content:{"password incorrect"}
OR
- Code: 400
- Error Response:
- Code: 501
Content:{"error during logging"}
- Code: 501
Returns Boolean depending on if the movie was watched.
- URL
/login/:accessToken:movieID
- Method:
POST
- URL Params
Required:accessToken=[string]
movieID=[string]
- Data Params
None
- Success Response:
- Code: 200
Content:{Boolean}
- Code: 200
- Error Response:
- Code: 400
Content:{"No user found with this email"}
- Code: 400
Returns success message.
- URL
/login/:accessToken:movieID
- Method:
POST
- URL Params
Required:accessToken=[string]
movieID=[string]
- Data Params
None
- Success Response:
- Code: 200
Content:{"Movie Added"}
- Code: 200
- Error Response:
- Code: 400
Content:{"No user found with this email"}
- Code: 400
Returns success message.
- URL
/login/:accessToken:movieID
- Method:
POST
- URL Params
Required:accessToken=[string]
movieID=[string]
- Data Params
None
- Success Response:
- Code: 200
Content:{"Movie Deleted"}
- Code: 200
- Error Response:
- Code: 400
Content:{"No user found with this email"}
- Code: 400
Returns JSON data about the searched movies.
- URL
/login/:accessToken:query
- Method:
POST
- URL Params
Required:accessToken=[string]
query=[string]
- Data Params
None
- Success Response:
- Code: 200
Content:{"{\ page: x, results: [ { id: xxxx, backdrop_path: '/xxxxxxx.jpg', genre_ids: [Array], vote_count: xxxxx, original_language: 'xx', original_title: 'xxxxx', poster_path: '/xxxxx.jpg', title: 'xxxx', video: false, vote_average: 8.2, adult: false, overview: 'xxxx', release_date: '2021-12-15', popularity: 6120.418, media_type: 'movie' }, "}
- Code: 200
- Error Response:
- Code: 403
Content:{"403 Forbidden"}
- Code: 403
Returns JSON data about the searched movies.
- URL
/login/:accessToken:email
- Method:
POST
- URL Params
Required:accessToken=[string]
email=[string]
- Data Params
None
- Success Response:
- Code: 200
Content:{"Email Added to following"}
- Code: 200
- Error Response:
- Code: 403
Content:{"403 Forbidden"}
- Code: 403
Returns JSON data about the movie.
- URL
/login/:accessToken:query
- Method:
POST
- URL Params
Required:accessToken=[string]
query=[string]
- Data Params
None
- Success Response:
- Code: 200
Content:{"{ page: x, results: [ { id: xxxx, backdrop_path: '/xxxxxxx.jpg', genre_ids: [Array], vote_count: xxxxx, original_language: 'xx', original_title: 'xxxxx', poster_path: '/xxxxx.jpg', title: 'xxxx', video: false, vote_average: 8.2, adult: false, overview: 'xxxx', release_date: '2021-12-15', popularity: 6120.418, media_type: 'movie' }, "}
- Code: 200
- Error Response:
- Code: 403
Content:{"403 Forbidden"}
- Code: 403
Returns JSON data about the popular movies.
- URL
/login/:accessToken:query
- Method:
POST
- URL Params
Required:accessToken=[string]
query=[string]
- Data Params
None
- Success Response:
- Code: 200
Content:{"{ page: x, results: [ { id: xxxx, backdrop_path: '/xxxxxxx.jpg', genre_ids: [Array], vote_count: xxxxx, original_language: 'xx', original_title: 'xxxxx', poster_path: '/xxxxx.jpg', title: 'xxxx', video: false, vote_average: 8.2, adult: false, overview: 'xxxx', release_date: '2021-12-15', popularity: 6120.418, media_type: 'movie' }, "}
- Code: 200
- Error Response:
- Code: 403
Content:{"403 Forbidden"}
- Code: 403
Returns JSON data about the trending movies.
- URL
/login/:accessToken:query
- Method:
POST
- URL Params
Required:accessToken=[string]
query=[string]
- Data Params
None
- Success Response:
- Code: 200
Content:{"{ page: x, results: [ { id: xxxx, backdrop_path: '/xxxxxxx.jpg', genre_ids: [Array], vote_count: xxxxx, original_language: 'xx', original_title: 'xxxxx', poster_path: '/xxxxx.jpg', title: 'xxxx', video: false, vote_average: 8.2, adult: false, overview: 'xxxx', release_date: '2021-12-15', popularity: 6120.418, media_type: 'movie' }, "}
- Code: 200
- Error Response:
- Code: 403
Content:{"403 Forbidden"}
- Code: 403
Returns JSON data about the User movies.
- URL
/userList/:accessToken:query
- Method:
POST
- URL Params
Required:accessToken=[string]
query=[string]
- Data Params
None
- Success Response:
- Code: 200
Content:{"{ page: x, results: [ { id: xxxx, backdrop_path: '/xxxxxxx.jpg', genre_ids: [Array], vote_count: xxxxx, original_language: 'xx', original_title: 'xxxxx', poster_path: '/xxxxx.jpg', title: 'xxxx', video: false, vote_average: 8.2, adult: false, overview: 'xxxx', release_date: '2021-12-15', popularity: 6120.418, media_type: 'movie' }, "}
- Code: 200
- Error Response:
- Code: 403
Content:{"403 Forbidden"}
- Code: 403