Skip to content

Essa aplicação foi desenvolvida exclusivamente para praticar os conhecimentos adquiridos no bootcamp da Helpper sobre POO.

Notifications You must be signed in to change notification settings

raissaqueiroz/helpper-desafio-bootcamp

 
 

Repository files navigation

Helpper - Desafio Bootcamp POO

Essa aplicação foi desenvolvida exclusivamente para praticar os conhecimentos adquiridos no bootcamp da Helpper. Consiste num crud básico de usuários seguindo os padrões de orientação a objetos

Foi feito com muito entusiasmo e carinho :)

Melhorias Sugeridas

  • TDD com JEST
  • TypeScript
  • Validações em um Controller Separado
  • Respostas e Tratamentos de Erro Padronizadas em um Controller Separado
  • Documentação da API com Swagger

STACK PRINCIPAL: Javascript, NodeJS, Express, MongoDB, Mongoose & Padrões REST

O QUE FOI UTILIZADO E ABSORVIDO DURANTE O PROJETO

  • Padrões REST
  • Verbos HTTPS
  • Status Code
  • Endpoints Amigáveis
  • Params, Querys e afins
  • Criptografias & Hashs com Bcrypt
  • Padronização de Cógico com ESlint, Prettier e EditorConfig
  • Banco de Dados não Relacional MongoDB, utilizando Mongoose
  • "Travando" Requisições pra API com CORS
  • Variáveis de Ambiente com DotEnv
  • Validações com YUP
  • Design Pattern MVC
  • TDD usando JEST

GUIA RÁPIDO DE INSTALAÇÃO

1 - Dependências Iniciais

Antes de qualquer coisa, você precisa ter instaldo o NPM & Node + Git. Para Instalar o siga o passo a passo de cada link listado abaixo:

2 - Base de Dados

Será necessário gerar uma string de conexão com o banco. Para tal crie uma conta no atlas (grátis) e gere essa string. Você pode criar sua conta Clicando aqui.

OBS.: Caso tenha duvidas, você pode seguir este tutorial aqui

Tendo gerado a string, procure pelo arquivo .env.example e siga o passo a passo abaixo:

  • cole a string no lugar indicado dentro do arquivo. Deverá ficar algo como MONGO_URL=string-que-vc-criou
  • renomeie o arquivo para .env

3 - Rodando na Sua Máquina

Considerando que você executou as etapas acima com êxito, abra o seu terminal e rode os seguintes comandos em suas respectivas ordens:

  • git clone https://github.com/raissaqueiroz/helpper-desafio-bootcamp.git
  • cd helpper-desafio-bootcamp.git
  • yarn
  • yarn start or yarn dev (Opite pelo yarn dev caso queira fazer alterações e ver os resultados sem ter que reiniciar o projeto)

Pronto! a API estará rodando na porta 3333. Caso você deseje alterar para outra porta, basta adicionar ao aquivo .env do projeto como no exemplo a seguir: PORT=3333, trocando 3333 pela porta desejada.

DOCUMENTAÇÃO AUTOMÁTICA API - SWAGGER

Para gerar a documentação basta rodar, antes de iniciar a aplicação, rodar o seguinte comando no terminal:

yarn swagger-autogen

ou, caso esteja utilizando o npm:

npm run swagger-autogen

Pronto! Documentação foi gerada. Quando rodar sua aplicação basta apenas acessar a rota /api-docs.


Endpoints

Sessions: POST /sessions

Método para logar usuário. Ele retorna o id, nome, email e token de acesso.

Body

{
  	"email": "example@example.com",
  	"password_hash": "example123"
}

Users: POST /users

Método para cadastrar novo usuário.

Body

{

	"name": "Example Name",
	"username": "ExampleUsername",
	"email": "example@example.com",
	"password": "example123",
	"password_confirm": "example123",

}

Users: PUT /users

Método para atualizar dados do usuário. É necessário além do corpo da requisição o token de acesso gerado na rota de /sessions. Nenhuma das propriedades do body abaixo é obrigatória.

Body

{

	"name": "Example Name Edit",
	"email": "example@example.com",
	"username": "ExampleUsernameEdit"
	"password": "EditExample123",
}

Headers

{ "Authorization": "Bearer <token>" }

Users: DELETE /users/:user_id

Método em que o usuário poderá deletar usuário. user_id no endpoint corresponde ao id do usuário que deseja deletar. É necessário o token de acesso gerado na rota de /sessions.

Headers

{ "Authorization": "Bearer <token>" }

About

Essa aplicação foi desenvolvida exclusivamente para praticar os conhecimentos adquiridos no bootcamp da Helpper sobre POO.

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • HTML 80.7%
  • JavaScript 17.1%
  • CSS 2.2%