Skip to content

Projeto Back-End com funcionalidades de listar filmes, além de poder fornecer notas e tags para o filme.

Notifications You must be signed in to change notification settings

LeonardoSPereira/RocketMoviesBackEnd

Repository files navigation

RocketMovies Back-End

Português

📝 Tabela de conteúdos

🧐 Sobre

Projeto Back-end com funcionalidades de cadastrar usuários e que possibilite adicionar notas sobre seus filmes favoritos, informando a sua nota ao filme e possíveis tags sobre ele.

⛏️ Tecnologias usadas

🏁 Iniciando o projeto

Essas instruções vão te guiar sobre como ter uma cópia funcional do projeto na sua máquina local para desenvolvimento e testes.

Pre-requisitos

Inicialmente você vai precisar de alguns programas instalados para que consiga fazer uso:

Instalação

Um passo a passo de como realizar a instalação dos arquivos na sua máquina.

Primeiramente, faça o download, clone do repositório ou uma cópia dos arquivos para seu computador.

Abra os arquivos com o VSCODE e abra o terminal do editor através do comando CTRL + ' ou por meio da barra de ferramentas.

Em seguida, no terminal, execute a seguinte linha de comando:

npm install

Esse comando irá instalar todas as dependências necessárias para que consiga realizar os testes.

Em seguida, execute uma das duas linhas de comando a seguir para iniciar o servidor local:

npm run dev

Por fim, execute a seguinte linha de código:

npm run migrate

Esse código irá executar as migrations presentes no código necessárias para criar as tabelas de notas e tags dentro do banco de dados que foi criado automaticamente.

🎈 Usando

Criando Usuário

Para iniciar o uso, abra o Insonmnia e o Beekeeper.

No Insonmnia, no botão de criar nova coleção, clique em importar e em seguida, faça a importação do arquivo de nome

insomnia_rocketmovies.json

presente dentro da raiz do projeto para dentro do insomnia e você terá todas as requisições prontas para usar.

Em seguida, acesse a pasta User e selecione a opção "create", altere os dados que quiser, como nome, email e a senha e clique em "Send". Com isso, o seu usuário deverá ser criado.

Iniciando uma sessão

Após criar seu usuário, acesse a pasta Sessions e selecione a opção "create". Altere os dados conforme cadastro de seu usuário, comemail e senha e clique em "Send". Com isso, você terá criado uma sessão na aplicação.

É necessário iniciar uma sessão na aplicação, pelo fato de ser necessário o usuário estar autenticado para realizar as demais requisições. Conforme seria em uma aplicação normal, onde para acessar as suas funcionalidades, você precisa estar logado.

Atualizando dados do usuário

A função de atualizar os dados do usuário também estão disponíveis. Para isso, selecione o arquivo de update e altere os dados conforme desejar.

Também é possível atualizar a imagem do seu usuário. Acesse o arquivo Avatar e selecione a foto que desejar.

Criando notas

Para criar notas, selecione o arquivo create, dentro da pasta Notes.

Em seguida, envie os seguintes dados, sempre em formato de JSON, title (Título do filme), description (Descrição do filme), rating (Sua nota para o filme, sendo um número inteiro entre 1 e 5) e tags(Categoria do filme, em formato de array):

{
  "title": "Vingadores",
  "description": "Grupo de super-heróis que tentam salvar a Terra",
  "rating": 4,
  "tags": ["ação", "ficção científica"]
}

Listando notas

Para listar suas notas, selecione o arquivo de Index, onde é necessário, na aba de query, fazer uma busca pelo título da nota cadastrada. Já na de Show, é necessário que informe o id da nota que deseja listar.

Listando tags

Para listar as tags cadastradas, basta selecionar o arquivo de Index, dentro da pasta de Tags e clicar em Send. Com isso, suas tags serão listadas.

Deletando uma nota

Para deletar uma determinada nota, selecione o arquivo de delete e passe, na url, o id da nota que deseja deletar.

Importante: caso delete uma nota, as tags relacionadas a ela também serão excluidas.

Lembre-se sempre que é possível visualizar os dados e verificar os relativos id's do usuário, das notas e das tags presentes no seu banco de dados por meio do Beekeeper.

🔧 Testes

Foram criados três testes para essa aplicação utilizando o JEST.

Os testes incluem criação de usuário, criar usuários com um email que já existe e de atualização de usuário.

Para os testes, foi utilizada a técnica de utilização de um banco de dados em memória com o objetivo de evitar a utilização do banco de dados real.

Para iniciar os testes, no terminal, digite o seguinte comando:

npm run test

English

📝 Table of Contents

🧐 About

Backend project with functionalities to register users and enable adding notes about your favorite movies, providing a rating for the movie and possible tags related to it.

⛏️ Technologies Used

🏁 Getting Started

These instructions will guide you on how to have a functional copy of the project on your local machine for development and testing.

Prerequisites

You'll initially need several installed programs to make use of it:

Installation

A step-by-step guide on how to install the files on your machine.

Firstly, download, clone the repository, or create a copy of the files on your computer.

Open the files with VSCODE and open the editor's terminal via CTRL + ' or through the toolbar.

Next, in the terminal, execute the following command:

npm install

This command will install all necessary dependencies to perform tests.

Then, run either of the following commands to start the local server:

npm run dev

Finally, execute the following line of code:

npm run migrate

This code will execute the necessary migrations present in the code to create the notes and tags tables within the automatically created database.

🎈 Usage

Creating User

To start using the application, open Insomnia and Beekeeper.

In Insomnia, in the button to create a new collection, click on import and then import the file named:

insomnia_rocketmovies.json

present inside the project's root into Insomnia, and you'll have all requests ready to use.

Next, access the User folder and select the "create" option, change the data as desired, such as name, email, and password, and click "Send". Your user should be created.

Starting a Session

After creating your user, access the Sessions folder and select the "create" option. Change the data according to your user registration, with email and password, and click "Send". This will create a session in the application.

Starting a session in the application is necessary because the user needs to be authenticated to make further requests, just as in a normal application where accessing its features requires being logged in.

Updating User Data

The function to update user data is also available. To do this, select the update file and change the data as desired.

It's also possible to update your user's image. Access the Avatar file and select the photo you want.

Creating Notes

To create notes, select the create file within the Notes folder.

Then, send the following data, always in JSON format: title (Movie Title), description (Movie Description), rating (Your rating for the movie, an integer number between 1 and 5), and tags (Movie Category, in array format):

{
  "title": "The Avengers",
  "description": "Group of superheroes trying to save the Earth",
  "rating": 4,
  "tags": ["action", "science fiction"]
}

Listing Notes

To list your notes, select the Index file, where in the query tab, search by the note's title. In Show, you'll need to provide the note's id that you want to list.

Listing Tags

To list the registered tags, select the Index file within the Tags folder and click Send. This will display your tags.

Deleting a Note

To delete a specific note, select the delete file and pass, in the URL, the note's id you want to delete.

Important: If you delete a note, the related tags will also be deleted.

Remember that you can always view the data and check the respective user, note, and tag IDs in your database through Beekeeper.

🔧 Tests

Three tests have been created for this application using JEST.

The tests include user creation, creating users with an email that already exists, and updating a user.

For testing, the technique of using an in-memory database was employed to avoid using the actual database.

To start the tests, in the terminal, type the following command:

npm run test

About

Projeto Back-End com funcionalidades de listar filmes, além de poder fornecer notas e tags para o filme.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published