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.
- ✅ 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.
Siga os passos abaixo para configurar e executar a aplicação no seu ambiente local.
- Node.js (v18+)
- npm ou yarn
- Uma instância do PostgreSQL em execução
- Credenciais Google OAuth 2.0 (crie no Google Cloud Console)
# Navegue para a pasta do backend
cd backend
# Instale as dependências
npm installCrie 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 devAbra um novo terminal e navegue para a pasta do frontend:
cd frontend
# Instale as dependências
npm installCrie 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 devA aplicação estará disponível em http://localhost:5173.
Para garantir a qualidade e a integridade do código, o projeto inclui testes automatizados.
Para rodar os testes do backend:
cd backend
npm testA 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 |