Plataforma full-stack de gerenciamento de projetos e tarefas com metodologia Kanban, desenvolvida com React, TypeScript, Node.js e PostgreSQL.
- Sistema completo de autenticação com JWT
- Refresh tokens para sessões longas
- Senhas criptografadas com bcrypt
- Proteção de rotas no backend e frontend
- Upload de avatar na criação da conta
- Criação e gerenciamento de múltiplos projetos
- Descrições e metadados detalhados
- Adição de múltiplos membros por projeto
- Dashboard com projetos recentes
- Sistema de roles (Admin, Manager, Developer, Viewer)
- Quadro Kanban com 4 colunas (A Fazer, Em Progresso, Em Revisão, Concluído)
- Drag and Drop para mover tarefas entre status
- Sistema de prioridades colorido (Baixa, Média, Alta, Urgente)
- Atribuição de tarefas para membros da equipe
- Sistema de comentários em tarefas
- Contadores e métricas de progresso
- Estatísticas de projetos e tarefas
- Cards visuais com informações
- Projetos recentes
- Perfil do usuário com estatísticas
| Tecnologia | Descrição |
|---|---|
| Node.js | Runtime JavaScript |
| TypeScript | Superset tipado do JavaScript |
| Express | Framework web minimalista e rápido |
| Prisma ORM | Object-Relational Mapping moderno |
| PostgreSQL | Banco de dados relacional robusto |
| JWT | Autenticação stateless com tokens |
| Multer | Middleware para upload de arquivos |
| Bcrypt | Hash seguro de senhas |
| Tecnologia | Descrição |
|---|---|
| React 18 | Biblioteca para construção de interfaces |
| TypeScript | Tipagem estática para JavaScript |
| Redux Toolkit | Gerenciamento de estado global |
| React Router v6 | Navegação SPA (Single Page Application) |
| Axios | Cliente HTTP para requisições |
| CSS3 | Estilização moderna com Flexbox/Grid |
- ts-node-dev - Desenvolvimento com hot reload
- Prisma Studio - Interface visual do banco de dados
- ESLint - Linter para padronização de código
- Git - Controle de versão
- Node.js (versão 18 ou superior)
- PostgreSQL (versão 12 ou superior)
- Git
- npm ou yarn
git clone https://github.com/RFernandes10/project-management-platform.git
cd project-management-platformcd backend
npm installCrie um arquivo .env na pasta backend:
DATABASE_URL="postgresql://usuario:senha@localhost:5432/project_management?schema=public"
JWT_SECRET="seu_jwt_secret_super_seguro_de_pelo_menos_32_caracteres"
JWT_REFRESH_SECRET="seu_jwt_refresh_secret_super_seguro_de_pelo_menos_32_caracteres"
PORT=3001Execute as migrations do banco de dados:
npx prisma migrate dev
npx prisma generateInicie o servidor:
npm run dev✅ O backend estará rodando em http://localhost:3001
Abra um novo terminal:
cd frontend
npm install
npm start✅ O frontend estará rodando em http://localhost:3000
Abra seu navegador e acesse: http://localhost:3000
| Método | Endpoint | Descrição | Autenticação |
|---|---|---|---|
POST |
/register |
Registrar novo usuário (com avatar) | ❌ |
POST |
/login |
Fazer login | ❌ |
GET |
/me |
Obter dados do usuário logado | ✅ |
PUT |
/profile |
Atualizar perfil (com avatar) | ✅ |
POST |
/refresh |
Renovar access token | ❌ |
| Método | Endpoint | Descrição | Autenticação |
|---|---|---|---|
GET |
/ |
Listar todos os projetos do usuário | ✅ |
POST |
/ |
Criar novo projeto | ✅ |
GET |
/:id |
Obter projeto específico | ✅ |
PUT |
/:id |
Atualizar projeto | ✅ |
DELETE |
/:id |
Deletar projeto | ✅ |
| Método | Endpoint | Descrição | Autenticação |
|---|---|---|---|
GET |
/project/:projectId |
Listar tarefas de um projeto | ✅ |
POST |
/ |
Criar nova tarefa | ✅ |
PUT |
/:id |
Atualizar tarefa (status, prioridade, etc) | ✅ |
DELETE |
/:id |
Deletar tarefa | ✅ |
POST |
/:taskId/comments |
Adicionar comentário | ✅ |
DELETE |
/:taskId/comments/:commentId |
Deletar comentário | ✅ |
Este projeto implementa diversas boas práticas de segurança:
- ✅ Senhas criptografadas com bcrypt (salt rounds: 10)
- ✅ Autenticação stateless com JWT
- ✅ Access tokens de curta duração (15 minutos)
- ✅ Refresh tokens de longa duração (7 dias)
- ✅ Validação de tipos com TypeScript
- ✅ Proteção de rotas no backend e frontend
- ✅ Upload de arquivos com validação de tipo e tamanho (máx. 5MB)
- ✅ Sanitização de inputs
- ✅ Variáveis sensíveis em arquivos
.env
- Full-Stack TypeScript - Tipagem em todo o stack
- Redux Toolkit - Gerenciamento de estado previsível
- Drag and Drop - Interface Kanban interativa
- Prisma ORM - Tipagem segura no acesso ao banco
- JWT + Refresh Tokens - Autenticação robusta
- Upload de Arquivos - Avatares com Multer
- Design Responsivo - Mobile-first approach
- Código Limpo - Separação de responsabilidades
- Notificações em tempo real com WebSocket
- Sistema de permissões granular por projeto
- Anexos em tarefas (documentos, imagens)
- Filtros avançados e busca
- Gráficos de produtividade e métricas
- Exportação de relatórios (PDF, Excel)
- Integração com Google Calendar
- App mobile com React Native
- Testes unitários com Jest
- Testes E2E com Cypress
- CI/CD com GitHub Actions
- Deploy automatizado
- Modo escuro (Dark Mode)
- Internacionalização (i18n)
![]() Roberto Fernandes |




