Back-end de uma aplicação de criação de notas sobre filmes, o RocketMovies.
No RocketMovies você poderá criar sua conta e desfrutar de um ambiente para você registrar suas anotações sobre filmes.
Você registrar o filme (com título e descrição) e atribuir uma nota para ele.
As anotações podem conter tags para deixá-las mais completas.
Desenvolvi a lógica para:
- Criação e Atualização de Usuários;
- Criação, Listagem e Remoção de Notas;
- Listagem de Tags.
Além disso, a aplicação está conectada com um banco de dados, deixando as coisas dinâmicas.
- O que é uma API;
- O que é o Node.js;
- Express;
- Rotas e Métodos HTTP;
- Route Params, Query Params e Body Params;
- Nodemon;
- Insomnia;
- Arquitetura de Projeto;
- HTTP Codes;
- Tratamento de erros;
- Banco de dados e SGBD;
- SQL: DDL e DML;
- Migrations;
- Criptografia de senha;
- Nullish operator;
- Query Builder: knex.js;
- Consultas simples e Complexas no DB;
- Fluxo de autenticação;
- Trabalhar com Json Web Token (JWT);
- Trabalhar com Middleware;
- Como fazer Upload de Imagens na aplicação;
- Trabalhar com API Restful;
- Trabalhar com Cross-Origin Resource Sharing (CORS);
- O que é Deploy;
- Ambientes de execução;
- Boa práticas de Deploy: Dados sensíveis e Variáveis Ambientes;
- Gerenciador de processos PM2;
- Desenvolver Testes com Jest.js;
- O que é e como aplicar o princípio da Inversão de Dependência.
Antes de começar, você vai precisar ter instalado em sua máquina as seguintes ferramentas: Git, Node.js.
Além disto é bom ter um editor para trabalhar com o código como VSCode e ter o Insomnia instalado para trabalhar com todas as requisições http.
OBS: você pode importar o arquivo insomnia.json dentro do insomnia para já ter acesso ao projeto com as requisições http pré-configuradas.
# Clone este repositório
$ git clone https://github.com/Elias-Neto/rocketmovies-backend
# Acesse a pasta do projeto no terminal/cmd
$ cd rocketmovies-backend
# Instale as dependências
$ npm install
# Execute as migrations
$ npm run migrate
# Caso queira rodar os testes
$ npm run test
# Execute a aplicação em modo de desenvolvimento
$ npm run dev
Desenvolvido com ❤ por Elias de Araújo Ferreira Neto 👋