Reprograma 🚀 | Turma Online 12 | Semana 14 | Back-end | 2021
O FavMovies é um sistema de gerenciamento de catálogos de filmes dos estudios Marvel, Ghibli e Pixar.
Onde receberemos cadastros de títulos(filmes e séries) referenciando cada estúdio criador.
Ferramenta | Descrição |
---|---|
javascript |
Linguagem de programação |
nodejs |
Ambiente de execução do javascript |
express |
Framework NodeJS |
dotenv |
Dependência para proteger dados sensíveis do projeto |
mongoose |
Dependência que interage com o MongoDB para a conexão da database, criação do model e das collections |
nodemon |
Dependência que observa as atualizações realizadas nos documentos para rodar o servidor automaticamente |
npm ou yarn |
Gerenciador de pacotes |
MongoDb |
Banco de dado não relacional orientado a documentos |
MongoDb Compass ou Robo 3T |
Interface gráfica para verificar se os dados foram persistidos |
Insomnia ou Postman |
Interface gráfica para realizar os testes |
📁 FavMovies
|
|- 📁 src
| |
| |- 📁 data
| |- 📄 database.js
|
| |- 📁 controllers
| |- 📄 tituloController.js
| |- 📄 estudioController.js
|
| |- 📁 models
| |- 📄 titulo.js
| |- 📄 estudio.js
|
| |- 📁 routes
| |- 📄 tituloRoutes.js
| |- 📄 estudioRoutes.js
|
|
|- 📄 .env
|- 📄 .env.example
|- 📄 .gitignore
|- 📄 package
|- 📄 server.js
Acesse o board para conferir as informações de forma visual: https://miro.com/app/board/o9J_lA7Nns8=/
Titulos - Rotas
{GET}
🔹 "/titulos/marvel" Deverá retornar todos os títulos com o estudio Marvel
🔹 "/titulos/ghibli" Deverá retornar todos os títulos com o estudio Ghibli
🔹 "/titulos/pixar" Deverá retornar todos os títulos com o estudio Pixar
🔹 "/titulos" Deverá retornar todos os títulos cadastrados, cada um fazendo referencia ao seu respectivo estudio
🔹 "/titulos/[ID]" Deverá retornar os estudios cadastrados por ID
{POST}
🔹 "/titulos" Deverá criar um título
{PATCH}
🔹 "/titulos/[ID]" Deverá alterar informação específica dentro de um titulo por id específico e retorna o título alterado
{DELETE}
🔹 "/titulos/[ID]" Deverá deletar titulo por id específico e retorna mensagem amigável
Estudios - Rotas
{GET}
🔹 "/estudios" Deverá retornar todos os estudios cadastrados
🔹 "/estudios/[ID]" Deverá retornar os estudios cadastrados por ID
{POST}
🔹 "/estudios" Deverá criar um estudio
{PATCH}
🔹 "/estudios/[ID]" Deverá alterar informação específica dentro de um estudio por id específico e retorna o título alterado
{DELETE}
🔹 "/estudios/[ID]" Deverá deletar estudio por id específico e retorna mensagem amigável
🔹 Não deverá ser possível criar estudio com o mesmo nome
🔹 Não deverá ser possível criar título com o mesmo nome
🔹 Para criar um novo título, deverá vincular no momento da criação a um estudio já existente no sistema, utilizando o numero do id do estudio correspondente no corpo da requisição
- id: autogerado e obrigatório
- nome: texto e obrigatório
- criadoEm: data gerada automaticamente e obrigatório
[
{
"criadoEm": "2021-06-05T01:27:40.886Z",
"_id": "60bad38c8c299c285d2685e7",
"nome": "Marvel",
"__v": 0
},
{
"criadoEm": "2021-06-05T01:27:40.886Z",
"_id": "60bad33d8c299c285d2685e5",
"nome": "Ghibli",
"__v": 0
},
{
"criadoEm": "2021-06-05T01:27:40.886Z",
"_id": "60bad33d8c299c285d2685e5",
"nome": "Pixar",
"__v": 0
}
]
- id: autogerado e obrigatório
- nome: texto e obrigatório
- genero: texto e obrigatório
- descricao: texto e obrigatório
- criadoEm: data gerada automaticamente e obrigatório
- estudio: referencia do estudio cadastrado previamente obrigatório
[
{
"criadoEm": "2021-06-05T01:27:40.892Z",
"_id": "60bad3568c299c285d2685e6",
"nome": "Spirited Away",
"genero": "romance",
"descricao": "SPIRITED AWAY é uma fantasia maravilhosa sobre uma jovem garota, Chihiro, presa em um estranho mundo novo de espíritos. Quando seus pais passam por uma transformação misteriosa, ela deve invocar a coragem que ela nunca soube que tinha para se libertar e retornar sua família para o mundo exterior. Uma história inesquecível e cheia de criatividade, SPIRITED AWAY o levará em uma jornada além da sua imaginação.",
"estudio": {
"criadoEm": "2021-06-05T01:27:40.886Z",
"_id": "60bad33d8c299c285d2685e5",
"nome": "Ghibli",
}
}
]