Uma plataforma web para centralizar projetos, tarefas, equipes, documentação, bugs, atividades e integrações em um único workspace.
O PGP está disponível publicamente na Vercel:
https://pgp-plataforma-de-gestao-de-projeto.vercel.app/
O PGP — Plataforma de Gestão de Projetos foi desenvolvido para reunir, em uma única aplicação, as principais ferramentas utilizadas na organização, documentação e acompanhamento de projetos.
A plataforma permite gerenciar projetos, tarefas, quadros Kanban, bugs, páginas de Wiki, mapas mentais, participantes, notificações, atividades recentes e integrações com o GitHub.
O objetivo é reduzir a dependência de diferentes ferramentas isoladas e oferecer um ambiente centralizado para acompanhar todo o ciclo de vida de um projeto.
Diferente de uma demonstração baseada apenas em dados fictícios, o PGP utiliza autenticação, banco de dados e informações persistidas no Supabase. Quando ainda não existem registros, a interface apresenta estados vazios apropriados.
- Criação e edição de projetos
- Página individual para cada projeto
- Definição de status e informações gerais
- Acompanhamento da saúde do projeto
- Participantes associados aos projetos
- Alertas direcionados ao proprietário e aos membros
- Histórico das principais alterações
- Criação, edição e exclusão de tarefas
- Associação de tarefas a projetos
- Definição de status e prioridade
- Organização das atividades do projeto
- Persistência dos dados no Supabase
- Registro das ações no histórico
- Organização das tarefas por colunas
- Movimentação de cards com drag-and-drop
- Persistência da coluna e da posição
- Atualização do fluxo de trabalho
- Visualização rápida do andamento das tarefas
- Registro de bugs
- Definição de prioridade e status
- Edição e exclusão de registros
- Associação dos bugs aos projetos
- Acompanhamento das correções
- Registro das alterações no histórico
- Criação de páginas de documentação
- Escrita e edição de conteúdo em Markdown
- Organização da documentação por projeto
- Centralização de informações técnicas
- Persistência das páginas no banco de dados
- Criação de nós
- Conexão visual entre nós
- Organização visual de ideias
- Movimentação livre dos elementos
- Persistência da posição dos nós
- Zoom e movimentação do canvas
- Associação do mapa mental ao contexto dos projetos
- Convites de participantes por e-mail
- Associação de membros aos projetos
- Controle de permissões
- Papel de proprietário
- Papel de editor
- Papel de visualizador
- Alertas para membros ativos
- Atividades recentes baseadas em eventos reais
- Histórico completo das ações realizadas
- Filtros por projeto
- Filtros por tipo de evento
- Rastreamento da evolução do workspace
- Conexão da conta GitHub
- OAuth individual por usuário
- Acesso aos repositórios autorizados
- Suporte a repositórios públicos e privados
- Sincronização por Supabase Edge Functions
- Proteção de tokens fora do front-end
- Fallback para a API pública do GitHub
- Perfil individual do usuário
- Avatar personalizado
- Configurações do workspace
- Preferências persistidas no Supabase
- Informações associadas ao usuário autenticado
| Login | Visão geral |
|---|---|
![]() |
![]() |
| Projetos | Detalhe do projeto |
|---|---|
![]() |
![]() |
| Tarefas | Kanban |
|---|---|
![]() |
![]() |
| Bugs | Wiki |
|---|---|
![]() |
![]() |
| GitHub | Mapa mental |
|---|---|
![]() |
![]() |
- React
- JavaScript
- Vite
- CSS
- React Router
- Drag-and-drop
- Supabase
- PostgreSQL
- Supabase Auth
- Supabase Edge Functions
- Row Level Security
- GitHub API
- GitHub OAuth
- Vercel
- Git
- GitHub
- Visual Studio Code
- Figma
Usuário
│
▼
React + Vite
│
├── Autenticação
├── Dashboard
├── Projetos
├── Tarefas
├── Kanban
├── Bugs
├── Wiki
├── Mapa mental
├── Histórico
└── Configurações
│
▼
Supabase
│
├── Auth
├── PostgreSQL
├── Row Level Security
└── Edge Functions
│
▼
GitHub API
PGP/
├── assets/
│ ├── pgp-logo.png
│ └── pgp-logo-transparente.png
│
├── docs/
│ └── screenshots/
│ ├── 00-login.png
│ ├── 01-visao-geral.png
│ ├── 02-projetos.png
│ ├── 03-detalhe-projeto.png
│ ├── 04-tarefas.png
│ ├── 05-kanban.png
│ ├── 06-bugs.png
│ ├── 07-wiki.png
│ ├── 08-github.png
│ ├── 09-mapa-mental.png
│ └── 10-historico.png
│
├── sql_tabels/
│
├── src/
│ ├── components/
│ ├── contexts/
│ ├── data/
│ ├── layouts/
│ ├── pages/
│ ├── services/
│ ├── utils/
│ ├── App.jsx
│ └── styles.css
│
├── supabase/
├── .env.example
├── package.json
└── README.md
Para executar o projeto localmente, é necessário possuir:
- Node.js
- npm
- Uma conta no Supabase
- Um projeto configurado no Supabase
git clone https://github.com/EmanuelFHX/PGP---Plataforma-de-Gestao-de-Projetos---v2.gitcd PGP---Plataforma-de-Gestao-de-Projetos---v2npm installCrie um arquivo .env.local na raiz do projeto:
VITE_SUPABASE_URL=https://seu-projeto.supabase.co
VITE_SUPABASE_ANON_KEY=sua-chave-anonnpm run devAcesse o endereço exibido pelo Vite, normalmente:
http://localhost:5173
npm run buildExecute no SQL Editor do Supabase os arquivos presentes na pasta:
sql_tabels/
Os scripts configuram as estruturas relacionadas a:
- Projetos
- Tarefas
- Bugs
- Wiki
- Mapas mentais
- Atividades
- Histórico
- Participantes
- Perfis
- Configurações
- Notificações
- Integração com GitHub
- Políticas de Row Level Security
Caso tenham sido utilizados dados antigos de demonstração, execute:
supabase-clean-demo-data.sql
Esse script remove somente registros antigos que não possuem user_id, preservando os dados criados por usuários autenticados.
Tokens privados do GitHub nunca devem ser armazenados diretamente no front-end.
Para acessar repositórios privados, o PGP utiliza Supabase Edge Functions.
Configure o token como um secret do Supabase:
supabase secrets set GITHUB_TOKEN=seu_token --project-ref seu-project-refImplante a função de sincronização:
supabase functions deploy github-sync --project-ref seu-project-refCrie um OAuth App no GitHub utilizando como callback:
https://seu-projeto.supabase.co/functions/v1/github-oauth/callback
Configure os secrets:
supabase secrets set GITHUB_OAUTH_CLIENT_ID=seu_client_id --project-ref seu-project-ref
supabase secrets set GITHUB_OAUTH_CLIENT_SECRET=seu_client_secret --project-ref seu-project-ref
supabase secrets set APP_ORIGIN=https://sua-url.vercel.app --project-ref seu-project-refImplante as Edge Functions:
supabase functions deploy github-oauth --project-ref seu-project-ref
supabase functions deploy github-sync --project-ref seu-project-refDepois da configuração, o botão Conectar GitHub inicia o fluxo OAuth, salva a conexão do usuário e permite a sincronização dos repositórios autorizados.
- Autenticação com Supabase
- Perfil do usuário
- Criação e edição de projetos
- Página de detalhes do projeto
- CRUD de tarefas
- Quadro Kanban
- Drag-and-drop com persistência
- Gestão de bugs
- Wiki com suporte a Markdown
- Mapa mental com posição, conexões, zoom e pan
- Atividades recentes
- Histórico com filtros
- Participantes e permissões
- Convites por e-mail
- Alertas por projeto
- Configurações do workspace
- Integração com GitHub
- GitHub OAuth por usuário
- Suporte a repositórios privados
- Deploy na Vercel
- Melhorias de responsividade
- Aprimoramento da experiência mobile
- Novos indicadores no dashboard
- Melhorias nos estados vazios
- Aprimoramento da sincronização com GitHub
- Revisão de acessibilidade
- Múltiplos workspaces
- Dashboard personalizável
- Gráfico de Gantt
- Calendário de tarefas
- Comentários em tarefas
- Menções entre participantes
- Upload de arquivos e anexos
- Notificações em tempo real
- Relatórios de produtividade
- Gerenciamento de sessões
- Tela de segurança
- Assistente de IA para projetos
- Aplicação PWA
O PGP foi desenvolvido para praticar e consolidar conhecimentos em:
- Arquitetura de aplicações front-end
- Componentização com React
- Gerenciamento de estado
- Autenticação de usuários
- Modelagem de banco de dados
- Row Level Security
- Operações CRUD
- Drag-and-drop com persistência
- Colaboração entre usuários
- Controle de acesso baseado em papéis
- Integração com APIs externas
- Fluxos OAuth
- Supabase Edge Functions
- Deploy e manutenção de aplicações web
O PGP está em desenvolvimento contínuo.
Novos módulos, integrações e melhorias de interface são adicionados conforme a evolução da plataforma.
Emanuel Penna
Este projeto foi desenvolvido para fins educacionais, profissionais e de portfólio.










