Skip to content

Inspiré de Betaseries, lister les films que vous avez vus

Notifications You must be signed in to change notification settings

SitpiRajendran/Watched

Repository files navigation

Watched API Documentation

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


Functionalities

  • Basic Account creation
  • Search for any movie
  • Create and delete movies
  • Follow other users and see what's new with them

Connected Users

Clients can make calls as connected users, thye will require to register before utilizing certain functionalities.

Errors

Conventional HTTP response codes are used to indicate the success or failure of an API request.


Installation and Run Locally

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

Watched Service API

Register

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"}`

Login

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}

  • Error Response:
    • Code: 400
      Content: {"No user found with this email"}

      OR

  • Error Response:
    • Code: 400
      Content: {"password incorrect"}

      OR

  • Error Response:
    • Code: 501
      Content: {"error during logging"}

Check

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}

  • Error Response:
    • Code: 400
      Content: {"No user found with this email"}

Add

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"}

  • Error Response:
    • Code: 400
      Content: {"No user found with this email"}

Delete

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"}

  • Error Response:
    • Code: 400
      Content: {"No user found with this email"}

Search

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' }, "}

  • Error Response:
    • Code: 403
      Content: {"403 Forbidden"}

Follow

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"}

  • Error Response:
    • Code: 403
      Content: {"403 Forbidden"}

Details

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' }, "}

  • Error Response:
    • Code: 403
      Content: {"403 Forbidden"}

Popular

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' }, "}

  • Error Response:
    • Code: 403
      Content: {"403 Forbidden"}

Trending

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' }, "}

  • Error Response:
    • Code: 403
      Content: {"403 Forbidden"}

User List

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' }, "}

  • Error Response:
    • Code: 403
      Content: {"403 Forbidden"}

Tech Stack


Authors

About

Inspiré de Betaseries, lister les films que vous avez vus

Resources

Stars

Watchers

Forks

Contributors 3

  •  
  •  
  •