fullstacktf / fs5-recomendador-backend

Recomendador de películas - backend
0 stars 0 forks source link

fs5-recomendador-backend

uRecommend.me - backend

Team

Dataset

In this project we are using a subset of The Movies Database created by Rounak Banik) and posted in Kaggle. This dataset contains metadata from 45.000 movies released on or before July 2017.

As the original datasets is about 1Gb of data, we decided to preprocess this raw data in order to work with the information that we want to work with. Because of that we randomly selected 10.000 movies with a subset of the attributes of the main dataset.

This data has been cleaned and proccessed in order to fullfill the requirements of the database schema.

Database schema

Our database urecommendme has three (3) collections named media, tags and users.

media collection

The documents in this collections have the following media objects:

KEY TYPE VEXPLANATION
id string ID of media document
original_language string Original media language
original_title string Original media title
overview string Media overview
release_date string Media release date
runtime number Media length
title string Media title (default)
rating number Media rating
tags array of tags items Media tags in format {id: number, name: string}
ratings array of ratings items Media ratings from users in format {id: number, rating: number}

tags collection

The documents in this collections have the following tag objects:

KEY TYPE VEXPLANATION
id string ID of tag document
name string Tag name
media array of id: number from media items Media tagged

users collection

The documents in this collections have the following user objects:

KEY TYPE VEXPLANATION
id string ID of user document
name string Username
password string User password
email string User email
ratings array of ratings items Media rated by the user in format {id: number, rating: number}

Endpoints definition

In the above table there is a detailed information about the endpoints of our app.

ENTITY TYPE URL PERMISSIONS EXPLANATION
media DELETE /media/:id_media admin Delete media id_media
media GET /media users Return a list of all media items
media GET /media/:id_media users Returns a media by id_media
media GET /media/tag/:id_tag users Returns all media items tagged by id_tag
media POST /media admin New media item
media PUT /media/:id_media admin Update media by id_media
tags DELETE /tags/:id_tag admin Delete the tag id_tag
tags GET /tags users Return a list of all tags
tags GET /tags/:id_tag users Return a specific tag by id_tag
tags POST /tags admin New tag
users DELETE /users/:id_user users Delete user
users GET /users admin Return a list of all users
users GET /users/:id_user admin Return a specific user by id_user
users PUT /users/:id_user users Update user info by id_user
users POST /users users Create new user