Skip to content

Repository files navigation

Logo do PGP

PGP

Plataforma de Gestão de Projetos

Uma plataforma web para centralizar projetos, tarefas, equipes, documentação, bugs, atividades e integrações em um único workspace.


Status React Vite Supabase PostgreSQL Vercel


Acessar a plataforma


🌐 Acesse a plataforma

O PGP está disponível publicamente na Vercel:

https://pgp-plataforma-de-gestao-de-projeto.vercel.app/


📖 Sobre o projeto

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.


🖥️ Visão geral

Visão geral do PGP


✨ Funcionalidades

📁 Gestão de projetos

  • 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

✅ Tarefas

  • 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

📋 Quadro Kanban

  • 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

🐞 Gestão de bugs

  • 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

📖 Wiki

  • 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

🧠 Mapa mental

  • 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

👥 Colaboração

  • 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 e histórico

  • 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

🔗 Integração com GitHub

  • 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 e configurações

  • Perfil individual do usuário
  • Avatar personalizado
  • Configurações do workspace
  • Preferências persistidas no Supabase
  • Informações associadas ao usuário autenticado

📸 Screenshots

Acesso e visão geral

Login Visão geral
Tela de login do PGP Visão geral do PGP

Projetos

Projetos Detalhe do projeto
Gestão de projetos Detalhe do projeto

Tarefas e fluxo

Tarefas Kanban
Gestão de tarefas Quadro Kanban

Qualidade e documentação

Bugs Wiki
Gestão de bugs Wiki do projeto

Integração e planejamento

GitHub Mapa mental
Integração com GitHub Mapa mental

Rastreabilidade

Histórico de atividades


🛠️ Tecnologias

Front-end

  • React
  • JavaScript
  • Vite
  • CSS
  • React Router
  • Drag-and-drop

Back-end e banco de dados

  • Supabase
  • PostgreSQL
  • Supabase Auth
  • Supabase Edge Functions
  • Row Level Security

Integrações

  • GitHub API
  • GitHub OAuth

Deploy e ferramentas

  • Vercel
  • Git
  • GitHub
  • Visual Studio Code
  • Figma

🏗️ Arquitetura

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

📂 Estrutura do projeto

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

🚀 Como executar

Pré-requisitos

Para executar o projeto localmente, é necessário possuir:

  • Node.js
  • npm
  • Uma conta no Supabase
  • Um projeto configurado no Supabase

1. Clone o repositório

git clone https://github.com/EmanuelFHX/PGP---Plataforma-de-Gestao-de-Projetos---v2.git

2. Entre na pasta do projeto

cd PGP---Plataforma-de-Gestao-de-Projetos---v2

3. Instale as dependências

npm install

4. Configure as variáveis de ambiente

Crie um arquivo .env.local na raiz do projeto:

VITE_SUPABASE_URL=https://seu-projeto.supabase.co
VITE_SUPABASE_ANON_KEY=sua-chave-anon

5. Execute a aplicação

npm run dev

Acesse o endereço exibido pelo Vite, normalmente:

http://localhost:5173

Build de produção

npm run build

🗄️ Configuração do Supabase

Execute 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.


🔐 Integração privada com GitHub

Tokens privados do GitHub nunca devem ser armazenados diretamente no front-end.

Para acessar repositórios privados, o PGP utiliza Supabase Edge Functions.

Token de desenvolvimento

Configure o token como um secret do Supabase:

supabase secrets set GITHUB_TOKEN=seu_token --project-ref seu-project-ref

Implante a função de sincronização:

supabase functions deploy github-sync --project-ref seu-project-ref

OAuth individual por usuário

Crie 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-ref

Implante as Edge Functions:

supabase functions deploy github-oauth --project-ref seu-project-ref

supabase functions deploy github-sync --project-ref seu-project-ref

Depois 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.


🗺️ Roadmap

✅ Concluído

  • 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

🚧 Em desenvolvimento

  • 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

🔮 Futuro

  • 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

🎯 Objetivos técnicos

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

📈 Status

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.


👨‍💻 Autor

Emanuel Penna

LinkedIn GitHub Portfólio


📄 Licença

Este projeto foi desenvolvido para fins educacionais, profissionais e de portfólio.

Releases

Packages

Contributors

Languages