Estamos desenvolvendo um projeto pra criar o MariaFlix, uma plataforma onde teremos um catálogo de filmes e séries dos mais diversos. Para isso, precisamos atender as seguintes funcionalidades.
- Ter um CRUD de filmes e séries.
- Ter um CRUD de usuários.
- Endpoint para associar o usuário à um filme ou episódio de uma série.
- Relatório para verificar todos os filmes que uma pessoa viu.
- Relatório para verificar todos as temporadas inteiras de uma série que uma pessoa viu.
- Relatório para verificar quem foram as TOP5 pessoas que mais assistiram algo dentro do MariaFlix em um determinado mês.
O projeto tem como escopo fazer uma api usando python, flask e postgreSQL.
![]()
![]()
![]()
- Ter um CRUD de filmes e séries.
- Ter um CRUD de usuários.
- Endpoint para associar o usuário à um filme ou episódio de uma série.
- Relatório para verificar todos os filmes que uma pessoa viu.
- Relatório para verificar todos as temporadas inteiras de uma série que uma pessoa viu.
- Relatório para verificar quem foram as TOP5 pessoas que mais assistiram algo dentro do MariaFlix em um determinado mês.
- Relatório para verificar as TOP5 series mais assistidas dentro do MariaFlix em um determinado mês.
- Relatório para verificar os TOP5 filmes mais assistidas dentro do MariaFlix em um determinado mês.
- Refatorar carga de dados nas tabelas.
- Refatorar função do relátorio de top 5 pessoas que mais asitiram algo
- Fazer documentação com swagger api
-
Com o python instalado faça o clone do repositório
-
Caso não tenha uma virtualenv, instale com:
pip install virtualenv2.1 Depois crie a virtualenv :
virtualenv venv2.2 E ative com:
OS X & Linux
source venv/bin/activateWindows:
source venv/Scripts/activate-
Com a virtualenv ativa, instale rode:
pip install -r requirements.txt -
Preecha no arquivo connection.example.py suas configurações do banco de dados.
-
Rode o arquivo init.py para criar e popular as tabelas:
python src/init.py -
Rode o arquivo api.py para iniciar o servidor e testar os endpoints:
python src/api.py
Retorna todos os usuários
Retorna o usuário do id informado
Ex: /user/3
{
"id_user": 3,
"mariaflix_user_name": "Alini",
"email": "a.lini@kawaii.doll.br",
"cpf": "27185602157",
"cellphone": "8427802846 "
}Insere um novo usuário
{
"mariaflix_user_name": "Priscila Power",
"email": "pri@queen.power.com",
"cpf": "22321261901",
"cellphone": "1239252772 "
}Edita 1 atributo de 1 usuário
Ex: /user/3
{
"column": "mariaflix_user_name",
"value": "Alini Ribeiro"
}Exclui 1 usuário da base
Retorna todos os gêneros cadastrados
Retorna o gênero do id informado
Ex: /gender/5
{
"id_gender": 5,
"gender_name": "Documentário"
}Insere um novo gênero
{
"gender_name": "Animação"
}Edita 1 atributo de 1 gênero
Ex: /user/3
{
"column": "gender_name",
"value": "Terror"
}Exclui 1 gênero da base
Retorna todos os filmes cadastrados
Retorna o filme do id informado
Ex: /films/19
{
"id_film": 19,
"film_name": "O Império Contra-ataca",
"duration": "02:07:00",
"release_year": "1980",
"gender_name": "Ficção científica"
}Insere um novo filme
{
"film_name": "Beleza Oculta",
"duration": "01:37:00",
"release_year": "2016",
"id_gender": 1
}Edita 1 atributo de 1 filme
Ex: /user/22
{
"column": "id_gender",
"value": 14
}Exclui 1 filme da base
Retorna todos os seriados cadastrados
Retorna o seriado do id informado
Ex: /series/3
{
"id_serie": 3,
"serie_name": "Biohackers",
"seasons_quantity": 1,
"gender_name": "Ficção científica"
}Insere um novo seriado
{
"serie_name": "Demon Slayer",
"seasons_quantity": 2,
"id_gender": 2
}Edita 1 atributo de 1 seriado
Ex: /series/5
{
"column": "seasons_quantity",
"value": 1
}Exclui 1 seriado da base
Retorna todas as temporadas cadastradas
Retorna a temporada do id informado
Ex: /seasons/2
{
"id_season": 2,
"season_number": 2,
"episodes_quantity": 8,
"serie_name": "Sex Education"
}Insere uma nova temporada
{
"season_number": 3,
"episodes_quantity": 8,
"id_serie": 1
}Edita 1 atributo de 1 temporada
Ex: /seasons/5
{
"column": "episodes_quantity",
"value": 10s
}Exclui 1 temporada da base
Retorna todos os episódios cadastrados
Retorna o episódio do id informado
Ex: /episodes/55
{
"id_episode": 55,
"episode_name": "Suspicion",
"episode_number": 3,
"id_season": 7
}Insere um novo episódio
{
"episode_name": "Pilot",
"episode_number": 1,
"id_season": 1
}Edita 1 atributo de 1 episódio
Ex: /episodes/78
{
"column": "episode_number",
"value": 10
}Exclui 1 episódio da base
Retorna todos os episódios associados aos usuários
Retorna todos os episódios associados ao usuário informado
Retorna o episódio associado ao usuário dos ids informados
Ex: /userEpisode/3/66
{
"id_episode": 66,
"id_user": 3,
"watched_date": "2020-04-10"
}Insere um novo episódio
{
"id_episode": 77,
"id_user": 3,
"watched_date": "2020-04-10"
}Edita 1 atributo de 1 usuário associado ao episódio
Ex: /userEpisode/3/78
{
"column": "watched_date",
"value": "2020-04-10"
}Exclui 1 usuário associado ao episódio
Retorna todos os filmes associados aos usuários
Retorna todos os filmes associados ao usuário informado
Retorna o filme associado ao usuário dos ids informados
Ex: /userFilm/8/1
{
"id_film": 1,
"id_user": 8,
"watched_date": "2020-04-02"
}Insere um novo filme
{
"id_film": 5,
"id_user": 3,
"watched_date": "2020-10-10"
}Edita 1 atributo de 1 usuário associado ao filme
Ex: /userFilm/3/5
{
"column": "watched_date",
"value": "2020-06-12"
}Exclui 1 usuário associado ao filme
Retorna todos os filmes assistidos pelo usuário com detalhes
Retorna todas as temporadas completas assistidos pelo usuário informado
Retorna o top 5 de usuários que mais assistiram algo no mês informado
Retorna o top 5 de usuários que assistiram mais filmes no mês informado
Valores que podem ser usados em month:
[01 , 02, 03 , 04 , 05, 06 , 07 , 08 , 09 , 10 , 11 , 12]Retorna o top 5 de usuários que assistiram mais séries no mês informado
Valores que podem ser usados em month:
[01 , 02, 03 , 04 , 05, 06 , 07 , 08 , 09 , 10 , 11 , 12]Retorna o top 5 de filmes mais assistidos no mês informado
Valores que podem ser usados em month:
[01 , 02, 03 , 04 , 05, 06 , 07 , 08 , 09 , 10 , 11 , 12]Retorna o top 5 de séries mais assistidas no mês informado
Valores que podem ser usados em month:
[01 , 02, 03 , 04 , 05, 06 , 07 , 08 , 09 , 10 , 11 , 12]Quero agradecer a todas as mulheres incríveis que conheci, todo o conhecimento adquirido e todas as risadas que foram possíveis graças ao MVCAD, espero um dia fazer pela comunidade tanto quanto vocês fazem.
Vocês fazem a diferença
Jéssica Alves
Alini Ribeiro
Priscila Power
Luciane Tedesco
Suzane Sant Ana