Skip to content

Latest commit

 

History

History
136 lines (95 loc) · 4.88 KB

File metadata and controls

136 lines (95 loc) · 4.88 KB

Teste full stack

TypeScript Node.js Fastify Prisma Zod JWT Vitest tsx Vue.js Vite

🎯 Sobre o Projeto

Este projeto foi criado para cumprir o desafio técnico da vaga de Desenvolvedor(a) Full Stack. O objetivo é uma aplicação web completa para gerenciamento de tarefas (to-do list), demonstrando habilidades em desenvolvimento backend, frontend, arquitetura de software e boas práticas de versionamento com Git.

A aplicação permite que os usuários se autentiquem com sua conta Google e gerenciem suas próprias tarefas de forma segura e intuitiva.


✨ Funcionalidades

  • Autenticação de Usuários: Login seguro utilizando o protocolo OAuth 2.0 com o Google.
  • Gestão Completa de Tarefas (CRUD):
    • Criação de novas tarefas.
    • Edição de tarefas existentes.
    • Exclusão de tarefas.
  • Controle de Status: Marcar e desmarcar tarefas como concluídas.
  • Listagem e Filtragem: Visualização clara de tarefas pendentes e concluídas.
  • Interface Responsiva: Layout adaptável para uma ótima experiência em desktops e dispositivos móveis.
  • Deploy Contínuo: O projeto está publicado online e configurado para deploy automático.

🚀 Como Executar o Projeto

Siga os passos abaixo para configurar e executar a aplicação no seu ambiente local.

Pré-requisitos


1. Backend

# Navegue para a pasta do backend
cd backend

# Instale as dependências
npm install

Crie um arquivo .env na raiz da pasta backend e preencha com suas credenciais, usando o .env.example como modelo:

DATABASE_URL="postgresql://USUARIO:SENHA@HOST:PORTA/NOME_DO_BANCO"
PORT=3000
FRONTEND_URL="http://localhost:5173"
GOOGLE_CLIENT_ID="SEU_CLIENT_ID_DO_GOOGLE"
GOOGLE_CLIENT_SECRET="SEU_CLIENT_SECRET_DO_GOOGLE"
GOOGLE_REDIRECT_URI="http://localhost:3000/auth/google/callback"
JWT_SECRET="CRIE_UM_SEGREDO_FORTE_AQUI"
# Execute as migrações para criar as tabelas no banco de dados
npx prisma migrate dev

# Inicie o servidor de desenvolvimento
npm run dev

2. Frontend

Abra um novo terminal e navegue para a pasta do frontend:

cd frontend

# Instale as dependências
npm install

Crie um arquivo .env.local na raiz da pasta frontend e adicione a seguinte variável:

VITE_API_BASE_URL="http://localhost:3000/"
# Inicie o servidor de desenvolvimento do frontend
npm run dev

A aplicação estará disponível em http://localhost:5173.


🧪 Testes

Para garantir a qualidade e a integridade do código, o projeto inclui testes automatizados.

Para rodar os testes do backend:

cd backend
npm test

🗺️ Endpoints da API

A API segue um padrão RESTful. Todas as rotas de /task/ são protegidas e requerem um token JWT.

Método Rota Descrição
GET /auth/google/url Obtém a URL de autorização do Google
GET /auth/google/callback Rota de callback para o Google
GET /task/ Lista todas as tarefas do usuário
POST /task/ Cria uma nova tarefa
GET /task/:id Obtém uma tarefa específica
PATCH /task/:id Atualiza uma tarefa
DELETE /task/:id Apaga uma tarefa