# clone o projeto e acesse a pasta
git clone https://github.com/NatanRei/test-full-stack-scf-brazil.git
cd test-full-stack-scf-brazil
# instale as dependencias (Necessário Node^18) e prepere o .env
npm install
cp .env.example .env
# suba o container do docker (Necessário Docker)
docker compose up -d
# execulte o projeto
npm run start:dev
GET /users
: Recupera todos os usuários cadastradosGET /user/:uuid
: Recupera um usuário com base no :uuid passadoPOST /users
: Cria um novo usuário- body:
{ "name": "reis", "job": "front ent", "password": "369741" }
- body:
PATCH /users/:uuid
: Edita um usuário, de acordo com o :uuid passado- body:
{ "name": "natan reis", "job": "front end" }
- body:
DELETE /users/:uuid
: Deleta um usuário com base no :uuid passadoGET /users/:uuid/readed-times
: Recupera a quantidade de vezes que o user foi lido no endpointGET /user/:uuid
- Typescript
- Fastify
- JWT
- Zod
- Prisma
- Docker
- Postgres
Este projeto possui um banco de dados fake em fakeData.js com apenas um registro. A ideia é melhorar e o CRUD escrito nos 4 arquivos de teste abaixo.
Será a validada a forma de escrita de código. Escreva códigos que humanos consigam entender.
Fique a vontade para fazer modificaçoes nos serviços, comentários em código, estrutura, mas seja objetivo.
GET em /user
Possuimos neste arquivo um serviço que faz uma busca no banco fake e retorna um registro. Este código funciona, mas é possivel melhorar. Veja o que pode deixar ele melhor escrito e mais performatico.
POST em /users, descubra a intenção dele e o corrija.
Este procura um usuário e o deleta da base. Retorne sucesso para o client caso realmente tenha sido excluido e deixe o código mais performatico.
Atualiza os dados de um usuário especifico.
Retorne quantas vezes determinado usuário foi lido no teste1.
Definina uma forma de criar permissão para o usuario, defina se o usuário pode deletar ou atualizar usuários. Crie um middleware para validar essas permissões e adicione no teste4 e teste3.