Browse Source

Adicionado relatório da etapa 4.

0.2
Guilherme Gondim 16 years ago
parent
commit
fc41cdf0ff
  1. 18
      docs/relatorios/etapa4/Makefile
  2. 20
      docs/relatorios/etapa4/arquivos/casas.sql
  3. 46
      docs/relatorios/etapa4/arquivos/contatos.sql
  4. 36
      docs/relatorios/etapa4/arquivos/convenios.sql
  5. 41
      docs/relatorios/etapa4/arquivos/inventario.sql
  6. 52
      docs/relatorios/etapa4/arquivos/mesas.sql
  7. 37
      docs/relatorios/etapa4/arquivos/parlamentares.sql
  8. 12
      docs/relatorios/etapa4/arquivos/servicos.sql
  9. 88
      docs/relatorios/etapa4/arquivos/tree.txt
  10. 24
      docs/relatorios/etapa4/cabecalho.tex
  11. 37
      docs/relatorios/etapa4/capa.tex
  12. 612
      docs/relatorios/etapa4/capitulos/anexos.tex
  13. 20
      docs/relatorios/etapa4/capitulos/bibliografia.tex
  14. 47
      docs/relatorios/etapa4/capitulos/capitulo1.tex
  15. 39
      docs/relatorios/etapa4/capitulos/capitulo2.tex
  16. 39
      docs/relatorios/etapa4/capitulos/capitulo3.tex
  17. 31
      docs/relatorios/etapa4/capitulos/introducao.tex
  18. 20
      docs/relatorios/etapa4/comandos.tex
  19. BIN
      docs/relatorios/etapa4/imagens/apps.png
  20. 460
      docs/relatorios/etapa4/imagens/cabecalho.pdf
  21. BIN
      docs/relatorios/etapa4/imagens/casas.png
  22. BIN
      docs/relatorios/etapa4/imagens/casosdeuso.png
  23. BIN
      docs/relatorios/etapa4/imagens/contatos.png
  24. BIN
      docs/relatorios/etapa4/imagens/convenios.png
  25. BIN
      docs/relatorios/etapa4/imagens/er.png
  26. BIN
      docs/relatorios/etapa4/imagens/inventario.png
  27. BIN
      docs/relatorios/etapa4/imagens/mesas.png
  28. BIN
      docs/relatorios/etapa4/imagens/parlamentares.png
  29. BIN
      docs/relatorios/etapa4/imagens/servicos.png
  30. 10597
      docs/relatorios/etapa4/relatorio.pdf
  31. 68
      docs/relatorios/etapa4/relatorio.tex

18
docs/relatorios/etapa4/Makefile

@ -0,0 +1,18 @@
MAINNAME=relatorio
all:
mkdir -p build
cp *.tex build
cp -fR imagens build/
cp -fR capitulos build/
cp Makefile build/
make -C build build
build:
pdflatex ${MAINNAME}.tex
pdflatex ${MAINNAME}.tex
cp ${MAINNAME}.pdf ../
clean:
rm -fR build
rm -fR ${MAINNAME}.pdf

20
docs/relatorios/etapa4/arquivos/casas.sql

@ -0,0 +1,20 @@
BEGIN;
CREATE TABLE "casas_casalegislativa" (
"id" integer NOT NULL PRIMARY KEY,
"nome" varchar(60) NOT NULL,
"sigla" varchar(30) NOT NULL,
"tipo" varchar(2) NOT NULL,
"cnpj" varchar(18) NOT NULL,
"logradouro" varchar(100) NOT NULL,
"bairro" varchar(40) NOT NULL,
"cidade_id" integer NOT NULL,
"cep" varchar(9) NOT NULL,
"email" varchar(75) NOT NULL,
"pagina_web" varchar(200) NOT NULL,
"foto" varchar(100) NOT NULL,
"foto_largura" smallint NULL,
"foto_altura" smallint NULL,
"historico" text NOT NULL
)
;
COMMIT;

46
docs/relatorios/etapa4/arquivos/contatos.sql

@ -0,0 +1,46 @@
BEGIN;
CREATE TABLE "contatos_unidadefederativa" (
"codigo_ibge" integer unsigned NOT NULL PRIMARY KEY,
"nome" varchar(25) NOT NULL,
"sigla" varchar(2) NOT NULL,
"regiao" varchar(2) NOT NULL,
"populacao" integer unsigned NOT NULL
)
;
CREATE TABLE "contatos_telefone" (
"id" integer NOT NULL PRIMARY KEY,
"codigo_ddd" varchar(2) NOT NULL,
"numero" varchar(9) NOT NULL,
"tipo" varchar(1) NOT NULL,
"nota" varchar(70) NOT NULL,
"content_type_id" integer NOT NULL,
"object_id" integer unsigned NOT NULL,
UNIQUE ("codigo_ddd", "numero", "tipo")
)
;
CREATE TABLE "contatos_municipio" (
"codigo_ibge" integer unsigned NOT NULL PRIMARY KEY,
"codigo_mesorregiao" integer unsigned NOT NULL,
"codigo_microrregiao" integer unsigned NOT NULL,
"nome" varchar(50) NOT NULL,
"uf_id" integer NOT NULL REFERENCES "contatos_unidadefederativa"
("codigo_ibge"),
"is_capital" bool NOT NULL,
"populacao" integer unsigned NOT NULL,
"is_polo" bool NOT NULL,
"latitude" decimal NULL,
"longitude" decimal NULL
)
;
CREATE TABLE "contatos_contato" (
"id" integer NOT NULL PRIMARY KEY,
"nome" varchar(60) NOT NULL,
"nota" varchar(70) NOT NULL,
"email" varchar(75) NOT NULL,
"municipio_id" integer NULL REFERENCES "contatos_municipio"
("codigo_ibge"),
"content_type_id" integer NOT NULL,
"object_id" integer unsigned NOT NULL
)
;
COMMIT;

36
docs/relatorios/etapa4/arquivos/convenios.sql

@ -0,0 +1,36 @@
BEGIN;
CREATE TABLE "convenios_anexo" (
"id" integer NOT NULL PRIMARY KEY,
"convenio_id" integer NOT NULL,
"arquivo" varchar(100) NOT NULL,
"descricao" varchar(70) NOT NULL,
"data_pub" date NOT NULL
)
;
CREATE TABLE "convenios_convenio" (
"id" integer NOT NULL PRIMARY KEY,
"casa_legislativa_id" integer NOT NULL,
"num_convenio" integer unsigned NOT NULL,
"num_processo_sf" varchar(11) NOT NULL,
"data_adesao" date NOT NULL,
"data_retorno_assinatura" date NULL,
"data_termo_aceite" date NULL,
"data_pub_diario" date NULL,
"equipamentos_recebidos" varchar(1) NOT NULL
)
;
CREATE TABLE "convenios_equipamentoprevisto" (
"id" integer NOT NULL PRIMARY KEY,
"convenio_id" integer NOT NULL REFERENCES "convenios_convenio" ("id"),
"equipamento_id" integer NOT NULL,
"quantidade" smallint unsigned NOT NULL
)
;
CREATE TABLE "convenios_convenio_servicos" (
"id" integer NOT NULL PRIMARY KEY,
"convenio_id" integer NOT NULL REFERENCES "convenios_convenio" ("id"),
"servico_id" integer NOT NULL REFERENCES "servicos_servico" ("id"),
UNIQUE ("convenio_id", "servico_id")
)
;
COMMIT;

41
docs/relatorios/etapa4/arquivos/inventario.sql

@ -0,0 +1,41 @@
BEGIN;
CREATE TABLE "inventario_bem" (
"id" integer NOT NULL PRIMARY KEY,
"casa_legislativa_id" integer NOT NULL,
"equipamento_id" integer NOT NULL,
"fornecedor_id" integer NOT NULL,
"num_serie" varchar(50) NOT NULL UNIQUE,
"num_tombamento" varchar(50) NOT NULL UNIQUE
)
;
CREATE TABLE "inventario_fabricante" (
"id" integer NOT NULL PRIMARY KEY,
"nome" varchar(40) NOT NULL
)
;
CREATE TABLE "inventario_fornecedor" (
"id" integer NOT NULL PRIMARY KEY,
"nome" varchar(40) NOT NULL,
"email" varchar(75) NOT NULL,
"pagina_web" varchar(200) NOT NULL
)
;
CREATE TABLE "inventario_tipoequipamento" (
"id" integer NOT NULL PRIMARY KEY,
"tipo" varchar(40) NOT NULL
)
;
CREATE TABLE "inventario_equipamento" (
"id" integer NOT NULL PRIMARY KEY,
"fabricante_id" integer NOT NULL REFERENCES "inventario_fabricante" ("id"),
"modelo_id" integer NOT NULL,
UNIQUE ("fabricante_id", "modelo_id")
)
;
CREATE TABLE "inventario_modeloequipamento" (
"id" integer NOT NULL PRIMARY KEY,
"tipo_id" integer NOT NULL REFERENCES "inventario_tipoequipamento" ("id"),
"modelo" varchar(30) NOT NULL
)
;
COMMIT;

52
docs/relatorios/etapa4/arquivos/mesas.sql

@ -0,0 +1,52 @@
BEGIN;
CREATE TABLE "mesas_membromesadiretora" (
"id" integer NOT NULL PRIMARY KEY,
"parlamentar_id" integer NOT NULL,
"cargo_id" integer NOT NULL,
"mesa_diretora_id" integer NOT NULL
)
;
CREATE TABLE "mesas_cargo" (
"id" integer NOT NULL PRIMARY KEY,
"descricao" varchar(30) NOT NULL
)
;
CREATE TABLE "mesas_coligacao" (
"id" integer NOT NULL PRIMARY KEY,
"nome" varchar(50) NOT NULL,
"legislatura_id" integer NOT NULL,
"numero_votos" integer unsigned NULL
)
;
CREATE TABLE "mesas_legislatura" (
"id" integer NOT NULL PRIMARY KEY,
"numero" smallint unsigned NOT NULL,
"data_inicio" date NOT NULL,
"data_fim" date NOT NULL,
"data_eleicao" date NOT NULL
)
;
CREATE TABLE "mesas_sessaolegislativa" (
"id" integer NOT NULL PRIMARY KEY,
"numero" smallint unsigned NOT NULL UNIQUE,
"mesa_diretora_id" integer NOT NULL,
"legislatura_id" integer NOT NULL REFERENCES "mesas_legislatura" ("id"),
"tipo" varchar(1) NOT NULL,
"data_inicio" date NOT NULL,
"data_fim" date NOT NULL,
"data_inicio_intervalo" date NULL,
"data_fim_intervalo" date NULL
)
;
CREATE TABLE "mesas_mesadiretora" (
"id" integer NOT NULL PRIMARY KEY,
"casa_legislativa_id" integer NOT NULL
)
;
CREATE TABLE "mesas_composicaocoligacao" (
"id" integer NOT NULL PRIMARY KEY,
"coligacao_id" integer NOT NULL REFERENCES "mesas_coligacao" ("id"),
"partido_id" integer NOT NULL
)
;
COMMIT;

37
docs/relatorios/etapa4/arquivos/parlamentares.sql

@ -0,0 +1,37 @@
BEGIN;
CREATE TABLE "parlamentares_partido" (
"id" integer NOT NULL PRIMARY KEY,
"nome" varchar(50) NOT NULL,
"sigla" varchar(10) NOT NULL
)
;
CREATE TABLE "parlamentares_parlamentar" (
"id" integer NOT NULL PRIMARY KEY,
"nome_completo" varchar(60) NOT NULL,
"nome_parlamentar" varchar(35) NOT NULL,
"foto" varchar(100) NOT NULL,
"foto_largura" smallint NULL,
"foto_altura" smallint NULL,
"sexo" varchar(1) NOT NULL,
"data_nascimento" date NULL,
"logradouro" varchar(100) NOT NULL,
"bairro" varchar(40) NOT NULL,
"cidade_id" integer NOT NULL,
"cep" varchar(9) NOT NULL,
"pagina_web" varchar(200) NOT NULL,
"email" varchar(75) NOT NULL
)
;
CREATE TABLE "parlamentares_mandato" (
"id" integer NOT NULL PRIMARY KEY,
"parlamentar_id" integer NOT NULL REFERENCES
"parlamentares_parlamentar" ("id"),
"legislatura_id" integer NOT NULL,
"partido_id" integer NOT NULL REFERENCES "parlamentares_partido" ("id"),
"inicio_mandato" date NOT NULL,
"fim_mandato" date NOT NULL,
"is_afastado" bool NOT NULL,
"suplencia" varchar(1) NOT NULL
)
;
COMMIT;

12
docs/relatorios/etapa4/arquivos/servicos.sql

@ -0,0 +1,12 @@
BEGIN;
CREATE TABLE "servicos_servico" (
"id" integer NOT NULL PRIMARY KEY,
"tipo" varchar(50) NOT NULL,
"descricao" text NOT NULL,
"data_inicio" date NULL,
"data_fim" date NULL,
"situacao" varchar(1) NOT NULL,
"avaliacao" smallint unsigned NULL
)
;
COMMIT;

88
docs/relatorios/etapa4/arquivos/tree.txt

@ -0,0 +1,88 @@
.
|-- COPYING
|-- LEIA-ME -> README
|-- README
|-- devel.db
|-- docs
| |-- arquivos
| | |-- casosdeuso.dia
| | |-- esquema.sql
| | `-- models.png
| |-- instalacao.txt
| |-- relatorios
| | `-- [...]
| `-- visaogeral.txt
|-- etc
| |-- apache
| | |-- apache.conf
| | `-- django.wsgi
| `-- patchs
| `-- django-maintenancemode
| `-- paths_with_access_allowed.r10.patch
|-- media
| |-- css
| | `-- base_site.css
| |-- images
| | |-- default-bg.gif
| | `-- logo-interlegis.png
| `-- js
| |-- jquery-1.2.6.js
| `-- jquery-1.2.6.min.js
`-- sigi
|-- __init__.py
|-- admin
| |-- __init__.py
| `-- filterspecs.py
|-- apps
| |-- __init__.py
| |-- casas
| | |-- __init__.py
| | |-- admin.py
| | |-- forms.py
| | |-- models.py
| | `-- views.py
| |-- contatos
| | |-- __init__.py
| | |-- admin.py
| | `-- models.py
| |-- convenios
| | |-- __init__.py
| | |-- admin.py
| | `-- models.py
| |-- inventario
| | |-- __init__.py
| | |-- admin.py
| | `-- models.py
| |-- mesas
| | |-- __init__.py
| | |-- admin.py
| | `-- models.py
| |-- parlamentares
| | |-- __init__.py
| | |-- admin.py
| | `-- models.py
| `-- servicos
| |-- __init__.py
| |-- admin.py
| `-- models.py
|-- local_settings.template
|-- locale
| `-- pt_BR
| `-- LC_MESSAGES
| |-- django.mo
| `-- django.po
|-- manage.py
|-- settings.py
|-- sites.py
|-- templates
| |-- 503.html
| |-- admin
| | `-- base_site.html
| |-- app_index.html
| |-- index.html
| |-- login.html
| `-- snippets
| `-- modules
| |-- actions.html
| `-- user.html
`-- urls.py

24
docs/relatorios/etapa4/cabecalho.tex

@ -0,0 +1,24 @@
% $Id$
% ---------------------------------------------------------------------------
%
% This is part of the SIGI.
% Copyright (C) 2008 Interlegis
% See the file relatorio.tex for copying conditions.
%
\lhead {
\setlength{\unitlength}{5mm}
\begin{picture}(0,0)
\includegraphics[scale=0.65]{imagens/cabecalho.pdf}
\end{picture}
}
\chead{}
\rhead{}
\renewcommand{\headrulewidth}{0pt}
%
% Local variables:
% mode: flyspell
% TeX-master: "relatorio.tex"
% End:
%

37
docs/relatorios/etapa4/capa.tex

@ -0,0 +1,37 @@
% $Id$
% ---------------------------------------------------------------------------
%
% This is part of the SIGI.
% Copyright (C) 2008 Interlegis
% See the file relatorio.tex for copying conditions.
%
\textsf{\vspace{6cm}}
\begin{center}
\noindent
\large{
\textbf{\titulo}
} \\
\Large{
\textbf{\subtitulo}
} \\
\large{
\textbf{APO-CASA}
}
\vspace{9cm}
\large{
\textbf{\autor}\\
\textsf{Contrato N$^{\circ}$: \numcontrato}\\
}
\end{center}
\cfoot{}
%
% Local variables:
% mode: flyspell
% TeX-master: "relatorio.tex"
% End:
%

612
docs/relatorios/etapa4/capitulos/anexos.tex

@ -0,0 +1,612 @@
%
% This is part of the SIGI.
% Copyright (C) 2008 Interlegis
% See the file relatorio.tex for copying conditions.
%
\section{Anexos}
\label{sec:anexos}
\subsection{Visão Geral}
\label{sec:a2}
O \textbf{SIGI} é um projeto para um Sistema de Informações Gerenciais do
\href{http://www.interlegis.gov.br/}{Interlegis}, escrito na linguagem de
programação \href{http://www.python.org}{Python} com o framework para
desenvolvimento web \href{http://www.djangoproject.org}{Django}.
\begin{description}
%[visit_definition_list_item]
\item[{Página do projeto}:] %[visit_definition]
\href{http://colab.interlegis.gov.br/wiki/ProjetoSigi}{http://colab.interlegis.gov.br/wiki/ProjetoSigi}
%[depart_definition]
%[depart_definition_list_item]
\end{description}
%___________________________________________________________________________
\hypertarget{caracter-sticas}{}
\pdfbookmark[0]{Características}{caracter-sticas}
\subsubsection*{Características}
Lista das principais características do SIGI:
\begin{itemize}
\item {}
Serviço web cliente/servidor, podendo ser disponibilizado tanto na
internet quanto na intranet;
\item {}
Multi-plataforma;
\item {} Baseia-se na interface de administração nativa do Django
(\verb|django.contrib.admin|, maiores informações em
\href{http://docs.djangoproject.com/en/dev/ref/contrib/admin/}{http://docs.djangoproject.com/en/dev/ref/contrib/admin/});
\item {}
Gerencia convênios, equipamentos e inventários, serviços prestados e
composição de Mesas Diretoras das Casas Legislativas;
\item {}
Autenticação no sistema baseada em usuários e grupos, com perfis
diferentes;
\item {}
Emissão de relatórios.
\end{itemize}
%___________________________________________________________________________
\hypertarget{requisitos-b-sicos-de-software}{}
\pdfbookmark[0]{Requisitos básicos de software}{requisitos-b-sicos-de-software}
\subsubsection*{Requisitos básicos de software}
\begin{itemize}
\item {}
Python {\textgreater}= 2.4 {\textless} 3.0
\item {}
Django 1.0
\end{itemize}
%___________________________________________________________________________
\hypertarget{licen-a-de-uso}{}
\pdfbookmark[0]{Licença de uso}{licen-a-de-uso}
\subsubsection*{Licença de uso}
O SIGI é disponibilizado como
\href{http://pt.wikipedia.org/wiki/Software_Livre}{software livre},
isto significa que você pode redistribuí-lo e/ou modifica-lo dentro
dos termos da Licença Pública Geral GNU (GPL) como publicada pela
Fundação do Software Livre (FSF); na versão 3 da Licença, ou (na sua
opinião) em qualquer versão mais recente.
Veja o arquivo \texttt{LEIA-ME} para maiores informações a respeito das
condições de cópia e redistribuição.
\subsection{Organização do sistema}
\label{sec:org}
\subsubsection{Listagem do conteúdo dos diretórios}
\verbatiminput{../arquivos/tree.txt}
\subsubsection{Descrição dos arquivos e diretórios}
\begin{description}
\item[COPYING:] Arquivo com a licença do sistema (GPLv3).
\item[LEIA-ME/README:] Contém informações do sistema, nota de
copyright e instruções de instalação.
\item[devel.db:] Base de dados SQLite utilizada para desenvolvimento
do sistema.
\item[docs/:] Diretório com toda documentação escrita para o sistema
(relatórios, manual de instalação, casos de uso, esquema de base de
dados, etc).
\item[etc/:] Diretório com arquivos variados: configuração do Apache,
\textit{patchs} de códigos, etc.
\item[media/:] Diretório com arquivos estáticos e de mídia do sistema
(imagens, CSS, javascripts).
\item[sigi/:] Pacote Python do sistema.
\item[sigi/admin/:] Pacote de código relacionado com a aplicação
\verb|admin| do Django (\verb|django.contrib.admin|).
\item[sigi/apps/:] Pacote de aplicações do sistema, maiores
informações na Seção \ref{sec:apps}.
\item[sigi/settings.py:] Configurações padrões do sistema.
\item[sigi/local\_settings.template:] Exemplo de configurações locais
do sistema (pertinentes à instalação). Deverá ser copiado para
\verb|sigi/local_settings.py| para sua utilização.
\item[sigi/locale/:] Diretório com localização local do projeto.
\item[sigi/manage.py:] Script de gerenciamento do projeto, gerado pelo
framework Django.
\item[sigi/templates/:] Diretório com templates HTML do Django.
\item[sigi/urls.py:] Modulo de configuração de URLs.
\end{description}
\subsubsection{Descrição das aplicações}
\label{sec:apps}
O SIGI é composto de algumas aplicações Django, cada uma com um
propósito bem definido.
Uma aplicação Django é um pacote Python modular, podendo ser
reaproveitado em outros projetos.
Algumas aplicações possuem algum nível de relacionamento com as
outras.
Segue descrição de cada aplicação:
\begin{description}
\item[sigi.apps.casas:]
Gerência de Casas Legislativas.
\item[sigi.apps.contatos:]
Gerência de Contatos do Interlegis com Casas Legislativas,
fornecedores de equipamentos, serviços e etc.
\item[sigi.apps.convenios:]
Convênios do Interlegis com as Casas Legislativas.
\item[sigi.apps.inventario:]
Inventário de equipamentos disponibilizados pelo Interlegis para as
Casas Legislativas.
\item[sigi.apps.mesas:]
Composição das Mesas Diretoras das Casas Legislativas.
\item[sigi.apps.parlamentares:]
Gerência de Parlamentares.
\item[sigi.apps.servicos:]
Serviços prestados às Casas Legislativas conveniadas ao Interlegis.
\end{description}
\subsubsection{Relacionamento entre as aplicações}
\label{sec:rel}
A Figura \ref{fig:apps} demonstra o relacionamento entre as
aplicações e seus \emph{models}.
Uma seta direcional representa uma relação \textit{muitos para
um}. Uma seta bidirecional representa uma relação \textit{muitos
para muitos}.
A seta pontilhada representa uma relação genérica, como descrito na
documentação do Django:\\
http://docs.djangoproject.com/en/dev/ref/contrib/contenttypes/\#id1
\begin{figure}[p]
\centering
\includegraphics[angle=90,width=130mm]{../imagens/apps.png}
\caption{Relacionamento entre as aplicações}
\label{fig:apps}
\end{figure}
\subsection{Casos de Uso}
\label{sec:casos}
Esta seção descreve a utilização do sistema através de \emph{Casos de
Uso}, representando os principais atores e suas interações com o
sistema.
Os Casos de Uso servem de auxílio à compreensão dos usuários quanto à
implementação e uso do sistema.
\subsubsection{Casos de Uso do SIGI}
A Figura \ref{fig:casos} apresenta os Casos de Uso do SIGI de maneira
simplificada.
\begin{figure}[h]
\centering
\includegraphics[width=120mm]{../imagens/casosdeuso.png}
\caption{Casos de Uso}
\label{fig:casos}
\end{figure}
\paragraph{Descrição dos Atores}
\begin{description}
\item[Funcionário Interlegis Autorizado:] usuário apenas com
atribuições de leitura no sistema. Inclui pessoal da Subsecretaria
de Apoio Técnico e Relações Institucionais (SSATR) e Subsecretaria
de Planejamento e Fomento (SSPLF).
\item[SSFAC:] Subsecretaria de Formação e Atendimento à Comunidade do
Legislativo.
\item[SSADM:] Subsecretaria de Administração.
\item[SEIT:] Serviço de Infra-estrutura Tecnológica.
\end{description}
\paragraph{Descrição das Atividades}
\begin{description}
\item[Emitir Relatórios:] consiste em obter informações e emitir
relatórios de diversas partes do sistema.
\item[Emitir Etiquetas:] consiste em obter informações e emitir
etiquetas de algumas partes do sistema.
\item[Pesquisar e Recuperar Informações:] habilidades de pesquisa e
obtenção de informações da base de dados do sistema.
\item[Gerenciar Mesas Diretoras:] consiste em inserir, atualizar e
remover \emph{Mesas Diretoras}, \emph{Sessões Legislativas} e
modificar a \emph{Composição das Mesas Diretoras}.
\item[Gerenciar Parlamentares:] consiste em inserir, atualizar e
remover \emph{Parlamentares} e \emph{Partidos}.
\item[Gerenciar Equipamentos:] consiste em inserir, atualizar e
remover \emph{Equipamentos} e \emph{Fornecedores}.
\item[Gerenciar Casas Legislativas:] consiste em inserir, atualizar e
remover \emph{Casas Legislativas}.
\item[Gerenciar Convênios:] consiste em inserir, atualizar e remover
\emph{Convênios}.
\item[Gerenciar Inventário:] consiste em atualizar o \emph{Inventário}
das Casas Legislativas.
\item[Gerenciar Serviços:] consiste em inserir, atualizar e remover
\emph{Serviços} prestados às Casas Legislativas.
\end{description}
\subsection{Modelo de dados}
\label{sec:modelo}
\subsubsection{Aplicação sigi.apps.casas (figura \ref{fig:casas})}
\begin{figure}[h!]
\centering
\includegraphics[width=60mm]{../imagens/casas.png}
\caption{Diagrama de Classes da aplicação sigi.apps.casas}
\label{fig:casas}
\end{figure}
\subsubsection{Aplicação sigi.apps.contatos (figura \ref{fig:contatos})}
\begin{figure}[h!]
\centering
\includegraphics[width=120mm]{../imagens/contatos.png}
\caption{Diagrama de Classes da aplicação sigi.apps.contatos}
\label{fig:contatos}
\end{figure}
\subsubsection{Aplicação sigi.apps.convenios (figura \ref{fig:convenios})}
\begin{figure}[h!]
\centering
\includegraphics[width=100mm]{../imagens/convenios.png}
\caption{Diagrama de Classes da aplicação sigi.apps.convenios}
\label{fig:convenios}
\end{figure}
\subsubsection{Aplicação sigi.apps.inventario (figura \ref{fig:inventario})}
\begin{figure}[h!]
\centering
\includegraphics[width=120mm]{../imagens/inventario.png}
\caption{Diagrama de Classes da aplicação sigi.apps.inventario}
\label{fig:inventario}
\end{figure}
\subsubsection{Aplicação sigi.apps.mesas (figura \ref{fig:mesas})}
\begin{figure}[h!]
\centering
\includegraphics[width=145mm]{../imagens/mesas.png}
\caption{Diagrama de Classes da aplicação sigi.apps.mesas}
\label{fig:mesas}
\end{figure}
\subsubsection{Aplicação sigi.apps.parlamentares (figura \ref{fig:parlamentares})}
\begin{figure}[h!]
\centering
\includegraphics[width=100mm]{../imagens/parlamentares.png}
\caption{Diagrama de Classes da aplicação sigi.apps.parlamentares}
\label{fig:parlamentares}
\end{figure}
\subsubsection{Aplicação sigi.apps.servicos (figura \ref{fig:servicos})}
\begin{figure}[h!]
\centering
\includegraphics[width=60mm]{../imagens/servicos.png}
\caption{Diagrama de Classes da aplicação sigi.apps.servicos}
\label{fig:servicos}
\end{figure}
\subsection{Esquema de dados}
\label{sec:esquema}
Nesta seção estão descritos os esquemas de criação das entidades e de
seus relacionamentos do banco de dados \emph{SQL} para cada aplicação
do SIGI.
\small
\subsubsection{Aplicação sigi.apps.casas}
\verbatiminput{../arquivos/casas.sql}
\subsubsection{Aplicação sigi.apps.contatos}
\verbatiminput{../arquivos/contatos.sql}
\subsubsection{Aplicação sigi.apps.convenios}
\verbatiminput{../arquivos/convenios.sql}
\subsubsection{Aplicação sigi.apps.inventario}
\verbatiminput{../arquivos/inventario.sql}
\subsubsection{Aplicação sigi.apps.mesas}
\verbatiminput{../arquivos/mesas.sql}
\subsubsection{Aplicação sigi.apps.parlamentares}
\verbatiminput{../arquivos/parlamentares.sql}
\subsubsection{Aplicação sigi.apps.servicos}
\verbatiminput{../arquivos/servicos.sql}
\normalsize
\subsection{Manual de Instalação}
\label{sec:a3}
Este documento descreve como efetuar a instalação do Sistema de
Informações Gerenciais do Interlegis (SIGI). Os passos são baseados
nas distribuições GNU/Linux Debian e Ubuntu. Podem ser aplicados sem
dificuldades em outras distribuições, mas poderão sofrer alguma
adaptação.
%___________________________________________________________________________
\hypertarget{prepara-o-do-ambiente-para-a-instala-o}{}
\pdfbookmark[0]{Preparação do ambiente para a instalação}{prepara-o-do-ambiente-para-a-instala-o}
\subsubsection{Preparação do ambiente para a instalação}
Há dois tipos de instalação do SIGI, uma para desenvolvimento e outra
para produção.
Para ambas instalações, certifique-se que os seguintes softwares
estejam instalados em seu sistema:
\begin{itemize}
\item {}
Python {\textgreater}= 2.4 {\textless} 3.0
\item {}
Django 1.0
\end{itemize}
O Python pode ser instalado a partir do pacote \texttt{python} com uma
ferramenta de instalação de pacotes como o \texttt{apt-get} ou
\texttt{aptitude}.
Se a sua distribuição não possui o pacote \texttt{python-django}, para
o Django na versão 1.0, será necessário obter e configurar o mesmo
manualmente. A próxima seção traz mais detalhes para esta tarefa.
%___________________________________________________________________________
\hypertarget{instala-o-do-django}{}
\pdfbookmark[1]{Instalação do Django}{instala-o-do-django}
\subsubsection*{Instalação do Django}
O Django 1.0 pode ser obtido através da \href{http://www.djangoproject.com/download/}{página de download} do \href{http://www.djangoproject.com}{Django Project} via \emph{tarball} (\texttt{tar.gz}) ou via
Subversion (revisão 8961).
%___________________________________________________________________________
\hypertarget{obtendo-e-instalando-o-django}{}
\pdfbookmark[2]{Obtendo e instalando o Django}{obtendo-e-instalando-o-django}
\subsubsection*{Obtendo e instalando o Django}
Primeiramente baixe o \href{http://www.djangoproject.com/download/1.0/tarball/}{tarball do Django 1.0} ou dê
\emph{checkout} na tag 1.0 disponível no repositório do Subversion do
projeto:
\begin{quote}{\ttfamily \raggedright \noindent
svn~checkout~http://code.djangoproject.com/svn/django/tags/releases/1.0/
}\end{quote}
Após isso será necessário colocar o pacote Python do \texttt{django}
(diretório \texttt{django} disponível dentro do diretório/tarball baixado)
no \emph{path} do Python.
Para saber quais são os diretórios que estão no path do Python,
execute em linha de comando:
\begin{quote}{\ttfamily \raggedright \noindent
python~-c~'import~sys;~print~sys.path'
}\end{quote}
Você tem opção de mover o pacote \texttt{django} para algum diretório
coberto pelo path ou adicionar um outro local no path utilizando a
variável de ambiente \texttt{PYTHONPATH} do usuário que rodará o sistema. O
formato do \texttt{PYTHONPATH} é o mesmo do \texttt{PATH} do sistema. Exemplo:
\begin{quote}{\ttfamily \raggedright \noindent
PYTHONPATH=/path/to/django:{\$}PYTHONPATH
}\end{quote}
De maneira simplificada, a instalação do Django é como a instalação de
qualquer outro pacote Python.
%___________________________________________________________________________
\hypertarget{preparando-o-ambiente-para-desenvolvimento}{}
\pdfbookmark[1]{Preparando o ambiente para desenvolvimento}{preparando-o-ambiente-para-desenvolvimento}
\subsubsection*{Preparando o ambiente para desenvolvimento}
Se você irá desenvolver o SIGI, é necessário possuir os seguintes
pacotes instalados em sua máquina:
\begin{itemize}
\item {}
sqlite3, para SQLite 3;
\item {}
python-pysqlite2, interface Python para SQLite 3.
\end{itemize}
%___________________________________________________________________________
\hypertarget{preparando-o-ambiente-para-produ-o}{}
\pdfbookmark[1]{Preparando o ambiente para produção}{preparando-o-ambiente-para-produ-o}
\subsubsection*{Preparando o ambiente para produção}
Para disponibilizar o SIGI em um ambiente para produção você
necessitará do MySQL Server ou PostgreSQL, ou qualquer outro Sistema
Gerenciador de Banco de Dados (SGBD) compatível com Django 1.0, e de
suas seguintes interfaces para Python, como os pacotes
\texttt{python-mysqldb} e \texttt{python-psycopg2} (respectivamente para MySQL e
PostgreSQL).
Será necessário também possuir o Apache ({\textgreater}= 2.2) instalado para
disponibilizar o sistema via HTTP, de forma cliente/servidor, ou outro
servidor web compatível com Python e WSGI (ou FastCGI).
Opcionalmente, você pode utilizar o servidor web Lighttpd para servir
os arquivos estáticos do sistema.
Você encontrará configurações para Apache com WSGI neste documento,
juntamente com instruções para configurar o SIGI com o banco de dados
escolhido.
%___________________________________________________________________________
\hypertarget{instala-o-e-configura-o-do-sigi}{}
\pdfbookmark[0]{Instalação e configuração do SIGI}{instala-o-e-configura-o-do-sigi}
\subsubsection{Instalação e configuração do SIGI}
O SIGI está disponível no \href{http://colab.interlegis.gov.br}{Colab},
um portal colaborativo para a gerência dos projetos de software do
\href{http://www.interlegis.gov.br}{Interlegis}.
A página do projeto SIGI no Colab pode ser acessada através do link
\href{http://colab.interlegis.gov.br/wiki/ProjetoSigi}{http://colab.interlegis.gov.br/wiki/ProjetoSigi}.
%___________________________________________________________________________
\hypertarget{obtendo-e-instalando-o-sigi}{}
\pdfbookmark[1]{Obtendo e instalando o SIGI}{obtendo-e-instalando-o-sigi}
\subsubsection*{Obtendo e instalando o SIGI}
Para baixar o SIGI, é necessário ter o Subversion instalado em sua
máquina (pacote \texttt{subversion}). Para \emph{checkout} do sistema via
Subversion, execute o comando abaixo:
\begin{verbatim}
svn checkout http://repositorio.interlegis.gov.br/SIGI/trunk/ \
/path/to/SIGI
\end{verbatim}
Substitua \texttt{/path/to/SIGI} para o local onde deseja instalar o
SIGI. (Iremos considerar o diretório SIGI como a raiz do projeto
durante o restante deste documento.)
%___________________________________________________________________________
\hypertarget{configura-o-do-sigi}{}
\pdfbookmark[1]{Configuração do SIGI}{configura-o-do-sigi}
\subsubsection*{Configuração do SIGI}
Dentro da raiz do projeto, encontra-se um diretório de nome \texttt{sigi}
(pacote Python do projeto). Sua configuração padrão, se encontra no
arquivo \texttt{settings.py}.
Para alterar as configurações do projeto, é recomendado que copie o
arquivo \texttt{local{\_}settings.template} para \texttt{local{\_}settings.py} e
altere os parâmetros neste arquivo.
%___________________________________________________________________________
\hypertarget{instala-o-em-ambiente-para-desenvolvimento}{}
\pdfbookmark[1]{Instalação em ambiente para desenvolvimento}{instala-o-em-ambiente-para-desenvolvimento}
\subsubsection*{Instalação em ambiente para desenvolvimento}
As configurações padrão do projeto já estão direcionadas para um
ambiente de desenvolvimento e não exige demais configurações.
(Os comandos abaixo deverão ser executados dentro do diretório
\texttt{sigi}, onde se encontra o arquivo \texttt{manage.py}.)
%___________________________________________________________________________
\hypertarget{base-de-dados-em-ambiente-para-desenvolvimento}{}
\pdfbookmark[2]{Base de dados em ambiente para desenvolvimento}{base-de-dados-em-ambiente-para-desenvolvimento}
\subsubsection*{Base de dados em ambiente para desenvolvimento}
Antes de executar o projeto, é necessário preencher o banco de dados
com suas tabelas e valores padrão.
Considerando que possua o SQLite instalado, basta executar o comando
abaixo:
\begin{quote}{\ttfamily \raggedright \noindent
python~manage.py~syncdb
}\end{quote}
%___________________________________________________________________________
\hypertarget{execu-o-do-projeto-em-ambiente-para-desenvolvimento}{}
\pdfbookmark[2]{Execução do projeto em ambiente para desenvolvimento}{execu-o-do-projeto-em-ambiente-para-desenvolvimento}
\subsubsection*{Execução do projeto em ambiente para desenvolvimento}
Para rodar o SIGI, execute em linha de comando:
\begin{quote}{\ttfamily \raggedright \noindent
python~manage.py~runserver
}\end{quote}
O projeto poderá ser acessado através do endereço
\href{http://127.0.0.1:8000/}{http://127.0.0.1:8000/}.
%___________________________________________________________________________
\hypertarget{instala-o-em-ambiente-para-produ-o}{}
\pdfbookmark[1]{Instalação em ambiente para produção}{instala-o-em-ambiente-para-produ-o}
\subsubsection*{Instalação em ambiente para produção}
Para instalar o SIGI em ambiente para produção, devemos configurar um
Sistema Gerenciador de Banco de Dados (SGBD), o qual armazenará os
dados do sistema, e configurar um servidor HTTP, como o Apache, para
disponibilizar o sistema na web.
%___________________________________________________________________________
\hypertarget{configura-o-do-sgdb}{}
\pdfbookmark[2]{Configuração do SGDB}{configura-o-do-sgdb}
\subsubsection*{Configuração do SGDB}
Modifique em seu \texttt{local{\_}settings.py} as variáveis
\texttt{DATABASE{\_}ENGINE}, \texttt{DATABASE{\_}NAME}, \texttt{DATABASE{\_}USER},
\texttt{DATABASE{\_}PASSWORD}, \texttt{DATABASE{\_}HOST} e \texttt{DATABASE{\_}PORT} de acordo
com o banco de dados disponibilizado para o SIGI.
Em \texttt{DATABASE{\_}ENGINE}, suas opções são \texttt{postgresql{\_}psycopg2},
\texttt{postgresql}, \texttt{mysql}, \texttt{sqlite3} ou \texttt{ado{\_}mssql}.
Após isso, é necessário preencher o banco de dados
com suas tabelas e valores padrão. Para tal, execute em linha de
comando:
\begin{quote}{\ttfamily \raggedright \noindent
python~manage.py~syncdb
}\end{quote}
%___________________________________________________________________________
\hypertarget{configura-o-do-servidor-web-apache-com-wsgi}{}
\pdfbookmark[2]{Configuração do servidor web Apache com WSGI}{configura-o-do-servidor-web-apache-com-wsgi}
\subsubsection*{Configuração do servidor web Apache com WSGI}
Exemplos de configurações, de um \texttt{VirtualHost}, estão disponíveis no
diretório \texttt{etc/apache/} dentro do diretório raiz do projeto
(\texttt{SIGI/}).
%
% Local variables:
% mode: flyspell
% TeX-master: "relatorio.tex"
% End:
%

20
docs/relatorios/etapa4/capitulos/bibliografia.tex

@ -0,0 +1,20 @@
%
% This is part of the SIGI.
% Copyright (C) 2008 Interlegis
% See the file relatorio.tex for copying conditions.
%
\section{Bibliografia}
\label{sec:bib}
\begin{itemize}
\item Documentação Oficial do Django 1.0
\item Django Book
\end{itemize}
%
% Local variables:
% mode: flyspell
% TeX-master: "relatorio.tex"
% End:
%

47
docs/relatorios/etapa4/capitulos/capitulo1.tex

@ -0,0 +1,47 @@
%
% This is part of the SIGI.
% Copyright (C) 2008 Interlegis
% See the file relatorio.tex for copying conditions.
%
\section{Desenvolvimento web com Django}
\label{sec:django}
\subsection{Objetivos}
O treinamento visa capacitar desenvolvedores web no uso do framework
Django para a construção de sistemas online.
\subsection{Conteúdo programático}
\begin{enumerate}
\item Introdução
\item Conceitos básicos
\begin{enumerate}
\item Model-view-controller (MVC)
\item Model-template-view (MTV)
\end{enumerate}
\item Desenvolvimento de uma aplicação
\begin{enumerate}
\item Models
\item Views
\item Templates
\end{enumerate}
\item Projetos $x$ Aplicações
\begin{enumerate}
\item Organização de projetos
\item Organização de aplicações
\end{enumerate}
\end{enumerate}
\subsection{Requisitos}
Para o treinamento, o aluno deverá possuir conhecimentos básicos em
desenvolvimento web e Python.
\subsection{Duração do treinamento}
O treinamento tem duração estimada em 4 horas.
%
% Local variables:
% mode: flyspell
% TeX-master: "relatorio.tex"
% End:
%

39
docs/relatorios/etapa4/capitulos/capitulo2.tex

@ -0,0 +1,39 @@
%
% This is part of the SIGI.
% Copyright (C) 2008 Interlegis
% See the file relatorio.tex for copying conditions.
%
\section{Estendendo o SIGI}
\label{sec:sigidev}
\subsection{Objetivos}
O treinamento visa capacitar a equipe de desenvolvimento de software
do Interlegis a manter e estender o SIGI.
\subsection{Conteúdo programático}
\begin{enumerate}
\item Aplicação Admin do Django
\begin{enumerate}
\item CSS
\item Templates
\item Arquivo sites.py
\end{enumerate}
\item Modelo de dados
\item Configurações locais
\item Criando novas aplicações
\end{enumerate}
\subsection{Requisitos}
Para o treinamento, o aluno deverá possuir conhecimentos básicos em
desenvolvimento web com Python/Django.
\subsection{Duração do treinamento}
O treinamento tem duração estimada em 2 hora.
%
% Local variables:
% mode: flyspell
% TeX-master: "relatorio.tex"
% End:
%

39
docs/relatorios/etapa4/capitulos/capitulo3.tex

@ -0,0 +1,39 @@
%
% This is part of the SIGI.
% Copyright (C) 2008 Interlegis
% See the file relatorio.tex for copying conditions.
%
\section{Utilizando o SIGI}
\label{sec:sigiuso}
\subsection{Objetivos}
O treinamento visa capacitar os funcionários do Interlegis a utilizar
o SIGI aproveitando todos os seus recursos.
\subsection{Conteúdo programático}
\begin{enumerate}
\item Dashboard
\item Aplicações
\begin{enumerate}
\item Pesquisa
\item Adição/Edição/Atualização
\end{enumerate}
\item Histórico de atividades
\item Relatórios
\item Gerenciamento de usuários
\end{enumerate}
\subsection{Requisitos}
Para o treinamento, o aluno deverá possuir conhecimentos básicos em
Internet e navegação web.
\subsection{Duração do treinamento}
O treinamento tem duração estimada em 1 hora.
%
% Local variables:
% mode: flyspell
% TeX-master: "relatorio.tex"
% End:
%

31
docs/relatorios/etapa4/capitulos/introducao.tex

@ -0,0 +1,31 @@
%
% This is part of the SIGI.
% Copyright (C) 2008 Interlegis
% See the file relatorio.tex for copying conditions.
%
\section{Introdução}
Este documento detalha as atividades desenvolvidas durante a quarta
etapa do projeto de desenvolvimento do Sistema de Informações
Gerenciais do Interlegis (SIGI).
A quarta etapa consiste nos treinamentos de utilização da tecnologia
``Django Web Framework'', aplicada no desenvolvimento do SIGI, e sobre
o uso do SIGI.
As seções \ref{sec:django}, \ref{sec:sigidev} e \ref{sec:sigiuso}
apresentam, respectivamente, os objetivos e conteúdo programático do
treinamento em Django, desenvolvimento para o SIGI e uso do SIGI.
A seção \ref{sec:bib} possui a bibliografia necessária para o
treinamento em desenvolvimento web com Django e do SIGI.
Na seção \ref{sec:anexos}, estão anexadas a documentação técnica
produzida para o SIGI e os \textit{slides} dos treinamentos.
%
% Local variables:
% mode: flyspell
% TeX-master: "relatorio.tex"
% End:
%

20
docs/relatorios/etapa4/comandos.tex

@ -0,0 +1,20 @@
% $Id$
% ---------------------------------------------------------------------------
%
% This is part of the SIGI.
% Copyright (C) 2008 Interlegis
% See the file relatorio.tex for copying conditions.
%
\newcommand{\titulo}{Produto IV}
\newcommand{\subtitulo}{Sistema de Informações Gerenciais do Interlegis}
\newcommand{\autor}{Guilherme Mesquita Gondim}
\newcommand{\numcontrato}{2008/000471} % Número do contrato caso seja
% consultor.
%
% Local variables:
% mode: flyspell
% TeX-master: "relatorio.tex"
% End:
%

BIN
docs/relatorios/etapa4/imagens/apps.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 130 KiB

460
docs/relatorios/etapa4/imagens/cabecalho.pdf

File diff suppressed because one or more lines are too long

BIN
docs/relatorios/etapa4/imagens/casas.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

BIN
docs/relatorios/etapa4/imagens/casosdeuso.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

BIN
docs/relatorios/etapa4/imagens/contatos.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 53 KiB

BIN
docs/relatorios/etapa4/imagens/convenios.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

BIN
docs/relatorios/etapa4/imagens/er.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 132 KiB

BIN
docs/relatorios/etapa4/imagens/inventario.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 47 KiB

BIN
docs/relatorios/etapa4/imagens/mesas.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 60 KiB

BIN
docs/relatorios/etapa4/imagens/parlamentares.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

BIN
docs/relatorios/etapa4/imagens/servicos.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

10597
docs/relatorios/etapa4/relatorio.pdf

File diff suppressed because one or more lines are too long

68
docs/relatorios/etapa4/relatorio.tex

@ -0,0 +1,68 @@
% $Id$
% ---------------------------------------------------------------------------
%
% Copyright (c) 2008 Interlegis
%
% Permission is granted to copy, distribute and/or modify this
% document under the terms of the GNU Free Documentation License,
% Version 1.2 or any later version published by the Free Software
% Foundation; with no Invariant Sections, no Front-Cover Texts, and no
% Back-Cover Texts. A copy of the license is included in the section
% entitled "GNU Free Documentation License". If not, see
% <http://www.gnu.org/licenses/>.
%
\documentclass[a4paper,12pt]{article}
\textheight 22.5cm
\usepackage[brazil]{babel} % suporte ao portugues brasil
\usepackage[utf8]{inputenc} % Codificacao dos caracteres (use a
% codificacao latin1 caso seu
% sistema/editor nao suporte utf8).
\usepackage[T1]{fontenc}
\usepackage{indentfirst} % indenta o primeiro paragrafo
\usepackage{graphicx} % uso para imagens
\usepackage{dsfont} % fonte
\usepackage{fancyhdr} % permite alterar o cabecalho
\pagestyle{fancy} % configura o estilo padrao
\usepackage{verbatim}
\input{comandos} % novos comandos
\usepackage[pdftex,% % formatacao no PDF
pdfauthor={\autor},%
pdftitle={\titulo \ - \subtitulo},%
]{hyperref}
\hypersetup{backref=true,pdfpagemode=UseOutlines,colorlinks=true,
breaklinks=true,hyperindex,linkcolor=blue,anchorcolor=black,
citecolor=blue,filecolor=magenta,menucolor=red,pagecolor=red,
urlcolor=cyan,bookmarks=true,bookmarksopen=true,pdfpagelayout=SinglePage,
pdfpagetransition=Dissolve}
\begin{document}
\input{cabecalho}
\input{capa}
% configura o rodape do conteudo pre-textual para numeros romanos
\clearpage
\cfoot{\thepage}
\setcounter{page}{1}
\pagenumbering{Roman}
\tableofcontents
\listoffigures
% configura o rodape das paginas de conteudo para numeros convencionais
\clearpage
\setcounter{page}{1}
\pagenumbering{arabic}
% conteudo
\include{capitulos/introducao}
\include{capitulos/capitulo1}
\include{capitulos/capitulo2}
\include{capitulos/capitulo3}
\include{capitulos/bibliografia}
\include{capitulos/anexos}
\end{document}
Loading…
Cancel
Save