- Clone esse repositório (recomendado fazer um fork) na sua máquina utilizando o comando:
git clone @webURLdoprojeto
- Abra um terminal na pasta que o projeto foi clonado (cmd do Windows ou terminal da IDE que vc estiver utilizando)
- Utilize o comando
npm i
para instalar as dependências do projeto - Crie um arquivo
.env
e crie as seguintes variáveis de ambiente: (isso vai ser necessário para alguns recursos, então o configure de imediato)
JWT_ACCESS_SECRET= crie senha de acesso aqui
JWT_REFRESH_SECRET = crie senha de acesso aqui
- Tudo Pronto, você pode rodar o seu projeto utilizando o
node app.js
E utilizar postman ou insomnia para testar as requisições. <3
utils
- Pasta
utils
: Nela se encontram os arquivosdb.js
,jwt.js
ehashToken.js
. São os arquivos de inicialização do banco, funções para gerar Tokens JWT, e processo para criptografia dos Tokens.
Controller
userController
:
authService
: Todas as funcionalidades voltadas aos serviços que suportam a autenticação e autorização no sistema (utilizando JWT)userServices
: Todas as funcionalidades voltadas aos serviços que suportam a parte de criação de usuários no sistema (trabalhando juntamente com oauthService
)userController
: Onde estão concentradas as funcionalidades que utilizam doauthService
euserServices
, realizando login, registro e algumas funcionalidades de busca em bancouserTodoList
: Onde estão concentradas as funcionalidades para o CRUD do gerenciador de tarefas (Criar, Visualizar, Marcar Tarefas como prontas e excluir tarefas)
Algumas convenções
db
: Inicializar e acessar banco de dados utilizando prismaJWT_ACCESS_SECRET
eJWT_REFRESH_SECRET
: Váriaveis de ambiente para acessar tokens e refreshTokens (lembrando que elas devem ser criadas)
Tipos de Requisições
*Todas as rotas para requisições estão disponíveis no arquivo app.js
- Requisições Registro e Login (apenas enviar dados via req.body)
{
"email": "[email protected]",
"password": "teste2024"
}
- Requisições de Criar task e Exibir Tasks (para 1 usuário)
{
"title": "Estudar Prisma",
"description": "Aprender a integrar Prisma com Node.js"
}
get Task: /user/:coloque o id do usuário: ex: /getTaskByUserId
Para testes, pode utilizar o app.get('/user/getAllUsers', UserController.listAllUsers); para pegar o ID de um usuário.
- Requisições para update e delete em Task
Crie uma tarefa para um usuário, pegue o id do usuário, e o id da tarefa para excluir nessa requisição:
app.delete('/user/:userId/:taskId/deleteTask', UserTodoList.deleteTask);
app.patch('/user/:userId/:taskId/updateTask', UserTodoList.updateTask);
A construção dessa API é foi voltada para um processo seletivo para estágio.
Documentações e Referências