Este projeto é uma API (Application Programming Interface) realizada utilizando-se Node e Express. O intuito dela é que fosse utilizada como uma plataforma para promover o reconhecimento entre companheiros de equipe.
Nesta aplicação, é possível que um usuário se registre, crie tags e possa atribuir "elogios" a outros usuários também cadastrados na plataforma.
Projeto desenvolvido na trilha Back-end do Next Level Week, organizada pela Rocketseat.
Esta aplicação possui um total de 8 rotas, sendo 4 do tipo POST e outras 4 do tipo GET. Realizei sua documentação completa no Postman, você pode acessá-la aqui.
Ademais, seu banco de dados foi criado pensando na forma mais moderna, que é trabalhando com ORM e Migrations. Além disso, também utilizei JSON Web Token para criação de tokens capazes de gerar autorizações de acesso para determinadas rotas da aplicação.
- É uma técnica que ajuda no mapeamento entre a entidade o objeto do banco de dados;
- Esta técnica permite pegar o código, em JavaScript por exemplo, e o transformar de tal forma que o banco de dados consiga interpretá-lo;
- Através dele é possível automatizar inserções;
- Não é preciso utilizar as querys do SQL, já que os códigos em JavaScript já serão convertidos da forma adequada.
- É uma forma de controlar o versionamento de tabelas dentro da aplicação;
- Armazena todas as alterações que foi feita no banco de dados;
- É possível ter o controle do que já foi executado e o que ainda precisa ser executado;
- Com isso, todas as pessoas que estiverem trabalhando no projeto sempre terão o mesmo banco de dados com as mesmas atualizações;
- Quando a aplicação for para a produção, só será necessário rodar as Migrations e elas serão as responsáveis por criar toda a estrutura do banco de dados e realizar todas as inserções e alterações necessárias;
- Funciona como um histórico de alterações.
- Cadastro de usuário
- Não é permitido cadastar usuário sem email;
- Não é permitido cadastrar mais de um usuário com o mesmo email;
- A senha deve ser salva encriptada no banco de dados.
- Cadastro de tag
- Não é permitido cadastar tag sem nome;
- Não é permitido cadastrar tags com mesmo nome;
- Não é permitido o cadastro por usuários que não sejam administradores.
- Cadastro de elogios
- Não é permitido um usuário cadastrar um elogio para si;
- Não é permitido cadastar elogios para usuário inválido;
- O usuário precisar estar autenticado na aplicação.
- Aplicação trabalhada com migrations, entidades, ORM (relacionamento entre entidades e o banco de dados), repositórios (camada responsável por se comunicar com o banco de dados), middlewares etc;
- Aplicação dividida em camadas: controllers, models, repositories, services;
- Rotas com requerimento JWT (autenticação dentro da aplicação);
- Documentação da API: https://documenter.getpostman.com/view/16527246/Tzm3ncLF.
- Possuir o Node.js instalado no computador;
- Possuir o Git instalado e configurado no computador;
- Possuir um gerenciador de pacotes, seja o Yarn ou npm.
# Clone o repositório
$ git clone https://github.com/GabrielReira/NLW-Together.git
# Acesse seu diretório
$ cd nlw-together
# Instale as dependências do projeto
$ yarn install
# Crie as tabelas do banco de dados
$ yarn typeorm migration:run
# Inicie a aplicação
$ yarn dev
A aplicação estará disponível em http://localhost:3000/
.
Esse projeto está sob a licença MIT. Veja o arquivo LICENSE para mais detalhes.
Por Gabriel Reira