Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/leonardospereira/rocketmoviesbackend
Projeto Back-End com funcionalidades de listar filmes, além de poder fornecer notas e tags para o filme.
https://github.com/leonardospereira/rocketmoviesbackend
express javascript knex nodejs sqlite
Last synced: 11 days ago
JSON representation
Projeto Back-End com funcionalidades de listar filmes, além de poder fornecer notas e tags para o filme.
- Host: GitHub
- URL: https://github.com/leonardospereira/rocketmoviesbackend
- Owner: LeonardoSPereira
- Created: 2023-08-22T12:23:04.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2024-06-18T13:44:42.000Z (5 months ago)
- Last Synced: 2024-06-18T16:29:35.814Z (5 months ago)
- Topics: express, javascript, knex, nodejs, sqlite
- Language: JavaScript
- Homepage:
- Size: 528 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
RocketMovies Back-End
[![Status](https://img.shields.io/badge/status-active-success.svg)]()
[Português](#pt)
/
[English](#en)
## 📝 Tabela de conteúdos
- [Sobre](#about_pt)
- [Tecnologias](#built_using_pt)
- [Iniciando o projeto](#getting_started_pt)
- [Usabilidade](#usage_pt)
- [Testes](#tests_pt)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.
- [NodeJs](https://nodejs.org/en/)
- [Express](https://expressjs.com/)
- [SQLite](https://www.sqlite.org/index.html)
- [Knex](https://knexjs.org)
- [JWT](https://jwt.io)
- [Cookies](https://developer.mozilla.org/pt-BR/docs/Web/HTTP/Cookies)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:
- [Visual Studio Code](https://code.visualstudio.com) - Editor de código
- [Node.js + npm](https://nodejs.org/en) - Versão LTS recomendada
- [Insomnia](https://insomnia.rest/download) - Para realizar requisições HTTP
- [Beekeeper Studio](https://www.beekeeperstudio.io) - Sistema de gerenciamento de banco de dados### 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.
### 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.**
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
```## 📝 Table of Contents
- [About](#about_en)
- [Technologies Used](#built_using_en)
- [Getting Started](#getting_started_en)
- [Usage](#usage_en)
- [Tests](#tests_en)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.
- [NodeJs](https://nodejs.org/en/)
- [Express](https://expressjs.com/)
- [SQLite](https://www.sqlite.org/index.html)
- [Knex](https://knexjs.org)
- [JWT](https://jwt.io)
- [Cookies](https://developer.mozilla.org/pt-BR/docs/Web/HTTP/Cookies)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:
- [Visual Studio Code](https://code.visualstudio.com) - Code editor
- [Node.js + npm](https://nodejs.org/en) - Recommended LTS version
- [Insomnia](https://insomnia.rest/download) - For making HTTP requests
- [Beekeeper Studio](https://www.beekeeperstudio.io) - Database management system### 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.
### 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.**
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
```