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.
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.
Inicialmente você vai precisar de alguns programas instalados para que consiga fazer uso:
- Visual Studio Code - Editor de código
- Node.js + npm - Versão LTS recomendada
- Insomnia - Para realizar requisições HTTP
- Beekeeper Studio - Sistema de gerenciamento de banco de dados
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.
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.
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.
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.
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"]
}
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.
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.
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.
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
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.
These instructions will guide you on how to have a functional copy of the project on your local machine for development and testing.
You'll initially need several installed programs to make use of it:
- Visual Studio Code - Code editor
- Node.js + npm - Recommended LTS version
- Insomnia - For making HTTP requests
- Beekeeper Studio - Database management system
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.
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.
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.
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.
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"]
}
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.
To list the registered tags, select the Index file within the Tags folder and click Send. This will display your tags.
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.
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