Translate

quinta-feira, 13 de dezembro de 2012

Diagrama de Gantt Online (Open Source)

Diagrama de Gantt

1. Sobre o Diagrama de Gantt

O Gráfico de Gantt, ou Diagrama de Gantt, é uma ferramenta que permite a visualização do progresso de projetos. É, basicamente, uma ferramenta de acompanhamento, bastante visual, cujo objetivo é deixar a informação o mais transparente possível.
A função do Gráfico de Gantt é, de uma forma genérica, permitir o acompanhamento da realização de tarefas e atividades que compõem um projeto de objetivo maior. Dessa forma, a utilização da ferramenta permite que todos os interessados possam verificar o andamento das atividades. É muito útil para o Gerenciamento de Projetos onde existem muitos envolvidos.

Possibilidades:
  • Criar diagramas pessoais e de projetos;
  • Compartilhar diagrama entre usuários do servidor;
  • Compartilhamento automático de diagrama de projetos aos membros do projetos;
  • Definir políticas de acesso;
  • Renomear, deletar e versionar.

A solução utilizada é uma adaptação da ferramenta Open Source ().

2. Código Fonte PHP

a. gantt.php: script PHP que permite a visualização / impressão dos gráficos de Gantt, executando a leitura em DB;
b. gantt.css / platform.css / teamworkFont.css: arquivo que contém as propriedades de estilo dos objetos utilizados em modelo.php;
c. gantt_save.php: salva as alterações realizadas no Gantt, gerando uma nova versão do mesmo;
d. index.php: listagem de Gantts do usuário / compartilhados;
e. modelo.php: modelo (layout) do gráfico de Gantt;
f. notificacao.php: envia uma notificação por e-mail ao receptor do compartilhamento de Gantt;

O código fonte foi amplamente comentado.

3. Fluxograma


4. Banco de Dados

Banco de dados SQLite2, localizado em /var/www/gantt/gantt.db.
Arquitetura: 
a. notificacoes
Tabela responsável por armazenar as notificações de compartilhamento de Gantt. A cada minuto (CRONTAB), o script notificacoes.php verifica a tabela por novas mensagens e as envia.
cidnametypedescrição
0idINTEGERID do item na tabela
1statusTEXT"NOVO" ou "OK", informando se a mensagem já foi enviada
2ownerTEXTautor do Gantt
3receiverTEXTdestinatário da mensagem (alvo do comaprtilhamento)
4titleTEXTtítulo do Gantt
5dateTEXTdata do compartilhamento
b. $USUÁRIO
Cada usuário do sistema possui uma tabela com a nomenclatura do próprio usuário.
Responsável por armazenar os Gantts pessoais e compartilhamentos.
cidnametypedescrição
0idINTEGERID do item na tabela
1statusTEXT"OK", "DEL" (removido) e "OCULTO" (versão anterior)
2uidTEXTID do documento (versões anteriores possuem mesmo UID
3ownerTEXTautor do Gantt
4titleTEXTtítulo do Gantt
5ganttTEXTdiagrama
6dateTEXTdata de criação
c. compartilhamentos
Gerencia o compartilhamento de diagramas, armazenando a permissão e localização do mesmo.
cidnametypedescrição
0idINTEGER|ID do item na tabela
1statusTEXT"OK", "DEL" (removido)
2uidTEXTID do documento compartilhado
3ownerTEXTautor do diagrama
4projectTEXTprojeto pertencente
5titleTEXTtítulo
6receptorTEXTdestinatário do compartilhamento
7permissaoTEXT"W" ou "R", permissão de leitura ou escrita
8dateTEXTdata do compartilhamento
d. projects
Responsável por armazenar os Gantts de projetos.
cidnametypedescrição
0idINTEGERID do item na tabela
1statusTEXT"OK", "DEL" (removido) e "OCULTO" (versão anterior)
2uidTEXTID do documento (versões anteriores possuem mesmo UID
3ownerTEXTautor do Gantt
4projectTEXTprojeto pertencente
5titleTEXTtítulo do Gantt
6ganttTEXTdiagrama
7dateTEXTdata de criação

5. Ferramenta de Terceiro: TeamWork Gantt

Localizado localmente no diretório "/var/www/gantt/libs".
Trata-se de uma ferramenta OpenSource que possibilita a elaboração de diagramas de Gantt WEB (PHP).
Desenvolvido em JQuery, possibilita a criação de Gantts, árvores de tarefas, dependências e exportação em formato JSON.

Para maiores informações: http://gantt.twproject.com 


6. Download de Exemplo


 https://www.dropbox.com/s/kmdgho9zp6k46mu/gantt.zip (basta criar o banco de dados)