Escolar Documentos
Profissional Documentos
Cultura Documentos
SISTEMAS DE INFORMAÇÃO
ROLIM DE MOURA
2015
JOÃO RICARDO ALVES DE PAULA
ROLIM DE MOURA
2015
SUMÁRIO
1 INTRODUÇÃO ......................................................................................................... 6
2 MÉTODOS ............................................................................................................... 8
2.1 Tecnologias e ferramentas utilizadas ............................................................ 9
2.1.1 Linguagem de programação .................................................................. 9
2.1.2 Framework ........................................................................................... 10
2.1.3 Padrão de projeto MVC ....................................................................... 11
2.1.4 Controle de versão .............................................................................. 11
3 DOCUMENTAÇÃO ................................................................................................ 13
3.1 Sistemas de Informação ............................................................................. 13
3.2 Análise ........................................................................................................ 13
3.3 Requisitos de software ................................................................................ 14
3.3.1 Requisitos Funcionais .......................................................................... 14
3.3.3 UML ..................................................................................................... 20
3.4 Banco de Dados ......................................................................................... 36
3.4.1 Modelagem do Banco de Dados.......................................................... 37
3.5 Alterações em relação ao projeto ............................................................... 42
REFERÊNCIAS ......................................................................................................... 46
APÊNDICES.............................................................................................................. 48
1 INTRODUÇÃO
Tecnologia oportuna: aquela que está dentro das possibilidades de uso por
ser apropriada à atividade para a qual foi destinada; Tecnologia funcional:
aquela adquirida como oportuna, conseguindo satisfazer as necessidades
para a qual foi comprada. Resumindo, é a tecnologia oportuna que funciona.
7
2 MÉTODOS
Para que fosse possível a execução desse projeto como produto, fez-se
necessário a utilização de algumas ferramentas e tecnologias que disponibilizaram
as funcionalidades exigidas pelo sistema. Portanto, em seguida, verifica-se uma lista
de ferramentas e tecnologias que foram utilizadas nesse trabalho.
1
Site oficial da linguagem de programação PHP: http://www.php.net/
10
nesse meio. De acordo com Potencier (2012), o PHP é utilizado por 77,9% dos sites
conhecidos, portanto há uma grande comunidade em torno da linguagem e muito
material para consulta.
No PHP foram usadas as classes DomPDF2 0.6.0 e PHPMailer3 5.2.14, a
primeira para gerar arquivos de PDF através do PHP e a segunda para o envio de e-
mails autenticados pelo PHP.
O projeto foi desenvolvido utilizando-se o banco de dados MySQL4 5.1.36 por
ser gratuito, possuir grande integração com a linguagem PHP e ser compatível com
o framework do PHP, citado abaixo, que foi utilizado. Para facilitar o gerenciamento
do banco de dados foi utilizado o SGBD phpMyAdmin5 3.5.1.
Como a aplicação foi implementada em ambiente web, também foram
utilizadas as linguagens de marcação HTML6 5 (HyperText Markup Language) e de
estilos CSS7 3 (Cascading Style Sheets) para apresentar o conteúdo dinâmico
gerado pelo PHP. Para proporcionar a melhor interação do usuário com o sistema,
foi utilizado a linguagem de programação Javascript8 junto com o framework
Backbone.js9 1.0.0, além das bibliotecas jQuery10 1.8.2, Handsontable11 0.19.0 e
Simple Ajax Uploader12 2.1.1.
2.1.2 Framework
2
Site oficial da classe DomPDF: http://pxd.me/dompdf/
3
Repositório da classe PHPMailer: https://github.com/Synchro/PHPMailer/
4
Site oficial do banco de dados MySQL: https://www.mysql.com/
5
Site oficial do SGBD phpMyAdmin: https://www.phpmyadmin.net/
6
Documentação dos padrões da linguagem HTML: http://www.w3schools.com/html/
7
Documentação dos padrões da linguagem CSS: http://www.w3schools.com/css/
8
Documentação dos padrões da linguagem Javascript: http://www.w3schools.com/js/
9
Site oficial do framework Backbone.js: http://backbonejs.org/
10
Site oficial da biblioteca jQuery: https://jquery.com/
11
Site oficial da biblioteca Handsontable: http://handsontable.com/
12
Repositório da biblioteca Simple Ajax Uploader: https://github.com/LPology/Simple-Ajax-Uploader/
11
13
Site oficial do framework Phreeze: http://phreeze.com/
14
Acrônimo em inglês para criação, leitura, alteração e exclusão de dados
12
15
Site oficial do SCV GitHub: https://github.com/
13
3 DOCUMENTAÇÃO
3.2 Análise
Vê-se que é importante uma análise eficaz para que o produto final seja
condizente com as expectativas do usuário, de modo que o software não lhe traga
desapontamentos.
Para que uma aplicação seja desenvolvida ela deve atender aos requisitos de
funcionalidade, ou seja, os requisitos de software. Os requisitos são divididos em
requisitos funcionais e não funcionais.
3.3.3 UML
telefone
3 . Inserir informações do
participante no campo de busca e
selecionar a opção buscar
4. Filtrar os participantes listados a partir dos termos de busca
fornecidos
5. Selecionar opção de alterar
participantes da listagem
6. Apresentar tela com os seguintes campos preenchidos com
os dados do participantes para alteração:
nome
email
cpf
7. Informar novos dados
8. Confirmar
9. Registrar novos dados
10. Apresentar mensagem de sucesso na alteração dos dados
1. Os campos nome e cpf são obrigatórios
Restrições/validações
2. Não é permitido mais de um participante com o mesmo cpf
11. Selecionar opção de exclusão
de um participante da listagem
12. Apresentar mensagem de confirmação de exclusão do
palestrante
13. Confirmar
14. Registrar exclusão
15. Apresentar mensagem de sucesso na exclusão
1. O participante a ser excluído deve estar cadastrado no
sistema
Restrições/validações
2. Não é possível excluir o participante do sistema caso ele
esteja associado a algum evento
16. Selecionar opção de inserir
novos participantes
17. Apresentar tela com os seguintes campos para
preenchimento:
nome
email
cpf
18. Informar dados
19. Confirmar
20. Registrar novos dados
21. Apresentar mensagem de sucesso na inserção dos dados
1. Os campos nome e cpf são obrigatórios
Restrições/validações
2. Não é permitido mais de um participante com o mesmo cpf
22. Solicitar opção de importar
participantes
23. Apresentar tela com campo para inserção do arquivo de
planilha de dados de participantes
24. Informar arquivo de planilha
de dados contendo a lista de
participantes
25. Confirmar
30
certificados
13. Emitir os certificados para cada participante selecionado de
acordo com as opções escolhidas
14. Emitir uma versão do certificado para o(s) palestrante(s)
15. Registrar dados dos certificados emitidos
16. Apresentar mensagem de sucesso na emissão dos
certificados
1. O evento deverá estar previamente cadastrado no sistema
2. Os participantes deverão estar previamente cadastrado no
sistema
3. Os participantes deverão estar associados ao evento
selecionado
4. Os campos modelo_do_certificado, livro,
inicio_codigo_certificado, inicio_pagina_livro são obrigatórios
Restrições/validações 5. Os campos livro, inicio_codigo_certificado e
inicio_pagina_livro após cadastrados no evento não podem ser
alterados, apenas visualizados
5. O campo codigo_certificado deve possuir valor único em cada
livro
6. Caso já tenham sidos emitidos os certificados para o evento
selecionado, os campos dos passo 4 já virão preenchidos com
os dados do modelo de certificado desse evento
Fonte: Próprio autor (2015)
Imprimir;
Gerar PDF;
Enviar por e-mail
6. Selecionar as opções de
obtenção dos certificados
7. Obter os certificados para o participante ou palestrante
informado de acordo com as opções escolhidas
8. Apresentar mensagem de sucesso na obtenção dos
certificados
1. O participante ou palestrante deverá estar previamente
cadastrado no sistema
Restrições/validações 2. Se for participante, só será possível obter o certificados de
palestras em que tenha a presença de participação confirmada
no sistema
Fonte: Próprio autor (2015)
FIGURA 3: Diagrama de Atividade da UML - Gerir Presença. Fonte: Próprio autor (2015)
36
FIGURA 4: Diagrama de Atividade da UML - Emitir Certificados. Fonte: Próprio autor (2015)
Guimarães (2003, p. 19) define banco de dados como uma coleção de dados
ou informações relacionadas entre si e que representam aspectos do mundo real
com significado próprio e que se deseja acessar no futuro. O autor enfatiza que o
relacionamento dos dados é o que o torna um banco ou base de dados, caso
contrário seriam apenas arquivos sem nexo. Entre as características do banco de
dados estão a durabilidade e consistência das informações nele contidas.
Cardoso e Cardoso (2012, p. 15) relatam que nos primórdios da tecnologia
computacional, o meio mais prático para se guardar informações era através da
37
De acordo com Cardoso e Cardoso (2012, p. 27) para que se tenha uma
representação lógica do projeto do banco de dados que seja sólida, segura, correta
e livre de erros é necessário que haja uma representação formal do banco de dados.
Nas páginas seguintes estão os diagramas do modelo entidade-
relacionamento e também o dicionário de dados deste projeto.
38
com senhas, chamado password_hash16. Ele é mais seguro que o md5, pois utiliza o
algoritmo bcript de criptografia. Devido a essa mudança de algoritmo foi necessário
alocar mais espaço no banco de dados para armazenar o hash da senha do usuário.
Na tabela Configuracao, os campos nome_instituicao e telefone tornaram-se
obrigatórios. A razão para a mudança é a de identificar a instituição que utiliza o
sistema e fornecer uma forma de contato ela para os visitantes do site.
Na tabela Evento, o campo local passou de 35 para 60 caracteres, pois notou-
se que 35 caracteres eram insuficientes para comportar o local de alguns eventos.
Nas tabelas Palestra_Palestrante e Palestra_Participante, foi adicionado um
indíce de valor único em conjunto para os campos id_palestrate e id_participante
com id_palestra das respectivas tabelas. A razão para tal foi garantir que um
participante ou palestrante não estejam cadastrados mais de uma vez em uma
mesma palestra.
Ainda nas tabelas Palestra_Palestrante e Palestra_Participante, o campo
id_certificado teve o valor padrão de nulo para 1, pois como tal campo é chave
estrangeira da tabela Certificado foi necessário a inserção de um Certificado padrão
que se comporta no sistema como um certificado inexistente. Assim o sistema
interpreta que palestrante ou participante não possui certificado quando for recém
associado à uma palestra.
Nas tabelas Usuario, Configuracao e Modelo_Certificado, foram adicionados
um registro inicial no banco de dados durante a execução do arquivo SQL de
instalação do sistema. Isso foi feito para que o sistema possa ser utilizado logo após
realizar a configuração do banco de dados no servidor.
4 CONSIDERAÇÕES FINAIS
16
Documentação da função password_hash disponível em:
http://php.net/manual/pt_BR/function.password-hash.php
44
houveram poucas mudanças nesses arquivos, os dados de que houve mais esforço
em relação ao Javascript do que PHP se sustentam.
O desenvolvimento foi desafiador, porém gratificante, pois não só foi possível
criar um sistema relevante e funcional como aprender muito sobre o
desenvolvimento de software em suas várias etapas através de tecnologias
modernas. A descoberta e uso de ferramentas até então desconhecidas ou
ignoradas pelo autor, como o GitHub, mostraram-se de grande utilidade para futuros
projetos pessoais e profissionais, portanto serão incorporadas em seu fluxo de
trabalho e estudo.
Ao fim do trabalho, chegou-se a um software que gerencia certificados para
eventos de forma confiável e eficaz, com recursos de controle de presença de
participantes e obtenção e validação de certificados emitidos pelo sistema por
qualquer pessoa com acesso à internet. Dito isto, o sistema cumpre a missão de
catalogar os certificados emitidos e assim facilitar o acesso a eles.
REFERÊNCIAS
POTENCIER, Fabien. PHP is much better than you think. Disponível em: <
http://bit.ly/php-better-than-you-think />. Acesso em: 03 mai. 2015.
PRESSMAN, Roger S.; LOWE, David. Engenharia Web. Rio de Janeiro: LTC, 2009.
SOARES, Wallace. Crie um framework para Sistemas Web com PHP 5 e AJAX.
São Paulo: Érica, 2009.
INÍCIO E AUTENTICAÇÃO
CONFIGURAÇÕES
USUÁRIOS
EVENTOS
ATIVIDADES
PALESTRANTES
PARTICIPANTES
CERTIFICADOS
1) Campo para digitar o número do livro ata, onde estarão os certificados que serão
gerados. Por padrão o sistema preenche com o número da última ata cadastrada;
2) Campo para digitar o número da página inicial na ata, onde estarão os certificados
que serão gerados. Por padrão o sistema preenche com a última página de
certificados gerada + 1. Ao lado, o sistema realiza e exibe o cálculo da última página
de certificados que será gerada para a atividade;
3) Campo para digitar o número do código inicial para os certificados que serão
gerados. Por padrão o sistema preenche com o último código de certificado gerado +
1. Ao lado, o sistema realiza e exibe o cálculo do último código de certificado que
será gerado para a atividade;
4) Ao clicar, o sistema prepara a ata e os certificados, depois baixa a ata para o
dispositivo do usuário. Por fim, redireciona para a tela de seleção de participantes
que receberão certificado;
5) Ao clicar, o sistema redireciona para a tela de gerenciamento do evento;
6) Ao clicar, o sistema redireciona para a tela de gerenciamento da atividade (ou
detalhes do evento, se ele não possuir outras atividades);
7) Ao clicar, o sistema redireciona para a tela de gerenciamento de palestrantes da
atividade/evento;
28
ROLIM DE MOURA
2015
JOÃO RICARDO ALVES DE PAULA
ROLIM DE MOURA
2015
SUMÁRIO
1 INTRODUÇÃO ......................................................................................................... 7
2 PROBLEMATIZAÇÃO .............................................................................................. 7
3 OBJETIVOS ............................................................................................................. 9
3.1 Objetivo geral ................................................................................................ 9
3.2 Objetivos específicos .................................................................................... 9
4 JUSTIFICATIVA ....................................................................................................... 9
6 MÉTODOS ............................................................................................................. 44
CRONOGRAMA ........................................................................................................ 47
RECURSOS .............................................................................................................. 47
REFERÊNCIAS ......................................................................................................... 48
LISTA DE QUADROS
1 INTRODUÇÃO
2 PROBLEMATIZAÇÃO
Tecnologia oportuna: aquela que está dentro das possibilidades de uso por
ser apropriada à atividade para a qual foi destinada; Tecnologia funcional:
aquela adquirida como oportuna, conseguindo satisfazer as necessidades
para a qual foi comprada. Resumindo, é a tecnologia oportuna que funciona.
3 OBJETIVOS
4 JUSTIFICATIVA
5 FUNDAMENTAÇÃO TEÓRICA
5.2 Análise
Para que uma aplicação seja desenvolvida ela deve atender aos requisitos de
funcionalidade, ou seja, os requisitos de software. Os requisitos são divididos em
requisitos funcionais e requisitos não funcionais.
Pré-condição RF01_Autenticacao_do_Usuario;
Todos os campos são obrigatórios;
Pós-condição Exibe mensagem sobre a emissão dos certificados;
Gerar ata dos certificados da palestra de acordo com requisito funcional
RF11_Gerar_Ata_Palestra
Fonte: Próprio autor (2015)
Guimarães (2003, p. 19) define banco de dados como uma coleção de dados
ou informações relacionadas entre si e que representam aspectos do mundo real
com significado próprio e que se deseja acessar no futuro. O autor enfatiza que o
relacionamento dos dados é o que o torna um banco ou base de dados, caso
contrário seriam apenas arquivos sem nexo. Entre as características do banco de
dados estão a durabilidade e consistência das informações nele contidas.
Cardoso e Cardoso (2012, p. 15) relatam que nos primórdios da tecnologia
computacional o meio mais prático para se guardar informações era através da
utilização de arquivos, porém esse método deixava os dados isolados gerando
inconsistências, redundância, problemas de segurança, sobretudo, dificuldades para
realizar buscas de informações nesses arquivos devido ao aumento na quantidade
de dados armazenados por eles.
Para resolver os problemas gerados pelo armazenamento de dados em
arquivos surgiu o conceito de banco de dados, que segundo as autoras
supracitadas, é uma coleção de dados organizada com uma estrutura para
armazenagem de informações a qual possui propriedades predefinidas, sendo que
as informações nela guardadas devem seguir as regras propostas pelo banco de
dados a qual pertencem.
Para que se efetue a manutenção e a criação de bancos de dados é utilizado
um Sistema Gerenciador de Banco de Dados (SGBD). O SGBD é uma ferramenta
sofisticada que permite à definição dos tipos de dados, a inserção de dados nesse
banco de dados e também a manipulação desses dados (inclusão, exclusão,
alteração), bem como sua visualização em forma de consultas (ALVES, 2004, p. 24).
5.5.2 Framework
Para que seja possível a execução desse projeto como um produto faz-se
necessário a utilização de algumas ferramentas e tecnologias que proporcionarão as
funcionalidades exigidas pelo sistema. Portanto, a seguir está a listagem de
ferramentas e tecnologias que serão utilizadas nesse projeto.
Para o desenvolvimento desse projeto será utilizada a linguagem de
programação PHP (Hypertext Preprocessor). PHP é uma linguagem de programação
web criada em 1994 por Rasmus Lerdorf com objetivo de criar páginas dinâmicas.
Hoje o PHP está na sua quinta versão a qual trouxe, entre outras novidades, a
possibilidade se programar utilizando o paradigma de orientação a objetos
(DALL’OGLIO, 2009).
A linguagem de programação PHP foi escolhida por ser uma linguagem web
de simples aprendizado, porém robusta e largamente utilizada nesse meio. De
acordo com Potencier (2012), o PHP é utilizado por 77,9% dos sites conhecidos,
portanto há uma grande comunidade em torno da linguagem e muito material para
consulta.
27
5.5.4 UML
19. Confirmar
20. Registrar novos dados
21. Apresentar mensagem de sucesso na inserção dos dados
1. Os campos nome e cpf são obrigatórios
Restrições/validações
2. Não é permitido mais de um participante com o mesmo cpf
22. Solicitar opção de importar
participantes
23. Apresentar tela com campo para inserção do arquivo de
planilha de dados de participantes
24. Informar arquivo de planilha
de dados contendo a lista de
participantes
25. Confirmar
26. Extrair e registrar novos dados
27. Apresentar mensagem de sucesso na inserção dos dados
1. A planilha de dados deve obrigatoriamente conter os campos
Restrições/validações nome e cpf e as suas respectivas colunas devem estar
devidamente preenchidas
Fonte: Próprio autor (2015)
6 MÉTODOS
CRONOGRAMA
Mês
Jul. Ago. Set. Out. Nov Dez.
Etapa
Elaboração do
banco de dados
Desenvolvimento
do sistema
Testes
Criação do manual
de uso da
aplicação
Apresentação do
sistema
Entrega final e
implantação
RECURSOS
Recursos financeiros
Item Instituição Custo (R$)
Impressão do projeto (2 Copiadora Central 30,00
cópias)
Custo do Servidor Web Top / UOL Host 660,00
investimento anual
ALVES, William Pereira. Fundamentos de Bancos de Dados. São Paulo: Érica, 2004.
DALL'OGLIO, Pablo. PHP: programando com orientação a objetos. 2. ed. São Paulo:
Novatec, 2009.
DENNIS, Alan; WIXOM, Barbara. Análise e projeto de sistemas. Rio de Janeiro: LTC,
2005.
POTENCIER, Fabien. PHP is much better than you think. Disponível em: <PHP is
much better than you think>. Acesso em: 03 mai. 2015.
SOARES, Wallace. Crie um framework para Sistemas Web com PHP 5 e AJAX. São
Paulo: Érica, 2009.
YOURDON, Edward. Análise estruturada moderna. 17. ed. Rio de Janeiro: Elsevier,
1990.
ANEXO 1
TERMO DE AUTORIZAÇÃO
AQUI VAI A AUTORIZAÇÃO DE USO DOS DADOS DA FAROL PELO EDER