Skip to content

Latest commit

 

History

History
124 lines (87 loc) · 2.19 KB

File metadata and controls

124 lines (87 loc) · 2.19 KB

API-REST-Node.js-TypeScript

  • API node.js para manipulação de tarefas com cobertura de 100% de testes automatizados.

🚀 Tecnologias

Principais

  • Node.js + Express
  • TypeScript
  • PostgreSQL (com Prisma)
  • Bcrypt (hash password)
  • Zod (validação de dados)
  • CookieParser (cookie httpOnly para sessão)

Auxiliares

  • Dotenv e Dotenv-Expand (variaveis de ambiente)
  • CORS (controle de acesso entre dominios)
  • Docker (com PostgreSQL para desenvolvimento local)

Testes Automatizados

  • Vitest (criação dos testes)
  • Faker-js (Mock de dados)

🗂️ Estrutura de Entidades

User

  • id (uuid)
  • name
  • email (único)
  • password (hash)
  • created_at
  • updated_at

UserSession

  • id (uuid)
  • user_id
  • created_at
  • expires_at
  • last_active_at

Task

  • id (uuid)
  • title
  • description
  • status (TaskStatus)
  • userId (FK → User)
  • created_at
  • updated_at

Enums

  • TaskStatus
  • pending
  • in_progress
  • done

📌 Endpoints

Auth

  • GET /user → Retorna dados do usuário logado
  • POST /user → Criar novo usuário
  • POST /login → Autenticação do usuário

Tasks

  • GET /tasks → Listar todas as tarefas do usuário logado
  • GET /tasks/:id → Buscar tarefa pelo id do usuário logado
  • POST /tasks → Criar nova tarefa
  • PATCH /tasks/:id → Atualizar tarefa existente
  • DELETE /tasks/:id → Excluir tarefa

📥 Instalação e Uso

1. Clonar o repositório

git clone https://github.com/phlbarreto/API-REST-Node.js-TypeScript.git
cd API-REST-Node.js-TypeScript

2. Instalar dependências

  • É necessário ter o docker instalado para desenvolvimento local.
npm install

3. Configurar variáveis de ambiente

DATABASE_URL=postgresql://${POSTGRES_USER}:${POSTGRES_PASSWORD}@${POSTGRES_HOST}:${POSTGRES_PORT}/${POSTGRES_DB}?schema=public
NODE_ENV=dev
POSTGRES_HOST=localhost
POSTGRES_PORT=5432
POSTGRES_USER=local_user
POSTGRES_DB=local_db
POSTGRES_PASSWORD=local_password

4. Iniciar servidor para desenvolvimento

npm run dev

API ficará disponivel em:

http://localhost:5001