Esse repositório trata-se do back-end do projeto: todoPostgres-frontend.
Consiste em uma API Restful construida com NodeJS + Express, Prisma, Postgres e Docker e é responsável por enviar e receber dados do usuário de forma autenticada via JWT.
- NodeJS
- Express
- Cors
- Bcrypt
- Cookie-parser
- JsonWebToken - JWT Token
- Prisma
- Postgres
- Docker
USUÁRIOS:
- Criar um novo usuário com email ainda não cadastrado
- Login de usuário registrado no banco de dados
- Logout do usuário
LISTA DE TAREFAS:
- Criar uma nova tarefa na conta do usuário
- Ler as tarefas criadas na conta do usuário
- Renomear a tarefa adicionada
- Marcar ou desmarcar a tarefa como concluida
- Deletar tarefa cadastrada
Para executar esse projeto, em ambiente de desenvolvimento, é necessário ter instalado na máquina o NodeJS e o Docker.
Link para instalar o NodeJS: link
Link para instalar o Docker: link
Clonar o repositório
git clone https://github.com/br-gabriel/todoPostgres-backend
cd todoPostgres-backend
Instalação das dependências
yarn
ou
npm install
Para a aplicação funcionar é preciso criar o arquivo .env
, na raiz do projeto, e adicionar as seguintes variáveis, com valores do mesmo tipo descrito no exemplo abaixo.
Exemplo:
DATABASE_USER="nomeDoUsuario" //string
DATABASE_PASSWORD="senhaDoBancoDeDados" //string
DATABASE_NAME="nomeDoBancoDeDados" //string
DATABASE_URL="postgresql://nomeDoUsuario:senhaDoBancoDeDados@localhost:5432/nomeDoBancoDeDados" //string
ORIGIN_URL="http://localhost:3000" //string - rota onde o frontend irá rodar
SECRET="962012d09b8170d912f0669f6d7d9d07" //string
PORT="3232" //string com 4 números
- Os valores dentro do
DATABASE_URL
devem ser os mesmos contidos nas variáveis acima, cada um em seu respectivo local descrito. - O valor da variável
SECRET
consiste em uma string com valor aleatório.
Após seguir os passos acima, rodamos o seguinte comando para configurar o banco de dados conforme descrito no schema do prisma.
npx prisma migrate dev
O token está definido para expirar após 7 dias do login do usuário, caso queira testar a autenticação, em um tempo diferente, acesse o arquivo: src/routes/user.routes.js
// Rota - /user/signin
const token = await jwt.sign(
{
id: userExists.id,
},
secret,
{expiresIn: '7d'} //Altere aqui para o valor desejado [1m, 1h, 1d]
);
- Para a aplicação funcionar será necessário instalar o docker e o docker-compose, link do download
- Abrir o docker
- Usar o comando no terminal:
docker-compose up --build
Após ter todas as dependências instaladas, as variáveis de ambiente definidas e com o docker rodando, você pode rodar a aplicação com o seguinte comando:
yarn dev
ou
npm run dev
- POST - /user/signup - Criação de usuário
- POST - /user/signin - Login de usuário
- GET - /user/signout - Logout
- POST - /user/todos - Criação de tarefa
- GET - /user/todos - Ler as tarefas
- PUT - /user/todos - Atualiza nome e status da tarefa
- DELETE - /user/todos/:todoid - Deleta a tarefa selecionada