Rocketseat

BarberBoss pt II

BarberBoss pt II

Conheça o projeto

Nesse desafio, você vai expandir a API da Barbearia adicionando gestão de usuários e autenticação. A aplicação deve permitir criar, visualizar, editar e excluir usuários, armazenar senhas criptografadas, e exigir login para acessar recursos protegidos. Também entram testes de unidade e de integração para garantir segurança e estabilidade.

Instruções

Estrutura, regras e requisitos do projeto

1. Requisitos

  • Deve ser possível criar um usuário;
  • Deve ser possível visualizar os dados de um usuário;
  • Deve ser possível editar um usuário;
  • Deve ser possível excluir um usuário;
  • As senhas devem ser criptografadas;
  • O usuário deve estar autenticado para entrar na aplicação;
  • Crie testes de unidade para as regras de negócio;
  • Crie testes de integração.

Sugestão de campos

CampoTipoObrigatórioRestrições / Observações
IdGUIDSimGerado automaticamente pelo sistema
NamestringSim2–100 caracteres
EmailstringSimFormato válido e deve ser único
PasswordHashstringSimSenha criptografada
Rolestring / enumNãoEx.: admin, user, se quiser permissões extras
CreatedAtDateTimeSimData/hora de criação do usuário
UpdatedAtDateTimeSimAtualizado sempre que houver edição

Endpoints

  • Crie todos os endpoints necessários;
MétodoEndpointDescrição
POST/api/usersCriar um novo usuário.
GET/api/usersObter o perfil do usuário autenticado.
GET/api/users/{id}Obter os dados de um usuário específico.
PUT/api/users/{id}Atualizar os dados de um usuário específico.
PUT/api/usersAtualizar o perfil do usuário autenticado.
DELETE/api/users/{id}Excluir um usuário específico.

Status Code

  • Retorne status code apropriados pra cada situação:
StatusQuando usarDescrição
200Consultas e atualizaçãoRequisição bem-sucedida, dados retornados.
201Criação de novo recursoRecurso criado com sucesso.
204Exclusão ou atualizaçãoOperação concluída sem conteúdo para retornar.
400Validações inválidas ou dados incorretosRequisição malformada ou campos inválidos.
404Recurso não encontradoID ou rota não corresponde a nenhum recurso.
409Conflito de dadosConflito com dados já existentes.
500Erro inesperado no servidorExceções não tratadas ou falhas internas.

2. Desenvolvendo o projeto

Para desenvolver esse projeto, recomendamos utilizar as principais tecnologias que utilizamos durante o desenvolvimento do primeiro módulo da formação.

Caso você tenha alguma dificuldade você pode ir no nosso fórum e deixar sua dúvida por lá!

Após terminar o desafio, caso você queira, você pode tentar dar o próximo passo e deixar a aplicação com a sua cara. Tente mudar o layout, cores, ou até adicionar novas funcionalidades para ir além! 🚀


3. Entrega

Após concluir o desafio, você deve enviar a URL do seu código no Github.

Além disso, que tal fazer um post no LinkedIn compartilhando o seu aprendizado e contando como foi a experiência? É uma excelente forma de demonstrar seus conhecimentos e atrair novas oportunidades!

Obs: Se você se sentir à vontade, pode postar um print do resultado final e nos marcar! Vai ser incrível acompanhar a sua evolução! 💜


4. Considerações finais

Lembre-se que o intuito de um desafio é te impulsionar, por isso, dependendo do desafio, pode ser que você precise ir além do que foi discutido em sala de aula. Mas isso não é algo ruim: ter autonomia para buscar informações extras é uma habilidade muito valiosa e vai ser ótimo pra você treinar ela aqui com a gente!

E lembre-se: tenha calma! Enfrentar desafios faz parte do seu processo de aprendizado!

Se precisar de alguma orientação ou suporte, estamos aqui com você! Bons estudos e boa prática! 💜


Feito com 💜 por Rocketseat 👋

Tarefas

Use este checklist para ajudar a organizar a sua entrega

Projetos relacionados