Você está na página 1de 150

FACULDADE DE ROLIM DE MOURA – FAROL

SISTEMAS DE INFORMAÇÃO

JOÃO RICARDO ALVES DE PAULA

CERTIFICA-µ – SISTEMA WEB PARA GERENCIAMENTO DE


CERTIFICADOS

ROLIM DE MOURA
2015
JOÃO RICARDO ALVES DE PAULA

CERTIFICA-µ – SISTEMA WEB PARA GERENCIAMENTO DE


CERTIFICADOS

Trabalho de conclusão de curso, apresentado à


Faculdade de Rolim de Moura – FAROL como
exigência parcial para obtenção do título de
bacharel em Sistemas de Informação, sob a
orientação do Prof. Esp. Armando Keniti
Kusano.

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

4 CONSIDERAÇÕES FINAIS ................................................................................... 43

REFERÊNCIAS ......................................................................................................... 46

APÊNDICES.............................................................................................................. 48

ANEXO 1 TERMO DE AUTORIZAÇÃO .................................................................... 49


LISTA DE TABELAS

TABELA 1: REQUISITO FUNCIONAL RF01_AUTENTICACAO_DO_USUARIO ..... 14


TABELA 2: REQUISITO FUNCIONAL RF02_CADASTRO_DE_USUARIOS ........... 15
TABELA 3: REQUISITO FUNCIONAL RF03_CADASTRO_DE_PALESTRANTES.. 15
TABELA 4: REQUISITO FUNCIONAL RF02_CADASTRO_DE_USUARIOS ........... 15
TABELA 5: REQUISITO FUNCIONAL RF05_CADASTRO_DE_PARTICIPANTES . 16
TABELA 6: REQUISITO FUNCIONAL RF06_IMPORTAR_PARTICIPANTES ......... 16
TABELA 7: REQUISITO FUNCIONAL RF07_CONFIRMAR_PRESENCA ............... 16
TABELA 8: REQUISITO FUNCIONAL RF08_GERAR_PDF_CERTIFICADO........... 16
TABELA 9: REQUISITO FUNCIONAL RF9_ENVIAR_EMAIL_CERTIFICADO ........ 16
TABELA 10: REQUISITO FUNCIONAL RF10_GERAR_ATA_PALESTRA .............. 17
TABELA 11: REQUISITO FUNCIONAL RF11_CALCULAR_POSICAO_ATA .......... 17
TABELA 12: REQUISITO FUNCIONAL RF12_EMITIR_CERTIFICADO .................. 17
TABELA 13: REQUISITO FUNCIONAL RF13_OBTER_PROPRIO_CERTIFICADO 18
TABELA 14: REQUISITO FUNCIONAL RF14_VALIDAR_CERTIFICADO ............... 18
TABELA 15: REQUISITO NÃO FUNCIONAL RNF01_CONFIABILIDADE ............... 19
TABELA 16: REQUISITO NÃO FUNCIONAL RNF02_PORTABILIDADE ................. 19
TABELA 17: REQUISITO NÃO FUNCIONAL RNF03_VIABILIDADE_ECONOMICA20
TABELA 18: REQUISITO NÃO FUNCIONAL RNF04_RISCOS................................ 20
TABELA 19: DOCUMENTAÇÃO DO CASO DE USO: ATORES .............................. 22
TABELA 20: DOCUMENTAÇÃO DO CASO DE USO: AUTENTICAR USUÁRIO..... 22
TABELA 21: DOCUMENTAÇÃO DO CASO DE USO: GERIR CONFIGURAÇÃO ... 22
TABELA 22: DOCUMENTAÇÃO DO CASO DE USO: GERIR USUÁRIO ................ 23
TABELA 23: DOCUMENTAÇÃO DO CASO DE USO: GERIR PALESTRANTE....... 24
TABELA 24: DOCUMENTAÇÃO DO CASO DE USO: GERIR EVENTO.................. 26
TABELA 25: DOCUMENTAÇÃO DO CASO DE USO: GERIR PALESTRA .............. 27
TABELA 26: DOCUMENTAÇÃO DO CASO DE USO: GERIR PARTICIPANTE ...... 28
TABELA 27: DOCUMENTAÇÃO DO CASO DE USO: GERIR PRESENÇA ............. 30
TABELA 28: DOCUMENTAÇÃO DO CASO DE USO: EMITIR CERTIFICADO ....... 31
TABELA 29: DOCUMENTAÇÃO DO CASO DE USO: OBTER CERTIFICADO ....... 32
TABELA 30: DOCUMENTAÇÃO DO CASO DE USO: VALIDAR CERTIFICADO .... 33
TABELA 31: DICIONÁRIO DE DADOS DA TABELA USUARIO ............................... 40
TABELA 32: DICIONÁRIO DE DADOS DA TABELA CONFIGURACAO .................. 40
TABELA 33: DICIONÁRIO DE DADOS DA TABELA EVENTO ................................ 40
TABELA 34: DICIONÁRIO DE DADOS DA TABELA PALESTRANTE ..................... 41
TABELA 35: DICIONÁRIO DE DADOS DA TABELA PALESTRA ............................ 41
TABELA 36: DICIONÁRIO DE DADOS DA TABELA PARTICIPANTE ..................... 41
TABELA 37: DICIONÁRIO DE DADOS DA TABELA PALESTRA_PALESTRANTE. 41
TABELA 38: DICIONÁRIO DE DADOS DA TABELA PALESTRA_PARTICIPANTE 42
TABELA 39: DICIONÁRIO DE DADOS DA TABELA MODELO_CERTIFICADO ..... 42
TABELA 40: DICIONÁRIO DE DADOS DA TABELA CERTIFICADO ....................... 42
LISTA DE FIGURAS

FIGURA 1: DIAGRAMA DE CASOS DE USO DA UML ............................................ 21


FIGURA 2: DIAGRAMA DE CLASSES DA UML ....................................................... 34
FIGURA 3: DIAGRAMA DE ATIVIDADE DA UML - GERIR PRESENÇA ................. 35
FIGURA 4: DIAGRAMA DE ATIVIDADE DA UML - EMITIR CERTIFICADOS ......... 36
FIGURA 5: DIAGRAMA DO MODELO CONCEITUAL DO DER ............................... 38
FIGURA 6: DIAGRAMA DO MODELO LÓGICO DO DER ........................................ 39
LISTA ABREVIATURAS E SIGLAS

CSS - Cascading Style Sheets


DER - Diagrama Entidade-Relacionamento
DER - Diagrama Entidade-Relacionamento
FAROL - Faculdade de Rolim de Moura
HTML - HyperText Markup Language
MEC - Ministério da Educação e Cultura
MVC - Model View Controller
PDF - Portable Document Format
PHP - Hypertext Preprocessor
SCV - Sistema de Controle de Versão
SGBD - Sistema Gerenciador de Banco de Dados
TCC - Trabalho de Conclusão de Curso
UML - Unified Modeling Language
6

1 INTRODUÇÃO

A FAROL (Faculdade de Rolim de Moura) realiza periodicamente eventos que


contam com a participação de seus alunos e colaboradores. E entre as razões da
realização desses eventos, é possível citar por exemplo, a divulgação científica, a
ampliação do conhecimento e também como parte das horas de atividades
complementares exigidas pelo MEC (Ministério da Educação e Cultura). Isso para
que o aluno da instituição conclua com sucesso a sua graduação.
Tendo em vista os propósitos educacionais dos eventos organizados pela
instituição, faz-se necessário a emissão de certificado aos participantes e
palestrantes, o qual é utilizado como comprovação de presença nos eventos
realizados pela FAROL.
Atualmente, o setor de Pesquisa e Extensão da instituição gerencia os
certificados da seguinte forma: os dados dos participantes são inseridos em um
formulário através de um editor de planilhas. Essa é importada por um editor de
textos através de seu recurso de mala direta, e este exporta ou imprime os
certificados gerados.
De acordo com a instituição, os programas usados para o gerenciamento de
certificados não oferecem um fluxo de trabalho ideal, pois existe a necessidade de
salvar os mesmos em arquivos individuais. Contudo, o recurso de mala direta do
editor de textos apenas possibilita que todos os certificados sejam salvos de uma só
vez em um arquivo único.
Caso haja a necessidade de salvar os certificados individualmente, deve-se
fazê-lo um a um, manualmente ou então, se salva o arquivo único com todos os
certificados e recorre-se a um terceiro programa para dividir esse arquivo único em
vários arquivos de certificados individuais. Desta forma, torna-se um trabalho
custoso para o usuário.
O processo de emissão e gerenciamento de certificados utilizado na referida
instituição é complexo e não intuitivo, pois os programas usados até o presente
momento foram escolhidos de forma oportuna e não funcional.
De acordo com Batista (2006, p. 49):

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

Nota-se que os softwares usados foram escolhidos de acordo com a


disponibilidade de funções que oferecem e que eles atendem parcialmente as
necessidades da instituição. Porém como não foram especificamente desenvolvidos
para esse objetivo eles terminam por não atenderem as expectativas e deixam de
ser funcionais.
Outro problema enfrentado pelo sistema atual é que os aplicativos utilizados
não oferecem integração via internet para que haja a obtenção ou validação remota
de um certificado emitido pelo sistema, visto que os programas usados não foram
desenvolvidos para essa finalidade. Portanto, ações desse tipo só podem ser feitas
pela própria instituição, não oferecendo formas automatizadas para que o próprio
palestrante ou participante execute tais ações no local de sua preferência.
Também não existe uma base de dados centralizada e permanente dos
certificados. Após criá-los, o editor de textos não os armazena, separadamente para
posterior consulta. Sendo assim, não existem formas de filtrar os certificados depois
de criados e, por conseguinte, não há um procedimento no sistema para validá-los.
Para contemplar as funções descritas acima, o sistema desenvolvido neste
trabalho mantém uma base de dados dos certificados emitidos e gera um livro ata de
cada palestra contendo a lista de certificados da mesma. O sistema também conta
com a possibilidade de consulta e validação dos certificados emitidos.
Este trabalho propôs o desenvolvimento de uma aplicação que auxilie e
automatize o processo de controle, emissão e validação de certificados para a
instituição FAROL.
A necessidade do desenvolvimento de tal aplicação se dá pelo interesse em
centralizar e automatizar o gerenciamento dos certificados de eventos, pois
atualmente esse procedimento é realizado de forma manual, tornando-se, oneroso e
sujeito à falhas. Dessa forma a aplicação desenvolvida visa ser uma base sólida e
eficaz para o gerenciamento dos certificados por meio da simplificação desse
processo, fornecendo opções de personalização dos conteúdos dos certificados
gerados.
A aplicação conta com controle de presença para as atividades realizadas e,
além disso, como é um sistema web, também permite que qualquer pessoa com
conexão à internet possa efetuar a validação de certificados emitidos pelo sistema.
A pessoa que acessa o sistema também pode obter certificados para algum
participante caso possua os seus dados pessoais. A emissão de certificados ainda
8

conta com opções de impressão e criação do certificado em PDF (Portable


Document Format), que pode ser enviado por e-mail.
Tendo em vista as situações relatadas, foi desenvolvida uma aplicação
baseada em ambiente web que sana as necessidades da instituição no que diz
respeito ao gerenciamento de certificado. Desta forma, haverá a redução de tempo e
a centralização do processo de criação dos certificados, além do armazenamento
dos mesmos em um banco de dados permanente. Esse mecanismo permitirá que
qualquer usuário com conexão à internet consiga verificar se um certificado foi ou
não emitido pela instituição e se o mesmo é verdadeiro.
O sistema desenvolvido conta ainda com a possibilidade de receber os dados
de participantes vindos de planilhas de dados externas. Dessa forma oferece a
possibilidade de importação simplificada de dados legados para o novo sistema.

2 MÉTODOS

Segundo Pressman (1995, p. 32) as tarefas para o desenvolvimento de um


software e a forma como elas serão executadas constituem paradigmas de
engenharia de software. Sendo que o paradigma de desenvolvimento deve ser
escolhido com base na natureza da aplicação.
Sommerville (2011, p. 43) aponta que independente do paradigma de
desenvolvimento escolhido, todos eles possuem atividades fundamentais comuns,
como: a especificação de software, o projeto e a implementação, a validação de
software e a evolução de software.
Sommerville (2011, p. 44) expõe que as fases do modelo cascata são
sequenciais e encadeadas, ou seja, cada fase deve ser finalizada para que a
próxima seja executada.
De acordo com Pressman (1995, p. 32) o modelo Cascata pode ser dividido
nas seguintes fases:
 Fase de análise de requisitos de software: coleta de dados para
compreender o funcionamento e necessidades;
 Fase de projeto: documentação do que virá a ser o software;
 Fase de codificação: tradução do projeto de software para a linguagem
de máquina;
9

 Fase de Testes: fase de verificação se as ações realizadas pelo


software condizem com os resultados esperados;
 Manutenção: mudanças e correções do software após sua entrega
para o cliente.
Devido a necessidade de um projeto sólido que possuísse todos os requisitos
da aplicação desenvolvida, o modelo cascata foi escolhido para o desenvolvimento
deste projeto, pois veio ao encontro das propostas de se obter um software robusto,
confiável e coerente que condiz com os anseios da instituição.
Durante a fase de análise, foram realizadas entrevistas com o gerente do
setor de pesquisa e extensão da FAROL. Nessa ocasião foi possível identificar os
requisitos e funcionalidades da aplicação desejada e através dos dados colhidos,
tornou-se possível também a elaboração do projeto de software e a partir dele, o
software propriamente dito.
O paradigma de programação utilizado no sistema desenvolvido é a
orientação a objetos. Este é auxiliado pelos diagramas da UML (Unified Modeling
Language), que fazem parte da documentação deste software.

2.1 Tecnologias e ferramentas utilizadas

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.

2.1.1 Linguagem de programação

Para a codificação foi utilizada a linguagem de programação PHP1 (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á em sua
quinta versão que 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, em sua versão 5.4, foi escolhida por ser
uma linguagem web de simples aprendizado, porém robusta e largamente utilizada

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

A definição de Soares (2009, p. 17) para um framework é a de um conjunto de


ferramentas (classe, módulo, métodos) desenvolvidos para suportar aplicações mais
complexas. Seu objetivo é facilitar a elaboração de um sistema fornecendo um
esqueleto para ele, ou seja, um sistema básico para que não haja necessidade de
iniciá-lo do zero. Logo, permite que o desenvolvedor utilize a maior parte do seu
tempo nas tarefas mais complexas do sistema como o entendimento das regras de
negócios e a implementação de algoritmos mais complexos.

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

Com o objetivo de reduzir o tempo de desenvolvimento foi utilizado o


framework Phreeze13 3.0. Ele é um framework orientado a objetos para o PHP, de
modo que o desenvolvimento da aplicação foi orientada a objetos. Em complemento
ao Phreeze foi incorporado na aplicação o uso do framework Backbone.js, para a
linguagem de programação Javascript, nas views, ele também foi utilizado no
projeto.
O Phreeze automatiza tarefas de mapeamento do banco de dados para a
aplicação, além de operações CRUD14 no banco de dados. O framework também
gerou uma interface básica para o usuário baseada nessas operações o que
possibilitou que o desenvolvimento fosse focado nas regras de negócio da aplicação
e não em códigos repetitivos.

2.1.3 Padrão de projeto MVC

Dall'Oglio (2009, p. 477) afirma que o MVC (Model View Controller) é um


padrão de organização e estruturação dos códigos da aplicação. O padrão MVC é o
mais conhecido de todos.
Ainda relata que o modelo de projeto MVC divide a aplicação em três
camadas: a camada que representa as informações do domínio de negócios da
aplicação (model), a camada de apresentação de dados para o usuário (view) e a
camada de processamento dos dados inseridos pelo usuário para atualizar o modelo
(controller).
O framework Phreeze utilizado neste trabalho é construído sobre o padrão de
projeto MVC.

2.1.4 Controle de versão

Pressman e Lowe (2009, p. 287) dizem que durante as fases de construção e


implantação de um software é importante para seu sucesso o gerenciamento de
mudanças em sua estrutura. Para tanto, é usado o controle de versão do projeto
através de um SCV (Sistema de Controle de Versão).

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

As principais vantagens oferecidas pelo controle de versão são a consistência


e acompanhamento detalhado dos conteúdos modificados, a função de reconstruir o
sistema rapidamente em caso de falhas e a possibilidade de retornar a uma versão
anterior do software caso a atual apresente erros sérios (PRESSMAN e LOWE,
2009, p. 287).
No trabalho desenvolvido foi utilizado o SCV GitHub15, e o repositório com o
histórico de versão do código pode ser acessado pelo site
https://github.com/joaoricardorm/tcc/. Esse histórico de versão também está
disponível como apêndice A deste trabalho.
Foi desenvolvido em conjunto com o histórico de versão, o relatório de
desenvolvimento do TCC (Trabalho de Conclusão de Curso), que está disponível
como apêndice B deste trabalho.

15
Site oficial do SCV GitHub: https://github.com/
13

3 DOCUMENTAÇÃO

Com a finalidade de fundamentar os conceitos abordados neste trabalho, foi


necessário apresentar uma sequência correta e lógica de fundamentos,
conceituando dos pontos mais genéricos para os mais específicos. Caracterizando
assim, as informações necessárias para que se possa gerar entendimento e
compreensão do tema abordado no trabalho.

3.1 Sistemas de Informação

O'brien (2004, p. 6) diz que "sistema de informação é um conjunto organizado


de pessoas, hardware, software, redes de comunicação e recursos de dados que
coleta, transforma e dissemina informações em uma organização".
Sobre as informações coletadas por um sistema de informações Batista
(2006, p. 13) diz que:

A grande meta da sociedade é reunir todas as fontes de dados e


informações existentes e organizá-las, tendo em vista tornar acessível todo
dado desejado na mesma velocidade em que ele é necessário aos
tomadores de decisão em qualquer atividade.

Desse modo é possível perceber a importância dos sistemas de informação, a


distribuição de dados e informações em tempo hábil e com qualidade só é possível
caso exista um sistema que possibilite a coleta e processamento desses dados e
informações.

3.2 Análise

Dennis e Wixom (2005, p. 5) defendem que a análise é a fase do projeto que


visa verificar a situação do sistema atual e seus problemas. A partir disso, propõe
um sistema para resolver as complicações e atender os requisitos em que o antigo é
deficiente.
De acordo com Tonsig (2008, p. 118) a análise de sistemas tem por objetivo
solucionar um problema, porém não com sentido de questionamento, mas sim, como
necessidade de uma pessoa ou organização. O sistema proposto deve satisfazer a
necessidade do usuário que o solicitou.
14

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.

3.3 Requisitos de software

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.1 Requisitos Funcionais

Sommerville (2011, p. 59) declara que os requisitos funcionais são aqueles


que descrevem o que um sistema deve fazer, como deve reagir às entradas de
dados específicas e como se comportar em determinadas situações.
Sommerville (2011, p. 60) ainda destaca que as especificações desses
requisitos devem ser completas e consistentes. Isso, devido todo o comportamento
do sistema deve ser descrito nos requisitos para evitar ambiguidades. Essas
funcionalidades não devem se contradizer por isso devem ser consistentes.
A seguir estão as tabelas de requisitos funcionais desta aplicação.

TABELA 1: Requisito funcional RF01_Autenticacao_do_Usuario


Descrição do Requisito RF01_Autenticacao_do_Usuario
Função do Requisito Conferir se os dados do formulário de acesso conferem com aqueles
presentes no bando de dados. Limitadas tentativas.
Valores usuario, senha
Resultados esperados Variável persistente da sessão
Pré-condição Todos os campos devem estar preenchidos;
O usuário deverá estar previamente cadastrado no sistema
Pós-condição Encaminhar para a tela de administração
Fonte: Próprio autor (2015)
15

TABELA 2: Requisito funcional RF02_Cadastro_de_Usuarios


Descrição do Requisito RF02_Cadastro_de_Usuarios
Função do Requisito Inserir, alterar e excluir cadastros na tabela usuario do banco de dados
Valores nome, email, login, senha, confirmar_senha, tipo_usuario (comum ou
administrador)
Resultados esperados Inserir, alterar ou excluir no banco de dados os valores fornecidos pelo
usuário;
O usuário pode ser do tipo padrão ou administrador. O usuário padrão
apenas pode confirmar ou consultar a presença dos participantes
(RF07_Confirmar_Presenca e RF08_Consultar_Presenca) e emitir os
certificados de um evento (RF08_Emitir_Certificado);
O usuário administrador pode fazer todas as funções do sistema.
Pré-condição RF01_Autenticacao_do_Usuario;
O campo senha e confirmar senha devem possuir o mesmo valor;
Um administrador não pode alterar seu próprio usuário para usuário
padrão;
Todos os campos devem estar preenchidos
Pós-condição Retornar para tela de cadastro com informação de sucesso ou fracasso.
Fonte: Próprio autor (2015)

TABELA 3: Requisito funcional RF03_Cadastro_de_Palestrantes


Descrição do Requisito RF03_Cadastro_de_Palestrantes
Função do Requisito Inserir, alterar e excluir cadastros na tabela palestrante do banco de
dados
Valores nome, email, CPF, cargo, imagem_assinatura
Resultados esperados Inserir, alterar ou excluir no banco de dados os valores fornecidos pelo
usuário
Pré-condição RF01_Autenticacao_do_Usuario;
Os campos nome e CPF devem estar preenchidos
Pós-condição Retornar para tela de cadastro com informação de sucesso ou fracasso.
Fonte: Próprio autor (2015)

TABELA 4: Requisito funcional RF02_Cadastro_de_Usuarios


Descrição do Requisito RF04_Cadastro_de_Eventos
Função do Requisito Inserir, alterar e excluir cadastros na tabela evento do banco de dados
Valores nome, local, data_evento, duracao, palestras, palestrantes, participantes
Resultados esperados Inserir, alterar ou excluir no banco de dados os valores fornecidos pelo
usuário
Pré-condição RF01_Autenticacao_do_Usuario;
Os campos nome, data, palestrantes e participantes devem estar
preenchidos;
Pós-condição Retornar para tela de cadastro com informação de sucesso ou fracasso.
Fonte: Próprio autor (2015)
16

TABELA 5: Requisito funcional RF05_Cadastro_de_Participantes


Descrição do Requisito RF05_Cadastro_de_Participantes
Função do Requisito Inserir, alterar e excluir cadastros na tabela participante do banco de
dados
Valores nome, email, CPF
Resultados esperados Inserir, alterar ou excluir no banco de dados os valores fornecidos pelo
usuário
Pré-condição RF01_Autenticacao_do_Usuario;
Os campos nome e CPF devem estar preenchidos
Pós-condição Retornar para tela de cadastro com informação de sucesso ou fracasso.
Fonte: Próprio autor (2015)

TABELA 6: Requisito funcional RF06_Importar_Participantes


Descrição do Requisito RF06_Importar_Participantes
Função do Requisito Importar lista de participantes a partir de documento de planilha de dados
contendo o nome, cpf e email (opcional) dos participantes de um evento
Valores planilha_participantes
Resultados esperados Inserção dos dados da planilha_participantes no banco de dados; caso
algum participante da planilha seja encontrado via CPF no banco de
dados, o sistema o atualizará pelos novos dados contidos na planilha.
Pré-condição RF01_Autenticacao_do_Usuario;
O campo planilha_participante deve estar preenchido com um arquivo de
planilha;
A planilha de dados deve possuir os campos nome e CPF preenchidos
Pós-condição Retornar para tela de cadastro com informação de sucesso ou fracasso.
Fonte: Próprio autor (2015)

TABELA 7: Requisito funcional RF07_Confirmar_Presenca


Descrição do Requisito RF07_Gerir_Presenca
Função do Requisito Confirmar a participação ou ausência de um participante em uma
palestra
Valores Evento, participante, palestra
Resultados esperados Cadastrar no banco de dados se participante compareceu ou não à uma
palestra
Pré-condição RF01_Autenticacao_do_Usuario;
Todos os campos devem estar preenchidos
Pós-condição Exibe mensagem sobre a presença do participante
Fonte: Próprio autor (2015)

TABELA 8: Requisito funcional RF08_Gerar_PDF_Certificado


Descrição do Requisito RF08_Gerar_PDF_Certificado
Função do Requisito Gerar arquivo em PDF do certificado
Valores Palestra, participante ou palestrantre
Resultados esperados Arquivo em PDF do certificado do participante ou palestrante na palestra
Pré-condição RF01_Autenticacao_do_Usuario;
Todos os campos devem estar preenchidos
Pós-condição Exibe mensagem sobre a geração do arquivo PDF
Fonte: Próprio autor (2015)

TABELA 9: Requisito funcional RF9_Enviar_Email_Certificado


Descrição do Requisito RF9_Enviar_Email_Certificado
17

Função do Requisito Enviar arquivo em PDF do certificado no e-mail de seu proprietário


Valores Arquivo em PDF do certificado (RF08_Gerar_PDF_Certificado),
participante ou palestrantre
Resultados esperados Envio do arquivo em PDF do certificado no e-mail do participante ou
palestrante ao qual pertence
Pré-condição RF01_Autenticacao_do_Usuario;
Todos os campos devem estar preenchidos
Pós-condição Exibe mensagem sobre o envio do certificado para o e-mail
Fonte: Próprio autor (2015)

TABELA 10: Requisito funcional RF10_Gerar_Ata_Palestra


Descrição do Requisito RF10_Gerar_Ata_Palestra
Função do Requisito Gerar ata de certificados da palestra selecionada
Valores Palestra
Resultados esperados Registro no sistema da ata dos certificados da palestra selecionada
contendo os campos nome_participante, campo em branco para
assinatura, palestra, evento, data_palestra, total_carga_horaria,
codigo_certificado / ano_evento, folha_registro, livro;
Pré-condição RF01_Autenticacao_do_Usuario;
Palestra deve ser selecionada;
Calculo da posição de cada registro de certificado na ata da palestra de
acordo com RF11_Calcular_Posicao_Registro_Ata;
O valor do codigo_certificado gerado deve ser um número sequencial
calculado a partir do valor inicio_codigo_certificado (valor definido em
RF12_Emitir_Certificado);
O codigo_certificado e livro onde o certificado ficará (valor resgatado a
partir de RF11_Calcular_Posicao_Registro_Ata) devem juntos formar
um valor único em cada livro ata.
Pós-condição Exibe mensagem sobre a geração da ata de certificados e imprime ou
cria arquivo em PDF dela
Fonte: Próprio autor (2015)

TABELA 11: Requisito funcional RF11_Calcular_Posicao_Ata


Descrição do Requisito RF11_Calcular_Posicao_Ata;
Função do Requisito Calcular página em que cada registro da ata de certificados aparecerá
Valores Palestra
Resultados esperados Folha da ata em que cada registro de certificado da palestra constará
Pré-condição RF01_Autenticacao_do_Usuario;
Palestra deve ser selecionada;
O calculo da folha da ata em que cada registro do certificado constará
deve ser feito a partir do fato de que cada folha da ata pode conter 35
registros. A folha é um número sequencial único iniciando-se a partir do
valor inicio_pagina_livro (número obtido pelo RF12_Emitir_Certificado).
Pós-condição Salva folha da ata a qual cada registro de certificado pertence
Fonte: Próprio autor (2015)

TABELA 12: Requisito funcional RF12_Emitir_Certificado


Descrição do Requisito RF12_Emitir_Certificado
Função do Requisito Emite um certificado de cada palestra do evento selecionado para cada
participante da palestra, bem como uma versão do certificado para os
palestrantes.
Valores Evento, palestra, inicio_codigo_certificado, inicio_pagina_livro,
18

participantes, palestrantes, modelo_certificado, elementos


Resultados esperados Emitir certificado único para cada participante e palestrante da palestra
selecionada;
Caso o usuário tenha selecionado a impressão do certificado, será
impresso via impressora uma cópia dos certificados;
Caso tenha selecionado a opção para gerar PDF o requisito funcional
RF08_Gerar_PDF_Certificado será executado para cada certificado de
cada participante e palestrante da palestra selecionada;
Caso tenha selecionado a opção para enviar por e-mail o requisito
funcional RF09_Enviar_Email_Certificado será executado para cada
certificado de cada participante e palestrante da palestra selecionada;
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
RF10_Gerar_Ata_Palestra
Fonte: Próprio autor (2015)

TABELA 13: Requisito funcional RF13_Obter_Proprio_Certificado


Descrição do Requisito RF13_Obter_Proprio_Certificado
Função do Requisito Permite ao próprio visitante do site obter seus certificados de palestras
que tenha participado
Valores CPF
Resultados esperados Caso o visitante tenha selecionado a impressão do certificado, será
impresso via impressora uma cópia do certificado;
Caso tenha selecionado a opção para gerar PDF o requisito funcional
RF08_Gerar_PDF_Certificado será executado para cada certificado de
palestras relacionadas ao participante ou palestrante com o CPF
informado;
Caso tenha selecionado a opção para enviar por e-mail o requisito
funcional RF09_Enviar_Email_Certificado será executado para cada
certificado de palestras relacionadas ao participante ou palestrante com o
CPF informado;
Pré-condição Deve existir um participante ou palestrante no banco de dados com o
CPF informado pelo visitante;
O certificado do participante já deve ter sido emitido por um administrador
do sistema através do RF12_Emitir_Certificado;
Se for um participante, este deve ter tido presença confirmada na
palestra (RF07_Gerir_Presenca) para obter o certificado.
Pós-condição Exibe mensagem sobre a obtenção do certificado
Fonte: Próprio autor (2015)

TABELA 14: Requisito funcional RF14_Validar_Certificado


Descrição do Requisito: RF14_Validar_Certificado
Função do Requisito Permite ao usuário validar através do código do certificado se o mesmo
foi emitido pela instituição, ou seja, é autêntico.
Valores codigo_certificado
Resultados esperados Mensagem positiva se a codigo_certificado constar no banco de dados
ou mensagem negativa caso não conste
Pré-condição O campo codigo_certificado deve estar preenchido
Pós-condição Exibe mensagem sobre a autenticidade do certificado
Fonte: Próprio autor (2015)
19

3.3.2 Requisitos Não Funcionais

Os requisitos não funcionais restringem-se às funções oferecidas pelo


sistema. Eles não estão ligados necessariamente ao software e sim à toda estrutura
do sistema, afirma Sommerville (2011, p. 60).
Além disso, de acordo com Sommerville (2011, p. 60), os requisitos não
funcionais podem ser de confiabilidade, rapidez e usabilidade da aplicação;
organizacionais, que derivam da política de organização do cliente e desenvolvedor;
ou externos que abrangem as normas e legislações que o sistema deve obedecer.
A seguir estão as tabelas de requisitos não funcionais desta aplicação.

TABELA 15: Requisito não funcional RNF01_Confiabilidade


Descrição do Requisito RNF01_Confiabilidade
Resultados esperados As regiões do sistema que possuem como pré-condição o requisito
funcional RF01_Autenticacao_do_Usuario devem obrigatoriamente ser
acessadas apenas por usuário autenticado
O usuário do tipo administrador possuirá acesso à todas as funções do
sistema;
O usuário padrão apenas poderá gerir a presença de participantes, obter
e validar certificados;
O visitante poderá obter o próprio certificado e validar um existente
Ao realizar a importação de participantes a partir de uma planilha de
dados, o sistema deve verificar pelo CPF se o participante já está
cadastrado no banco de dados, se isso acontecer o sistema deve
substituir os dados armazenados pelas novas informações do
participante contidas na planilha enviada
Durante a emissão dos certificados de uma palestra, os campos livro,
inicio_codigo_certificado e inicio_pagina_livro uma vez cadastrados não
podem ser alterados, apenas visualizados
Ao confirmar a presença do participante em uma palestra
(RF07_Gerir_Presença), o usuário poderá desfazer esta ação
O sistema não deve expor dados sensíveis à usuários não autenticados
O tempo de resposta do sistema deve ser aceitável para o usuário
O sistema deve ser estável
Fonte: Próprio autor (2015)

TABELA 16: Requisito não funcional RNF02_Portabilidade


Descrição do Requisito RNF02_Portabilidade
Resultados esperados A aplicação deve funcionar em dispositivos com acesso à internet através
de navegadores modernos e atualizados.
O sistema deve ser otimizado para funcionar em telas menores,
especialmente a página de confirmação de presença
O sistema deve funcionar a partir de um servidor com acesso à internet e
que possua apache, php e mysql instalados e atualizados
Fonte: Próprio autor (2015)
20

TABELA 17: Requisito não funcional RNF03_Viabilidade_Economica


Descrição do Requisito RNF03_Viabilidade_Economica
Resultados esperados A licença de uso da aplicação será livre
Fonte: Próprio autor (2015)

TABELA 18: Requisito não funcional RNF04_Riscos


Descrição do Requisito RNF03_Viabilidade_Economica
Resultados esperados A aplicação pode ficar indisponível por causa de defeitos com servidor ou
falhas na conexão dos dados pela rede física.
Fonte: Próprio autor (2015)

3.3.3 UML

A UML (Unified Modeling Language) é "uma linguagem visual para modelar


sistemas computacionais por meio do paradigma de Orientação a Objetos"
(GUEDES, 2007, p. 13). Sendo que ela é a mais usada para esse fim na indústria,
Guedes ainda afirma que a linguagem não é de programação, mas sim de
modelagem, para que seja possível definir para os engenheiros de software as
características do software.
A UML Possui diagramas que complementam as visões do software, neste
projeto foram utilizados: o Diagramas de Casos de Uso, o Diagrama de Classes e o
de Atividade.
Os diagramas citados e suas respectivas documentações estão contidos nas
páginas seguintes.
21

Segundo Guedes (2007, p. 30) o Diagrama de Casos de Uso é o mais geral e


serve de base para os outros diagramas, ele visa identificar de forma simples os
atores que utilizarão de alguma forma o software e as opções que o sistema
fornecerá para esses atores.
A seguir estão o Diagrama de Casos de Uso deste projeto e sua respectiva
documentação.

FIGURA 1: Diagrama de Casos de Uso da UML. Fonte: Próprio autor (2015)


22

TABELA 19: Documentação do Caso de Uso: Atores


Atores
Ator Descrição
Representa o usuário padrão do sistema responsável apenas por
Usuário
gerir a presença dos participantes e emitir certificados
Representa o usuário do sistema com poder total sobre as
Administrador
funções realizadas por ele
Representa o usuário do sistema não autenticado responsável
Visitante
apenas por emitir o próprio certificado ou validar um certificado
Fonte: Próprio autor (2015)

TABELA 20: Documentação do Caso de Uso: Autenticar Usuário


Nome do Caso de Uso Autenticar Usuário
Caso de Uso Geral
Ator principal Usuário
Atores secundários
Esse caso de uso descreve as etapas percorridas por um
Resumos
usuário para se autenticar no sistema
Pré-condições O usuário deverá estar previamente cadastrado no sistema
Pós-condições Liberar acesso e encaminhar para a tela de administração
Ações do ator Ações do sistema
1. Solicitar opção de autenticação
2. Apresentar tela com os campos login/email e senha para
preenchimento
3. Informar login/email e senha
4 . Confirmar
5. Autenticar usuário
6. Apresentar mensagem de autenticação realizada com
sucesso
Restrições/validações 1. Todos os campos são obrigatórios
Fonte: Próprio autor (2015)

TABELA 21: Documentação do Caso de Uso: Gerir Configuração


Nome do Caso de Uso Gerir Configuração
Caso de Uso Geral
Ator principal Administrador
Atores secundários
Esse caso de uso descreve as etapas percorridas por um
Resumos administrador para alterar as informações de configuração do
sistema
Pré-condições O usuário deve estar autenticado
Pós-condições
Ações do ator Ações do sistema
1. Solicitar opção de gerir
configuração
2. Apresentar tela com os seguintes campos preenchidos com
os dados do usuário selecionado para alteração:
 nome_instituicao
 imagem_logo
 cnpj
23

 telefone

3. Informar novos dados


4. Confirmar
5. Registrar novos dados
6. Apresentar mensagem de sucesso na alteração dos dados
Restrições/validações 1. O campo nome_instituicao e telefone são obrigatórios
Fonte: Próprio autor (2015)

TABELA 22: Documentação do Caso de Uso: Gerir Usuário


Nome do Caso de Uso Gerir Usuário
Caso de Uso Geral
Ator principal Administrador
Atores secundários
Esse caso de uso descreve as etapas percorridas por um
Resumos administrador para inserir, alterar, excluir e consultar usuários no
sistema
Pré-condições O administrador deve estar autenticado
Pós-condições
Ações do ator Ações do sistema
1. Solicitar opção de gerir
usuários
2. Apresentar tela com a listagem dos usuários cadastrados no
sistema com opções de alteração e exclusão deles e também a
opção de inserção de um novo usuário
3 . Inserir informações do usuário
no campo de busca e selecionar a
opção buscar
4. Filtrar os usuários listados a partir dos termos de busca
fornecidos
5. Selecionar opção de alterar um
usuário da listagem
6. Apresentar tela com os seguintes campos preenchidos com
os dados do usuário selecionado para alteração:
 nome
 email
 login
 senha
 confirmar_senha
 tipo_usuario (comum ou administrador)
7. Informar novos dados
8. Confirmar
9. Registrar novos dados
10. Apresentar mensagem de sucesso na alteração dos dados
1. Todos os campos são obrigatórios
2. O campo senha e confirmar senha devem possuir o mesmo
Restrições/validações
valor
3. Um administrador não pode alterar seu próprio tipo_usuario
24

para usuário padrão


4. Não é permitido mais de um usuário com o mesmo login ou
email
5. O campo senha deve ser registrado pelo sistema de forma
criptografada
11. Selecionar opção de exclusão
de um usuário da listagem
12. Apresentar mensagem de confirmação de exclusão do
usuário
13. Confirmar
14. Registrar exclusão
15. Apresentar mensagem de sucesso na exclusão
1. O usuário a ser excluído deve estar cadastrado no sistema
Restrições/validações 2. Não é possível excluir o usuário caso ele seja o único
administrador do sistema
16. Selecionar opção de inserir
novo usuário
17. Apresentar tela com os seguintes campos para
preenchimento:
 nome
 email
 login
 senha
 confirmar_senha
 tipo_usuario (comum ou administrador)
18. Informar dados
19. Confirmar
20. Registrar novos dados
21. Apresentar mensagem de sucesso na inserção dos dados
1. Todos os campos são obrigatórios
2. O campo senha e confirmar senha devem possuir o mesmo
Restrições/validações valor
3. Não é permitido mais de um usuário com o mesmo login ou
email
Fonte: Próprio autor (2015)

TABELA 23: Documentação do Caso de Uso: Gerir Palestrante


Nome do Caso de Uso Gerir Palestrante
Caso de Uso Geral
Ator principal Administrador
Atores secundários
Esse caso de uso descreve as etapas percorridas por um
Resumos administrador para inserir, alterar, excluir e consultar
palestrantes no sistema
Pré-condições O administrador deve estar autenticado
Pós-condições
Ações do ator Ações do sistema
1. Solicitar opção de gerir
palestrantes
2. Apresentar tela com a listagem dos palestrantes cadastrados
no sistema com opções de alteração e exclusão deles e também
25

a opção de inserção de um novo palestrante


3 . Inserir informações do
palestrante no campo de busca e
selecionar a opção buscar
4. Filtrar os palestrantes listados a partir dos termos de busca
fornecidos
5. Selecionar opção de alterar um
palestrante da listagem
6. Apresentar tela com os seguintes campos preenchidos com os
dados do palestrante selecionado para alteração:
 nome
 email
 cpf
 cargo
 imagem_assinatura
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 palestrante com o mesmo cpf
11. Selecionar opção de exclusão
de um palestrante 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 palestrante a ser excluído deve estar cadastrado no sistema
Restrições/validações 2. Não é possível excluir o palestrante do sistema caso ele
esteja associado a algum evento
16. Selecionar opção de inserir
novo palestrante
17. Apresentar tela com os seguintes campos para
preenchimento:
 nome
 email
 cpf
 imagem_assinatura
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 palestrante com o mesmo cpf
Fonte: Próprio autor (2015)
26

TABELA 24: Documentação do Caso de Uso: Gerir Evento


Nome do Caso de Uso Gerir Evento
Caso de Uso Geral
Ator principal Administrador
Atores secundários
Esse caso de uso descreve as etapas percorridas por um
Resumos administrador para inserir, alterar, excluir e consultar eventos no
sistema
Pré-condições O administrador deve estar autenticado
Pós-condições
Ações do ator Ações do sistema
1. Solicitar opção de gerir eventos
2. Apresentar tela com a listagem dos eventos cadastrados no
sistema com opções de alteração e exclusão deles e também a
opção de inserção de um novo evento
3 . Inserir informações do evento
no campo de busca e selecionar a
opção buscar
4. Filtrar os eventos listados a partir dos termos de busca
fornecidos
5. Selecionar opção de alterar um
evento da listagem
6. Apresentar tela com os seguintes campos preenchidos com
os dados do evento selecionado para alteração:
 nome
 local
 data
 duracao
 palestras
 participantes
7. Informar novos dados
8. Confirmar
9. Registrar novos dados
10. Apresentar mensagem de sucesso na alteração dos dados
1. Os campos nome, data e palestrantes são obrigatórios
2. O evento deve possuir pelo menos uma palestra
Restrições/validações 3. As palestras devem estar previamente cadastradas no
sistema
3. Os participantes devem estar previamente cadastrados no
sistema
11. Selecionar opção de exclusão
de um evento da listagem
12. Apresentar mensagem de confirmação de exclusão do
evento
13. Confirmar
14. Registrar exclusão
15. Apresentar mensagem de sucesso na exclusão
1. O evento a ser excluído deve estar cadastrado no sistema
Restrições/validações 2. Não é possível excluir o evento do sistema caso ele esteja
associado a alguma palestrante ou participantes
27

16. Selecionar opção de inserir


novo evento
17. Apresentar tela com os seguintes campos para
preenchimento:
 nome
 local
 data
 duracao
 palestras
 participantes
18. Informar dados
19. Confirmar
20. Registrar novos dados
21. Apresentar mensagem de sucesso na inserção dos dados
1. O campo nome é obrigatório
2. O evento deve possuir pelo menos uma palestra que pode
Restrições/validações levar o próprio nome do evento
3. Os participantes devem estar previamente cadastrados no
sistema
Fonte: Próprio autor (2015)

TABELA 25: Documentação do Caso de Uso: Gerir Palestra


Nome do Caso de Uso Gerir Palestra
Caso de Uso Geral
Ator principal Administrador
Atores secundários
Esse caso de uso descreve as etapas percorridas por um
Resumos administrador para inserir, alterar, excluir e consultar palestras
de eventos no sistema
O administrador deve estar autenticado;
Pré-condições
O administrador deve selecionar um evento
Pós-condições
Ações do ator Ações do sistema
1. Solicitar opção de gerir
palestras
2. Apresentar tela com a listagem das palestras cadastradas no
sistema de acordo com o evento com opções de alteração e
exclusão deles e também a opção de inserção de um novo
evento
3. Selecionar opção de alterar
uma palestra da listagem
4. Apresentar tela com os seguintes campos preenchidos com
os dados da palestra selecionada para alteração:
 nome
 carga_horaria
 data
 palestrante
5. Informar novos dados
6. Confirmar
7. Registrar novos dados
8. Apresentar mensagem de sucesso na alteração dos dados
28

1. O campo palestrante é obrigatório


2. Se o nome da palestra estiver vazio, o evento será tratado
Restrições/validações
como uma palestra
3. O palestrante deve estar previamente cadastrado no sistema
9. Selecionar opção de exclusão
de uma palestra da listagem
10. Apresentar mensagem de confirmação de exclusão da
palestra
11. Confirmar
12. Registrar exclusão
13. Apresentar mensagem de sucesso na exclusão
1. A palestra a ser excluída deve estar cadastrado no sistema
Restrições/validações 2. Não é possível excluir uma palestra do sistema caso ela
esteja associada a presença de algum participante
14. Selecionar opção de inserir
nova palestra
15. Apresentar tela com os seguintes campos para
preenchimento:
 nome
 carga_horaria
 data
 palestrante
16. Informar dados
17. Confirmar
18. Registrar novos dados
19. Apresentar mensagem de sucesso na inserção dos dados
1. O campo palestrante é obrigatório
2. Se o nome da palestra estiver vazio, a palestra receberá o
Restrições/validações
nome do próprio evento
3. O palestrante deve estar previamente cadastrado no sistema
4. O palestrantes e participantes não podem ser repetidos em
uma mesma palestra
Fonte: Próprio autor (2015)

TABELA 26: Documentação do Caso de Uso: Gerir Participante


Nome do Caso de Uso Gerir Participante
Caso de Uso Geral
Ator principal Administrador
Atores secundários
Esse caso de uso descreve as etapas percorridas por um
Resumos administrador para inserir, alterar, excluir, importar e consultar
participantes no sistema
Pré-condições O administrador deve estar autenticado
Pós-condições
Ações do ator Ações do sistema
1. Solicitar opção de gerir
participantes
2. Apresentar tela com a listagem dos participantes cadastrados
no sistema com opções de alteração e exclusão deles e também
a opção de inserção de novos participantes
29

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

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)

TABELA 27: Documentação do Caso de Uso: Gerir Presença


Nome do Caso de Uso Gerir Presença
Caso de Uso Geral
Ator principal Usuário
Atores secundários
Esse caso de uso descreve as etapas percorridas por um
Resumos usuário para confirmar a presença de participante à uma
palestra de um evento
Pré-condições O usuário deve estar autenticado
Confirmar presença de participante em uma palestra de um
Pós-condições
evento
Ações do ator Ações do sistema
1. Solicitar opção de gerir
presenças
2. Apresentar tela com a listagem de eventos e suas respectivas
palestras cadastrados no sistema
3. Selecionar palestra de evento
4. Apresentar tela com a listagem de participantes do evento
selecionado
5. Inserir informações do
participante no campo de busca e
selecionar a opção buscar
6. Filtrar os participantes listados a partir dos termos de busca
fornecidos
7. Selecionar opção de confirmar
presença de um ou vários
participantes listados
8. Confirmar
9. Registrar dados
10. Apresentar mensagem de sucesso na inserção dos dados
1. As palestras dos eventos deverão estar previamente
cadastradas no sistema
Restrições/validações 2. O participante deverá estar previamente cadastrado no
sistema
3. O participante deverá estar associado ao evento selecionado
11. Solicitar opção de visualizar
presenças
12. Apresentar tela com a listagem de eventos e suas
respectivas palestras cadastrados no sistema
13. Selecionar palestra de evento
14. Apresentar tela com a listagem de participantes com
presença confirmada na palestra selecionada
1. As palestras dos eventos deverão estar previamente
Restrições/validações
cadastradas no sistema
31

2. O participante deverá estar previamente cadastrado no


sistema
3. O participante deverá estar com a presença confirmada na
palestra selecionada
Fonte: Próprio autor (2015)

TABELA 28: Documentação do Caso de Uso: Emitir Certificado


Nome do Caso de Uso Emitir Certificado
Caso de Uso Geral
Ator principal Administrador
Atores secundários
Esse caso de uso descreve as etapas percorridas por um
Resumos usuário para emitir os certificados dos participantes de um
evento
Pré-condições O administrador deve estar autenticado
Caso o usuário tenha selecionado a impressão do certificado,
será impresso via impressora uma cópia dos certificados;
Caso tenha selecionado a opção para gerar PDF, será gerado
Pós-condições um arquivo em PDF de cada certificado emitido;
Caso tenha selecionado a opção para enviar por e-mail, os
certificados em PDF serão enviado para os emails dos
participantes do evento
Ações do ator Ações do sistema
1. Solicitar opção de emitir
certificados
2. Apresentar tela com a listagem de eventos cadastrados no
sistema
3. Selecionar evento
4. Apresentar telas com os seguintes campos:
 modelo_do_certificado
 texto_participante
 texto_palestrante
 inicio_codigo_certificado
 livro
 inicio_pagina_livro
5. Informar dados
6. Exibe o modelo de certificado a ser gerado utilizando como
parâmetros as informações dos campos enviados
7. Adicionar, remover, reorganizar
e formatar itens do certificado
8. Confirmar
9. Registrar dados do modelo e do certificados
10. Registrar todos os certificados do evento
11. Apresentar tela com a listagem de participantes do evento
selecionado com as seguintes opções de emissão dos
certificados:
 Imprimir;
 Gerar PDF;
 Enviar por e-mail
12. Selecionar participantes e as
opções de emissão dos
32

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)

TABELA 29: Documentação do Caso de Uso: Obter Certificado


Nome do Caso de Uso Obter Certificado
Caso de Uso Geral
Ator principal Visitante
Atores secundários
Esse caso de uso descreve as etapas percorridas por um
Resumos visitante para obter certificados de um participante ou
palestrante
Pré-condições
Caso o visitante tenha selecionado a impressão do certificado,
será impresso via impressora uma cópia do certificado do
participante;
Caso o visitante tenha selecionado a opção para gerar PDF,
Pós-condições
será gerado um arquivo em PDF do certificado;
Caso o visitante tenha selecionado a opção para enviar por e-
mail, o certificado em PDF será enviado para o email do
participante ou palestrante;
Ações do ator Ações do sistema
1. Solicitar opção de obter
certificados
2. Apresentar tela com o campo CPF do participante/palestrante
3. Informar CPF
4. Confirmar
5. Apresentar tela com informações do participante ou
palestrante selecionado via CPF e informações das palestras em
que participou, com as seguintes opções de emissão dos
certificados:
33

 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)

TABELA 30: Documentação do Caso de Uso: Validar Certificado


Nome do Caso de Uso Validar Certificado
Caso de Uso Geral
Ator principal Visitante
Atores secundários
Esse caso de uso descreve as etapas percorridas por um
Resumos
visitante para validar se um certificado foi emitido pelo sistema
Pré-condições
Exibir informações do certificado associado ao
Pós-condições
codigo_certificado e livro informado pelo visitante
Ações do ator Ações do sistema
1. Solicitar opção de validar
certificado
2. Apresentar tela com os campos
 codigo_certificado
 livro
3. Informar dados
4. Confirmar
5. Verificar se existe um registro no banco de dados de acordo
com os dados informados
6. Apresentar mensagem de sucesso na validação do certificado
1. O codigo_certificado deve ser um código válido
Restrições/validações 2. A junção do codigo_certificado com o livro devem formar um
código único no sistema
Fonte: Próprio autor (2015)
34

Guedes (2007, p. 30) explana que o Diagrama de Classes define a estrutura


de classes do sistema, os atributos e métodos de cada classe, além do
relacionamento entre elas.

FIGURA 2: Diagrama de Classes da UML. Fonte: Próprio autor (2015)


35

O Diagrama de Atividade preocupa-se em descrever os passos para a


conclusão de uma atividade específica, concentrando-se na representação do fluxo
de controle e no fluxo de objeto de uma atividade, conforme Guedes (2007, p. 30).
Nos diagramas de atividades a seguir são esquematizadas as principais
atividades realizadas pelo sistema, a saber, são as funções de gestão de presença e
a função de emissão de certificados.

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)

3.4 Banco de Dados

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

utilização de arquivos. Porém esse método deixava os dados isolados gerando


inconsistências, redundância, problemas de segurança e, 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. 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 as quais
pertencem.
Para que se efetue a manutenção e a criação de banco de dados é utilizado
um Sistema Gerenciador de Banco de Dados (SGBD). O SGBD é uma ferramenta
sofisticada que permite a 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).

3.4.1 Modelagem do Banco de Dados

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

O modelo padrão para representar o banco de dados, segundo Cardoso e


Cardoso (2012, p. 27), é através do diagramas DER (Diagramas Entidade-
Relacionamento).
O diagrama do modelo conceitual do modelo entidade-relacionamento do
banco de dados da aplicação é representado pela figura abaixo.

FIGURA 5: Diagrama do modelo conceitual do DER. Fonte: Próprio autor (2015)


39

Já o diagrama do modelo lógico do DER do banco de dados da aplicação é


representado pela figura abaixo.

FIGURA 6: Diagrama do modelo lógico do DER. Fonte: Próprio autor (2015)


40

De acordo com a ORACLE, o dicionário de dados é um conjunto de tabelas


que contêm informações sobre o próprio banco de dados, ou seja, são metadados
do banco de dados.

A seguir está o dicionário de dados do sistema desenvolvido.

TABELA 31: Dicionário de dados da tabela usuario


Tabela: usuario
Chave Coluna Tipo Nulo Padrão Comentários
PK id_usuario int(11) Não Auto-incremento
nome varchar(50) Não
email varchar(50) Não Valor único
login varchar(25) Não Valor único
senha varchar(150) Não
0 = comum;
tipo_usuario tinyint(1) Não 0
1 = administrador
Fonte: Próprio autor (2015)

TABELA 32: Dicionário de dados da tabela configuracao


Tabela: configuracao
Chave Coluna Tipo Nulo Padrão Comentários
PK id_configuracao int(11) Não Auto-incremento
nome_instituicao int(11) Sim
imagem_logo varchar(50) Sim NULL
Cnpj varchar(20) Sim NULL
Telefone varchar(15) Sim
Fonte: Próprio autor (2015)

TABELA 33: Dicionário de dados da tabela evento


Tabela: evento
Chave Coluna Tipo Nulo Padrão Comentários
PK id_evento int(11) Não Auto-incremento
Nome varchar(70) Não
Local varchar(60) Sim NULL
Data date Sim NULL
Duracao varchar(20) Sim NULL
Fonte: Próprio autor (2015)
41

TABELA 34: Dicionário de dados da tabela palestrante


Tabela: palestrante
Chave Coluna Tipo Nulo Padrão Comentários
PK id_palestrante int(11) Não Auto-incremento
Nome varchar(50) Não
Email varchar(50) Sim NULL
Cpf varchar(15) Não Valor único
Cargo varchar(50) Sim NULL
imagem_assinatura varchar(50) Sim NULL
Fonte: Próprio autor (2015)

TABELA 35: Dicionário de dados da tabela palestra


Tabela: palestra
Chave Coluna Tipo Nulo Padrão Comentários
PK id_palestra int(11) Não Auto-incremento
Nome varchar(70) Sim NULL
Data date Sim NULL
carga_horaria time Sim NULL
0 = não;
proprio_evento tinyint(1) Não 1
1 = sim
FK id_evento int(11) Não FK da tabela evento
FK da tabela
FK id_modelo_certificado int(11) Não
modelo_certificado
Fonte: Próprio autor (2015)

TABELA 36: Dicionário de dados da tabela participante


Tabela: participante
Chave Coluna Tipo Nulo Padrão Comentários
PK id_participante int(11) Não Auto-incremento
Nome varchar(50) Não
Email varchar(50) Sim NULL
Cpf varchar(15) Não Valor único
Fonte: Próprio autor (2015)

TABELA 37: Dicionário de dados da tabela palestra_palestrante


Tabela: palestra_palestrante
Chave Coluna Tipo Nulo Padrão Comentários
PK Id int(11) Não Auto-incremento
Valor único com id_palestra;
FK id_palestrante int(11) Não
FK da tabela palestrante
Valor único com
FK id_palestra int(11) Não id_palestrante;
FK da tabela palestra
FK id_certificado int(11) Sim 1 FK da tabela certificado
Fonte: Próprio autor (2015)
42

TABELA 38: Dicionário de dados da tabela palestra_participante


Tabela: palestra_participante
Chave Coluna Tipo Nulo Padrão Comentários
PK Id int(11) Não Auto-incremento
0 = não;
Presenca tinyint(1) Não 0
1 = sim
Valor único com id_palestra;
FK id_participante int(11) Não
FK da tabela participante
Valor único com
FK id_palestra int(11) Não id_participante;
FK da tabela palestra
FK id_certificado int(11) Sim 1 FK da tabela certificado
Fonte: Próprio autor (2015)

TABELA 39: Dicionário de dados da tabela modelo_certificado


Tabela: modelo_certificado
Chave Coluna Tipo Nulo Padrão Comentários
PK id_modelo_certificado int(11) Não Auto-incremento
Nome varchar(70) Não
texto_participante text Sim NULL
texto_palestrante text Sim NULL
arquivo_css varchar(15) Não padrao
Elementos text Não
Fonte: Próprio autor (2015)

TABELA 40: Dicionário de dados da tabela certificado


Tabela: certificado
Chave Coluna Tipo Nulo Padrão Comentários
PK id_certificado int(11) Não Auto-incremento
data_emissao timestamp Não Horário Atual
Livro int(11) Não Valor único composto
Folha int(11) Não
codigo int(11) Não Valor único composto
FK id_usuario int(11) Não FK da tabela usuario
Fonte: Próprio autor (2015)

3.5 Alterações em relação ao projeto

Para o funcionamento do sistema de forma plena, foi necessária a execução


de algumas alterações na estrutura do banco de dados resultante do projeto do
trabalho de conclusão de curso. As mudanças realizadas estão descritas a seguir.
Na tabela Usuario, o campo de senha passou de 32 para 150 caracteres. A
princípio seria utilizado a criptografia md5 para as senhas, porém durante o
desenvolvimento percebeu-se que o PHP 5 fornece um método nativo para trabalhar
43

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

O desenvolvimento do sistema mostrou-se complexo e demorado. Desde o


início do projeto era esperado que o trabalho de conclusão do curso fosse algo
inédito e que solucionasse um problema real enfrentado por uma ou várias pessoas.
Tal afirmação mostrou-se verdadeira, porém criou-se expectativas demasiadas em
relação ao trabalho a ser desenvolvido:

16
Documentação da função password_hash disponível em:
http://php.net/manual/pt_BR/function.password-hash.php
44

Uma visão destoante gerou tentativas de desenvolver um sistema livre de


imperfeições, além do anseio em usar padrões modernos de desenvolvimento que
eram desconhecidos pelo autor. Essas expectativas e ações resultaram em atrasos
que quase comprometeram o desenvolvimento de algumas funções do software.
Até o início do desenvolvimento do trabalho o autor possuía poucos
conhecimentos sobre a programação orientada a objetos, pois programava
utilizando o paradigma de desenvolvimento estruturado. A escolha da orientação a
objetos deu-se por ser um modelo moderno e organizado de se programar. Essas
características foram notadas no código final, pois ficou fácil de entendê-lo por causa
da separação de cada camada do sistema no modelo MVC (Model, View e
Controller).
O Phreeze foi uma adição interessante ao projeto, mesmo com a pouca
disponibilidade de documentação, ele não é um framework conhecido e a maior
parte da documentação está disponível através de vídeos criados pelo seu autor em
seu site oficial e por discussões sobre o framework em seu repositório no GitHub.
Apesar disso, foi um framework fácil de se entender e aprender.
O framework Phreeze feito para o PHP trouxe a possibilidade de gerar
automaticamente as bases das Views para apresentação de dados do sistema para
o usuário. Por isso, com a intenção de acelerar o desenvolvimento escolheu-se
utilizá-las como base para o projeto o que se mostrou uma decisão não muito
acertada.
As Views geradas pelo Phreeze trabalham extensivamente com a linguagem
de programação Javascript para apresentação do conteúdo dinâmico do banco de
dados. Para fazer a intermediação entre as camadas do sistema em PHP e
Javascript, as Views geradas utilizam um framework em Javascript, o Backbone.js.
Ao estudar o Backbone.js, compreendeu-se que este replica a estrutura
Model-View-Controller em seu código, devido a esse fato houve a necessidade de
aprendê-lo também, ao contrário do Phreeze este mostrou-se de difícil
entendimento, e ao longo do desenvolvimento notou-se que tal framework ocupou a
maior parte do tempo de codificação e modificação de códigos gerados no projeto.
Segundo dados do repositório do TCC no GitHub sobre os arquivos enviados,
83,9% dos arquivos são Javascript, sendo que grande parte deles referem-se aos
arquivos do Backbone.js, 13% são PHP e o restante HTML, CSS e outros. Esses
dados não acrescentam os códigos do núcleo PHP do Phreeze, porém, como
45

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

ALVES, William Pereira. Fundamentos de Bancos de Dados. São Paulo: Érica,


2004.

ASCENCIO, Ana Fernanda Gomes; CAMPOS, Edilene Aparecida Veneruchi de.


Fundamentos da programação de computadores: algoritmos, Pascal, C/C++
(Padrão ANSI) e Java. 3 ed. São Paulo: Pearson, 2012.

BATISTA, Emerson de Oliveira. Sistemas de Informação: o uso consciente da


tecnologia para o gerenciamento. São Paulo: Saraiva, 2006.

CARDOSO, Virgínia; CARDOSO, Giselle. Sistema de banco de dados: uma


abordagem introdutória e aplicada. São Paulo: Saraiva, 2012.

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.

GUEDES, Gilleanes T. A. UML 2: guia prático. São Paulo: Novatec, 2007.

GUIMARÃES, Célio Cardoso. Fundamentos de banco de dados: modelagem,


projeto e linguagem. Campinas: Unicamp, 2003.

O'BRIEN, James A. Sistemas de Informação e as decisões gerenciais na era da


Internet. 2. ed. São Paulo: Saraiva, 2004.

Oracle9i Database Concepts Release 2 (9.2). Disponível em:


<https://docs.oracle.com/html/A96524_01/c05dicti.htm>. Acesso em: 08 nov. 2015.

PAULA, João Ricardo Alves de. Repositório de controle de versão do TCC no


GitHub. Disponível em: < https://github.com/joaoricardorm/tcc/>. Acesso em: 05 nov.
2015.

POMPILHO, S. Análise Essencial: guia prático de análise de sistemas. Rio de


Janeiro: Ciência Moderna, 2002.

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. Engenharia de Software. São Paulo: Makron Books, 1995.

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.

SOMMERVILLE, Ian. Engenharia de Software. 9. ed. São Paulo: Pearson, 2011.


TONSIG, Sérgio Luiz. Engenharia de Software: análise e projeto de sistemas. 2.
ed. Rio de Janeiro: Ciência Moderna, 2008.

VELLOSO, Fernando de Castro. Informática: Conceitos Básicos. 7. ed. Rio de


Janeiro: Elsevier, 2004
APÊNDICES
APÊNDICE A - RELATÓRIO DO DESENVOLVIMENTO
DIA 15 ATÉ DIA 18 DE AGOSTO
Ocorreu a implementação da autenticação de usuário no sistema com as devidas
permissões de administrador ou usuário comum. Também foram feitas
modificações visuais nas páginas criadas pelo Phreeze, que é utilizado como base
do sistema, além disso, foram traduzidas mensagens exibidas ao usuário.
Este projeto traz algumas dificuldades pelo fato do fato da utilização do framework,
ora, seu objetivo é facilitar o desenvolvimento através da disponibilização diversos
códigos úteis e prontos, evitando-se assim o retrabalho.
As dificuldades vistas estão no fato de que o projeto tem que se adequar ao
framework, portanto há uma curva de aprendizado, que ainda está acontecendo,
em relação às ferramentas fornecidas pelo framework Phreeze e como fazer a
utilização das mesmas. Isso foi notado durante o processo de integração do
sistema de autenticação fornecido pelo framework ao projeto.
DIA 21 E 22 DE AGOSTO
Efetuada a instalação e configuração do sistema em um servidor web temporário
para que o orientador possa fazer o acompanhamento do desenvolvido do projeto.
A utilização do Git e GitHub para controle de versão do projeto mostrou-se muito
útil, pois possibilita a descoberta e correção, de forma mais fácil, de erros
ocorridos durante as modificações nos arquivos do projeto. Ao olhar as versões
anteriores do código ele realça as modificações realizadas e isso proporciona
melhor visualização das alterações ocorridas.
DIA 26 DE AGOSTO ATÉ DIA 07 DE SETEMBRO
Alteração do sistema de upload de arquivos que estava com problemas com a
validação e salvamento dos arquivos no servidor, a mudança foi provocada
também pelo fato de o antigo sistema permitia apenas imagens, enquanto o novo
suporta qualquer tipo de arquivo.
Nesse período com a implementação do sistema de uploads foi possível criar a
página de configurações no sistema, onde há opções de inserção dos dados da
instituição que utilizará o sistema de controle de certificados.
DIAS 8 A 10 DE SETEMBRO
Foi criado um novo layout moderno para a aplicação.
O GitHub foi integrado ao servidor online de arquivos FTP através do site
DeployBot, sendo assim, quando forem realizadas atualizações para o GitHub, os
arquivos modificados são automaticamente enviados para o servidor FTP onde o
site do projeto está localizado temporariamente.
DIAS 12 A 14 DE SETEMBRO
Realizado melhorias de performance e adicionado redirecionamento para a página
de autenticação do usuário se ele tentar acessar uma página protegida. Também
foram realizadas otimizações visuais para a melhor exibição e compatibilidade do
site em dispositivos com telas pequenas (tablets e smartphones).
DIAS 22 DE SETEMBRO A 5 DE OUTUBRO
Nesse período foi definido como seria feito a seleção dos participantes em uma
atividade. A princípio o usuário deveria selecionar um participante em uma lista de
participantes e caso quisesse outro, deveria clicar em um botão para adicionar
uma nova lista de participantes para selecionar um, e assim sucessivamente.
Esse método se mostrou ineficaz, pois ao selecionar um participante em uma das
listas o mesmo deveria ser removido das outras, assim devido ao uso dos
frameworks utilizados no projeto tal recurso não funcionava corretamente. Esse
processo tomou alguns dias de desenvolvimento.
Quando após pensar um pouco, lembrei-me de uma solução extremamente
simples que resolveria o problema: adicionar o atributo multiple em uma das listas.
Com o atributo multiple do HTML é possível selecionar mais de um item de uma
lista, logo o problema que havia estendido-se por dias foi resolvido em minutos.
DIAS 15 A 21 DE OUTUBRO
O Phreeze fornece um sistema de operações de gerenciamento do banco de dados
CRUD (cadastro, leitura, atualização e exclusão), porém ele suporta somente um item
do banco de dados por vez. Essa característica mostrou-se ineficiente para o
gerenciamento dos participantes de uma atividade.
Atualmente no método atual as informações dos participantes são manipuladas em
uma planilha de dados, ou seja, vários participantes podem ser manipulados de uma
única vez. Se fosse utilizado o método padrão de manipulação de dados do Phreeze,
o sistema se tornaria um empecilho, já que a cada participante inserido no sistema
seria necessário salvá-lo para então gerenciar outro.
Para solucionar esse problema foi implementado no sistema o plugin em javascript
Handsontable. Esse plugin gera uma planilha no site e facilita a manipulação de
grandes quantidades de dados, pois permite a edição de vários de uma única vez.
Outra vantagens oferecida pelo Handsontable é que ele suporta a colagem de dados
provenientes de planilhas de dados externas, logo ele cumpre a função de importação
de dados de outras planilhas sem a necessidade de código extra.
Para integrá-lo no sistema foi necessário adicionar um método para trabalhar com a
inserção de vários registros no banco de dados e também tratar mensagens de erro
em lotes no Javascript.
DIA 25 DE OUTUBRO
O uso de uma função para preenchimento dos dados de um participante na tabela
de listagem de participantes de uma atividade/evento causava o uso total do
processamento do dispositivo do usuário, podendo até ocasionar seu travamento.
O comportamento descrito acima deu-se pelo uso da referida função no evento
AfterChange dos campos da tabela, pois tal campo percorre todas as linhas e
colunas da tabela quando executado, enquanto que o evento BeforeChange
apenas percorre as colunas da linha atual.
Logo a solução para o problema foi colocar a função de autopreenchimento no
evento BeforeChange e o alto consumo de processamento foi resolvido.
DIA 13 E 14 DE OUTUBRO
Criado página para emissão dos certificados dos participantes e palestrantes no
banco de dados com dados da ata do evento/palestra. No inicio seria enviada uma
solicitação única para o servidor para gerar salvar todos os certificados
participantes da palestra no banco de dados, porém notou-se que seria importante
dar uma confirmação visual ao usuário do sistema de que tais certificados estavam
sendo salvos e foi implementado uma barra de progresso.
A barra de progresso mostra que o sistema está trabalhando e não está travando
e foi pensada pela possibilidade do software ter de tratar de grandes volumes de
dados em cada uma o que demanda mais tempo e com o progresso não deixa o
usuário confuso sobre o que está a fazer.
Nesse período foi alterado o algoritmo que gera miniatura das imagens enviadas,
como assinaturas dos palestrantes ou logotipo da instituição, pois antes não
suportava imagens com transparência e agora suporta.
Também notou-se um problema que se o usuário tivesse feito alguma alteração
dos dados de um evento ou atividade e clicasse em algum link antes de clicar em
salvar as alterações eram perdidas. Agora ao clicar em um link o sistema salva as
alterações antes de segui-lo.
APÊNDICE B - HISTÓRICO DE VERSÃO - RECENTES PRIMEIRO
e1618388b4bba43511ab70e68922bbad35cdd186
Data: Tue Nov 17 15:56:01 2015 -0300
Versão: 0.3.1 - Criação da ata de certificados e modificações visuais
- Agora ao selecionar a opção para emitir certificados de uma atividade, são salvos no banco de
dados todos os certificados dos palestrantes e participantes dela. Depois o sistema gera uma ata
desses certificados e baixa para o dispositivo do usuário;
73550723710460982d8fe60fe5bc5584352e7046
Data: Fri Nov 13 19:31:30 2015 -0300
Versão: 0.3.0 - Salva ao clicar em link
- Ao clicar em um link na janela modal ele salva o conteúdo antes de redirecionar
bf1a86f8c1cae27e335b1b18cc7ea9aa0c758e8e
Data: Fri Nov 13 18:26:33 2015 -0300
Versão: 0.2.9 - Transparência nas imagens
- Alterado algoritmo que gera miniaturas das imagens, antes as imagens com transparência ficavam
com fundo branco, pois todas eram salvas em JPG. Agora são salvas de acordo com a extensão
original (JPG, PNG ou GIF), permitindo transparência nas imagens caso elas possuam.
259889930270b1041eaf1993a2cbaa10b828d5c9
Data: Fri Nov 13 02:59:41 2015 -0300
Versão: 0.2.8 - Página de preparação p/ emitir certificados
- Criado a primeira página de emissão de certificados, onde são informados a ata, página inicial e
código inicial dos certificados a serem gerados. Além disso foi implementado os métodos para
cadastro desses certificados no banco de dados com retorno visual (barra de progresso) para o
usuário;
ce1588098a6ad0877af2e9e0964f1db054f221cd
Data: Tue Nov 10 00:29:54 2015 -0300
Versão: 0.2.7 - Inicio da página de emissão de certificados
- Adicionado uma página para seleção da atividade para emitir certificado, caso ainda não conste
como parâmetro na URL;
f44ba1796a6e22d437386b8324e00a547d7a5862
Data: Mon Nov 03 21:42:00 2015 -0300
Versão: 0.2.6 - Novo nome e logotipo, Nova página inicial, alterações visuais e confirmar salvar
participantes
- Novo nome e logotipo para a aplicação, agora chama-se Certifica-μ;
- Nova página inicial contendo botões com as ações que o sistema pode realizar, filtradas por nível
de usuário (nem todas funcionam ainda);
- Adicionado opções ao menu do topo e informações sobre a configuração do sistema no rodapé do
site;
- Adicionado mensagem perguntando se o usuário deseja salvar alterações de participantes se ele
tiver modificado algo e clicar em fechar sem que as modificações fossem salvas ainda;
681339ad6a78b28c3ee0fb20c63e7fe1ead59017
Data: Mon Oct 26 18:01:05 2015 -0300
Versão: 0.2.5 - Salvamento automático de participantes, filtro por atividade e validação na exclusão
- A cada 40 segundos é realizado um salvamento automático dos dados inseridos na tabela de
participantes;
- Realizado a filtragem de participantes somente na atividade selecionada em vez de todos eles na
lista, através da associação de chave estrangeira;
- Validação ao excluir um palestrante: caso possua algum certificado em alguma atividade, não
permite sua exclusão;
a465c23bff7819f12bf0a77291081b26190d45d6
Data: Sun Oct 25 04:23:52 2015 -0300
Versão: 0.2.4 - Validação dos participantes e autopreenchimento
- Validado a inserção de participantes duplicados;
- Adicionado função para autopreenchimento dos dados do participante ao começar a digitar seu
nome, e-mail ou CPF (tal função ocasionou uso excessivo de processamento da CPU, porém já foi
resolvido e discutido em detalhes no relatório do desenvolvimento contido no apêndice D do trabalho;
3882e936157955e8c7acfcb0f2e0072c90360cf3
Data: Fri Oct 23 18:23:44 2015 -0300
Versão: 0.2.3 - Validações e interface
- Realizado validações e retorno de mensagens de erro clicáveis para correção durante a
manipulação de dados dos participantes;
- Finalizado a interface de gerenciamento de participante, inclusive, com suporte aos links vindos de
outras páginas;
cbe76643639cd160f34462ed7870a8a66f8fc512
Data: Fri Oct 23 03:43:52 2015 -0300
Versão: 0.2.2 - Tabela de cadastro/importação de participantes
- Adicionado uma tabela para trabalhar com ações de inserção e edição vários participantes de uma
só vez;
- Realizado validações de cadastro de participantes (Nome, E-mail, CPF);
- Através dessa tabela também é possível colar dados provindos de outra planilha externa, como um
arquivo de dados do Excel ou Google Docs, por exemplo;
94f37ede2355c8880dace33f791e014b654cd817
Data: Tue Oct 13 20:11:22 2015 -0400
Versão: 0.2.0 - Palestrantes e Listagem de dados
- Realizado toda lógica de inserção e exclusão dos palestrantes, sendo, por exemplo, feito
validações de CPF duplicado no cadastro e se o mesmo possui algum certificado em seu nome,
quando tenta-se excluí-lo;
- Implementado envio de imagens (para assinatura) no cadastro/edição do palestrante;
- Adicionado botão para ordenar por registros recentes/antigos primeiro na listagem;
- Iniciado implementação de sistema para contagem dos resultados encontrados (por enquanto está
funcionando em testes na página que lista os palestrantes);
46df3330097f1d942b3d2bbfb0ab34bf30950ce5
Data: Mon Oct 12 16:34:15 2015 -0400
Versão: 0.1.9 - Alterações visuais
- Adicionado ícones no cabeçalho das tabelas das páginas;
- Adicionado informação visual para quando nenhum item for encontrado no banco de dados;
83c82fe81e0fa83b07bc2e388f0033da4b14b32f
Data: Sun Oct 11 20:45:22 2015 -0400
Versão: 0.1.9 - Correções na exclusão das atividades e ordernação dos palestrantes
- Corrigido um problema ao tentar excluir atividades que continham palestrantes associados;
- Ordenado os palestrantes listados nas atividades por nome.
4b4e1a70fe7d333296782ec92855b108816dfbe3
Data: Sat Oct 10 19:33:18 2015 -0400
Versão: 0.1.8 - Exclusão de evento
- Adicionado o comportamento ao tentar excluir um evento que possuía atividades relacionadas ou
detalhes, para que o usuário os excluía antes para que o evento possa ser excluído. Dessa forma
garante-se que um uma atividade que já tenha emitido certificados não seja excluída e mantenha o
banco de dados íntegro;
- Agora sim corrigido o problema que selecionava todos os palestrantes ao criar uma nova atividade
em alguns casos.
184c02b99da4e8c54583a58107754888adfc5f5a
Data: Thu Oct 8 05:09:47 2015 -0400
Versão: 0.1.7 - Suporte à URL amigável, validações nas atividades e correções de bugs
- Adicionado suporte à URLs quando clicar nos links que abrem janelas modal e não recarregam a
página, para maior compatibilidade com a navegação caso o usuário queira atualizar a página por
alguma razão;
- Listagem dos palestrantes associados a uma atividades na listagem de atividades;
- Validação de chave estrangeira ao excluir palestrante ou atividade: o sistema não permite
desassociar um palestrante da atividade caso este já tenha recebido o certificado por ela. Também
foi implementado a solução para que a atividade não seja excluida se algum palestrante tiver
recebido certificado por ela;
- Download das fontes do Google Drive para o próprio servidor "local", talvez haja maior velocidade
no carregamento das mesmas;
- Correção do problema que estava selecionando todos os palestrantes da listagem quando criava
uma nova atividade (ou ao adicionar detalhes em um evento);
b742836629f049342782138a01f001c3b77f88b4
Data: Sun Oct 4 21:28:27 2015 -0400
Versão: 0.1.5 - Mais correções
- Exclui a palestra temporária ao clicar em cancelar
dd1c35d46d25d989a19d97d56094564400464c2b
Data: Sun Oct 4 21:05:46 2015 -0400
Versão: 0.1.5 - Correções
- Pré-cadastra a palestra (atividade) no evento para possibilitar a seleção do palestrante
b9668024b280f6cc6285f515cc8c4472ba202526
Data: Sun Oct 4 20:05:09 2015 -0400
Versão: 0.1.5 - Seleção dos palestrantes na atividade
- Inserido a listagem de palestrantes disponíveis para inserção ou remoção de uma atividade, sendo
que foi feito também validação de integridade que se caso ele já tenha recebido o certificado por uma
atividade não pode ser removido;
c7aaae3851cfcf2af05661cdccde80cab821ef68
Data: Fri Sep 25 19:20:21 2015 -0400
Versão: 0.1.3 - Relacionamento muitos para muitos
- Ajustado o model, view e controller do objeto Palestrante para aceitar relacionamento muitos para
muitos (m:m) do banco de dados, já que uma atividade pode possuir vários palestrantes e um
palestrante pode estar em várias atividades;
Esse comportamento pode ser visualizado ao clicar em alguns dos botões "palestrantes" nas páginas
de atividade de um evento. (Por enquanto, é necessário cadastrar um palestrante e relacioná-lo
manualmente à atividade, pois essas funções não foram implementadas ainda)
9dff78a161986aabbbae3b5d9b978f57511eb7b5
Data: Thu Sep 24 19:56:22 2015 -0400
Versão: 0.1.2 - Evento e atividades
- Realizado validações corretas dos campos de evento e das atividades;
- Gerado as views correspondentes caso o evento não possua atividades extras;
- Adicionado confirmação visual ao alterar ou cadastrar um item no sistema;
08d3a5ef4db3faf2c451a4fc6d2d64afd057072f
Data: Tue Sep 22 04:55:09 2015 -0400
Versão: 0.1.1 - atividades do evento
- adicionado função para botao de existirem ou nao outras atividades no evento (falta corrigir
validação dos campos)
f6e1c220779a410a2ceaed39d10dbd2546bae97e
Data: Thu Sep 17 18:18:10 2015 -0400
Comportamento ao salvar evento e acessibilidade
- Ao cadastrar um novo evento, é questionado se o mesmo possui outras atividades. Isso fará com
que ao marcar essa opção, o usuário seja redirecionado para a página de palestras desse evento,
senão ele é redirecionado para o próprio evento, onde será possível cadastrar palestrantes e
participantes diretamente nele;
- Algumas correções de acessibilidade ao navegar pelos menus do site usando o teclado e ao
selecionar arquivo para upload em Configurações (antes só funcionava ao clicar com o mouse).
2fc99dbab22e3c7b66ae25c3038148901ec3f39f
Data: Tue Sep 15 00:52:26 2015 -0400
Versão: 0.1.0 - Comportamento da autenticação
- Alterado redirecionamento ao autenticar-se no sistema: agora caso o usuário digite direto na url
uma página que necessita de autenticação, ao autenticar-se, o usuário é redirecionado para essa
página em vez de ir para a página padrão de usuário autenticado.
8411fa3dbdcf1ca389ddb74f711f8f7a04a3b7d4
Data: Mon Sep 14 18:41:42 2015 -0400
Versão: 0.0.9 - Limpa o cachê
- Limpa o cachê ao fazer login;
- Validações no evento;
- Alterações visuais
9fe65eddb27770336d99b866376d1e4b0643af12
Data: Sun Sep 13 21:34:31 2015 -0400
Versão: 0.0.8 - Login via e-mail ou usuário
- Adicionado o suporte do usuário autenticar-se via e-mail também (antes só era possível pelo login);
- Em progresso página de eventos;
- Alterações no layout para usabilidade e correções de bugs.
f60e57cc33a19096d1a96d7bb7ba38d0ecf48d5c
Data: Wed Sep 9 14:58:49 2015 -0400
Novo tema
Criado novo tema para o site tem baseado nas cores roxo e laranja
8920c0499711172564f66c61edd23f507c9e000a
Data: Wed Sep 9 02:37:18 2015 -0400
Update automático dos arquivos FTP
Esse commit é para constatar se o sistema do site DeployBot consegue, através do commit,
automaticamente enviar todos os arquivos para o servidor, assim não há necessidade de enviá-los
manualmente.
ff28b1e96b253d59193cd2947fcc2c92bdf7e1f3
Data: Tue Sep 8 22:36:00 2015 -0400
Modificações visuais
Apenas alterações visuais para adaptar-se melhor aos diversos tamanhos de tela.
f4925e9c0176fa5f2f58df343759cd39955abd15
Data: Sat Sep 5 04:09:44 2015 -0400
Versão: 0.0.6 - Configurações e Upload
- Alterado comportamento do sistema para conter somente um registro de configuração; Adicionado
validações ao salvar (máscaras de CNPJ e Telefone, e obriguetoriedade dos campos Nome da
Instituição e Telefone);
- Implementação de sistema de upload de arquivos assíncrono para armazenar a imagem do
logotipo, e futuramente os arquivos de planilha de dados, antes de salvar os dados no banco de
dados;
- Mudanças visuais diversas, entre elas um novo menu.
554197d040e3502d67843f7573159bb77f76e146
Data: Mon Aug 24 17:51:49 2015 -0400
Versão: 0.0.4 - Validação do usuário e melhorias visuais
- Adicionado a validação para não cadastrar usuário duplicado (por e-mail e por login);
- Adicionado o suporte a não exclusão de usuário que tenha associação de chave estrangeira em
banco de dados MySQL diferentes de InnoDB (que não suportam chave estrangeira);
- Adicionado logotipo, favicon e outras melhorias visuais;
69dddfd60ce7b6e0a201c0eca90bc223f8bb7aa9
Data: Sat Aug 22 03:09:55 2015 -0400
Validação dos dados do usuário
- Adicionado botão de alterar senha do usuário;
- Tratada a exceção de não exclusão de usuário que possua certificados emitidos por ele (chave
estrangeira);
- Adicionado validações adicionais dos dados de usuário;
- Adicionado constante global de controle de versão do sistema.
a5d31d6f74a3cc248859f3713f8a9d413ce942c2
Data: Thu Aug 20 01:08:27 2015 -0400
Autenticação e melhorias visuais
- Implementado o sistema de autenticação com as devidas permissões de usuário (administrador e
padrão);
- Novo layout com melhorias visuais;
- Tradução de algumas strings do inglês para o português no Phreeze.
a59f4ddfe13edf736e7aede5d98b20946fbd4faa
Data: Mon Aug 17 02:05:29 2015 -0400
Implementado sistema de autenticação via IAuthenticable.
- Implementado sistema de autenticação do usuário do framework Phreeze
Fonte: Próprio autor (2015). Disponível em: <https://github.com/joaoricardorm/tcc/commits/>
APÊNDICE C - MANUAL DE INSTALAÇÃO
Como o sistema é baseado em ambiente web, para realizar sua instalação é
necessário um profissional qualificado com conhecimento em servidores e bancos
de dados. Segue os passos do procedimento.
Requisitos mínimos do servidor web para instalação do sistema:

a) PHP 5.4 com as extensões DOM e GD ativadas;


b) MySQL 5.0 com suporte a InnoDB e charset UTF-8 Unicode (utf8);
c) Apache 2.2.11 com o módulo mod_rewrite ativado;
d) 500 MB de espaço em disco.

Para a instalação do sistema é necessário realizar o envios das pastas


/phreeze/ e /tcc/ para a raiz da pasta web do servidor (normalmente são as pastas
/public_html/, /htdocs/ ou /www/).
As pastas /tcc/images/uploads/ e /tcc/certificados-gerados/ e subpastas
precisam ter permissão de leitura e escrita.
Deve-se criar um banco de dados no MySQL e executar dentro dele o
comando SQL contido na pasta /tcc/instalacao/banco_de_dados.sql (é
recomendável excluir a pasta /tcc/instalacao/ do servidor após a instalação do
sistema).
Após a criação do banco de dados é necessário alterar as configurações de
conexão do banco de dados com o sistema em /tcc/configuracao_servidor.php,
esse arquivo também contém outras configurações importantes em relação ao
servidor. Todas as configurações estão comentadas para facilitar o entendimento.
Por fim é possível acessar o sistema pela página inicial do site. Para acessar
a área restrita pode ser usado um dos usuários informados no parágrafo seguinte.
Após a autenticação pela primeira vez deve-se acessar a página Configurações e
inserir os dados da instituição que o utilizará.
Existem dois usuários pré-cadastrados no sistema: um padrão, do qual
usuário é usuariopadrao e a senha 123, e um administrador, do qual o usuário é
administrador e a senha 123.
APÊNDICE D - MANUAL DO USUÁRIO
SUMÁRIO

INÍCIO E AUTENTICAÇÃO ......................................................................................... 2


Tela 1: Tela inicial do sistema ............................................................................. 2
Tela 2: Tela de autenticação de usuário ............................................................. 3
Tela 3: Tela principal de usuário padrão autenticado ......................................... 4
Tela 4: Tela principal de usuário administrador autenticado ............................... 5
CONFIGURAÇÕES ..................................................................................................... 6
Tela 5: Tela de gerenciamento das configurações do sistema ........................... 6
Tela 6: Tela de edição das configurações do sistema ........................................ 7
USUÁRIOS.................................................................................................................. 8
Tela 7: Tela de gerenciamento de usuários do sistema ...................................... 8
Tela 8: Tela de cadastro de um usuário no sistema ........................................... 9
Tela 9: Tela de edição de um usuário do sistema............................................. 10
EVENTOS ................................................................................................................. 11
Tela 10: Tela de gerenciamento de eventos ..................................................... 11
Tela 11: Tela de cadastro de um evento ........................................................... 12
Tela 12: Tela de edição de um evento que não possui outras atividades ......... 13
Tela 13: Tela de edição de um evento que possui outras atividades................ 14
Tela 14: Tela de detalhes de um evento que não possui outras atividades ...... 15
ATIVIDADES ............................................................................................................. 16
Tela 15: Tela de gerenciamento atividades de um evento ................................ 16
Tela 16: Tela de cadastro de uma atividade no evento .................................... 17
Tela 17: Tela de edição de uma atividade do evento ........................................ 18
PALESTRANTES ...................................................................................................... 19
Tela 18: Tela de gerenciamento de palestrantes de uma atividades ou evento 19
Tela 19: Tela de cadastro de um palestrante na atividade ou evento ............... 20
Tela 20: Tela de edição de um palestrante da atividade ou evento .................. 21
PARTICIPANTES ...................................................................................................... 22
Tela 21: Tela de listagem de participantes de uma atividades ou evento ......... 22
Tela 22: Tela de gerenciamento de participantes da atividade ou evento ........ 23
Tela 23: Tela de seleção do evento/atividade para gerenciar a lista de presença24
Tela 24: Tela de gerenciamento da presença dos participantes da atividade ou
evento selecionado ........................................................................................... 25
CERTIFICADOS........................................................................................................ 26
Tela 25: Tela de seleção do evento/atividade para emissão dos certificados .. 26
Tela 26: Tela de informações da ata dos certificados ....................................... 27
Tela 27: Modelo de ata de certificados gerada pelo sistema ............................ 29
Tela 28: Tela de seleção de participantes para receber certificado da atividade
ou evento .......................................................................................................... 30
Tela 29: Tela de personalização dos certificados dos participantes da atividade
ou evento .......................................................................................................... 32
Tela 30: Tela de obtenção dos certificados da atividade ou evento.................. 34
Tela 31: Telas de validação de certificado ........................................................ 36
Tela 32: Tela de obtenção de certificado(s) de um palestrante ou participante
através do cpf ................................................................................................... 37
2

INÍCIO E AUTENTICAÇÃO

TELA 1: TELA INICIAL DO SISTEMA

1) Ao clicar, o sistema redireciona para a tela de validação de um certificado através


de seus dados de identificação;
2) Ao clicar, o sistema redireciona para a tela de obtenção de certificado(s) de um
palestrante ou participante através do CPF;
3) Ao clicar, o sistema redireciona para a tela de autenticação de usuário do sistema.
3

TELA 2: TELA DE AUTENTICAÇÃO DE USUÁRIO

1) Campo para digitar o nome de usuário (login) ou e-mail do usuário;


2) Campo para digitar a senha do usuário;
3) Ao clicar, o sistema autentica o usuário e redireciona para a tela principal de
usuário autenticado.
4

TELA 3: TELA PRINCIPAL DE USUÁRIO PADRÃO AUTENTICADO

1) Ao clicar, o sistema redireciona para a tela de gerenciamento da presença de


participantes de uma atividade ou um evento;
2) Ao clicar, o sistema redireciona para a tela de validação de um certificado através
de seus dados de identificação;
3) Ao clicar, o sistema redireciona para a tela de obtenção de certificado(s) de um
palestrante ou participante através do CPF;
4) Ao clicar, o sistema remove a sessão do usuário autenticado e redireciona para a
tela inicial.
5

TELA 4: TELA PRINCIPAL DE USUÁRIO ADMINISTRADOR AUTENTICADO

1) Ao clicar, o sistema redireciona para a tela de gerenciamento de configurações da


instituição que utiliza o sistema;
2) Ao clicar, o sistema redireciona para a tela de gerenciamento de usuários do
sistema;
3) Ao clicar, o sistema redireciona para a tela de gerenciamento de eventos;
4) Ao clicar, o sistema redireciona para a tela de gerenciamento da presença de
participantes de uma atividade ou um evento;
5) Ao clicar, o sistema redireciona para a tela de emissão de certificados de uma
atividade ou um evento;
6) Ao clicar, o sistema redireciona para a tela de validação de um certificado através
de seus dados de identificação;
7) Ao clicar, o sistema redireciona para a tela de obtenção de certificado(s) de um
palestrante ou participante através do CPF;
8) Ao clicar, o sistema remove a sessão do usuário autenticado e redireciona para a
tela inicial.
6

CONFIGURAÇÕES

TELA 5: TELA DE GERENCIAMENTO DAS CONFIGURAÇÕES DO SISTEMA

1) Ao clicar, o sistema exibe a tela de edição das configurações do sistema.


7

TELA 6: TELA DE EDIÇÃO DAS CONFIGURAÇÕES DO SISTEMA

1) Campo para digitar o nome da instituição que utiliza o sistema;


2) Botão para inserir ou alterar a imagem de logotipo da instituição;
3) Campo para digitar o CNPJ da instituição;
4) Campo para digitar o telefone da instituição;
5) Botão para salvar as alterações;
6) Botão para cancelar as alterações e fechar a tela de edição das configurações.
8

USUÁRIOS

TELA 7: TELA DE GERENCIAMENTO DE USUÁRIOS DO SISTEMA

1) Botão para cadastrar um novo usuário;


2) Botão para ordenar a listagem de usuários por ordem de cadastro no sistema;
3) Listagem de usuários cadastrados no sistema. Ao clicar sobre um usuário, o
sistema exibe a tela de edição das informações dele;
4) Campo para pesquisar usuários cadastrados no sistema;
9

TELA 8: TELA DE CADASTRO DE UM USUÁRIO NO SISTEMA

1) Campo para digitar o nome do usuário;


2) Campo para digitar o e-mail do usuário;
3) Campo para digitar o nome de usuário (login) do usuário;
4) Lista para selecionar o tipo de usuário: Padrão ou Administrador;
5) Campo para digitar a senha do usuário;
6) Campo para digitar confirmar a senha digitada;
7) Botão para salvar as informações do usuário;
8) Botão para cancelar o cadastro e fechar a tela de cadastro de usuário.
10

TELA 9: TELA DE EDIÇÃO DE UM USUÁRIO DO SISTEMA

1) Campo para digitar o nome do usuário;


2) Campo para digitar o e-mail do usuário;
3) Campo para digitar o nome de usuário (login) do usuário;
4) Lista para selecionar o tipo de usuário: Padrão ou Administrador;
5) Botão para alterar a senha do usuário;
6) Botão para excluir o usuário do sistema;
7) Botão para salvar as alterações;
8) Botão para cancelar as alterações e fechar a tela de edição do usuário.
11

EVENTOS

TELA 10: TELA DE GERENCIAMENTO DE EVENTOS

1) Botão para cadastrar um novo evento;


2) Botão para ordenar a listagem de eventos por ordem de cadastro no sistema;
3) Listagem de eventos cadastrados no sistema. Ao clicar sobre um evento, o
sistema exibe a tela de edição das informações dele;
4) Campo para pesquisar eventos cadastrados no sistema;
5) Linha de progresso
12

TELA 11: TELA DE CADASTRO DE UM EVENTO

1) Campo para digitar o nome do evento;


2) Campo para digitar o local onde o evento será ou foi realizado;
3) Campo para digitar a data de realização do evento;
4) Campo para digitar o tempo de duração do evento;
5) Ao clicar no botão Salvar e continuar e depois em Sim, o evento será considerado
pelo sistema como um evento com múltiplas atividades. Depois disso, o sistema
redireciona para a tela de detalhes do evento;
6) Ao clicar no botão Salvar e continuar e depois em Não, o evento será considerado
pelo sistema como um evento sem outras atividades (por exemplo, uma palestra).
Depois disso, o sistema redireciona para a tela de gerenciamento de atividades do
evento;
7) Botão para cancelar o cadastro e fechar a tela de cadastro de evento.
13

TELA 12: TELA DE EDIÇÃO DE UM EVENTO QUE NÃO POSSUI OUTRAS


ATIVIDADES

1) Campo para digitar o nome do evento;


2) Campo para digitar o local onde o evento será ou foi realizado;
3) Campo para digitar a data de realização do evento;
4) Campo para digitar o tempo de duração do evento;
5) Ao clicar, o sistema redireciona para a tela de detalhes do evento;
6) Ao clicar, o sistema redireciona para a tela de gerenciamento de palestrantes do
evento;
7) Ao clicar, o sistema redireciona para a tela de listagem de participantes do evento;
8) Botão para excluir o evento do sistema;
9) Botão para salvar as alterações;
10) Botão para cancelar as alterações e fechar a tela de edição do evento.
14

TELA 13: TELA DE EDIÇÃO DE UM EVENTO QUE POSSUI OUTRAS ATIVIDADES

1) Campo para digitar o nome do evento;


2) Campo para digitar o local onde o evento será ou foi realizado;
3) Campo para digitar a data de realização do evento;
4) Campo para digitar o tempo de duração do evento;
5) Ao clicar, o sistema redireciona para a tela de gerenciamento de atividades do
evento;
6) Botão para excluir o evento do sistema;
7) Botão para salvar as alterações;
8) Botão para cancelar as alterações e fechar a tela de edição do evento.
15

TELA 14: TELA DE DETALHES DE UM EVENTO QUE NÃO POSSUI OUTRAS


ATIVIDADES

1) Campo para digitar a carga horária do evento;


2) Lista com todos os palestrantes cadastrados, para o usuário selecionar aqueles
que pertencem ao evento;
3) Ao clicar, o sistema redireciona para a tela de cadastro de um novo palestrante no
evento;
4) Ao clicar, o sistema redireciona para a tela de gerenciamento de palestrantes do
evento;
5) Ao clicar, o sistema redireciona para a tela de listagem de participantes do evento;
6) Ao clicar, o sistema redireciona para a tela do evento;
7) Botão para salvar os detalhes do evento;
8) Botão para cancelar as alterações e fechar a tela de detalhes do evento.
16

ATIVIDADES

TELA 15: TELA DE GERENCIAMENTO ATIVIDADES DE UM EVENTO

1) Botão para cadastrar uma nova atividade;


2) Botão para ordenar a listagem de atividades por ordem de cadastro no sistema;
3) Listagem atividades do evento cadastradas no sistema. Ao clicar sobre uma
atividade, o sistema exibe a tela de edição das informações dela;
4) Campo para pesquisar atividades do evento cadastradas no sistema;
5) Ao clicar, o sistema redireciona para a tela do evento;
17

TELA 16: TELA DE CADASTRO DE UMA ATIVIDADE NO EVENTO

1) Campo para digitar o nome da atividade;


2) Campo para digitar a data de realização da atividade;
3) Campo para digitar a carga horária da atividade;
4) Lista com todos os palestrantes cadastrados, para o usuário selecionar aqueles
que pertencem à atividade;
5) Ao clicar, o sistema redireciona para a tela de cadastro de um novo palestrante na
atividade;
6) Botão para salvar as informações;
7) Botão para cancelar o cadastro e fechar a tela de cadastro da atividade.
8) Ao clicar, o sistema redireciona para a tela do evento;
18

TELA 17: TELA DE EDIÇÃO DE UMA ATIVIDADE DO EVENTO

1) Campo para digitar o nome da atividade;


2) Campo para digitar a data de realização da atividade;
3) Campo para digitar a carga horária da atividade;
4) Lista com todos os palestrantes cadastrados, para o usuário selecionar aqueles
que pertencem à atividade;
5) Ao clicar, o sistema redireciona para a tela de cadastro de um novo palestrante na
atividade;
6) Ao clicar, o sistema redireciona para a tela de gerenciamento de palestrantes do
evento;
7) Ao clicar, o sistema redireciona para a tela de listagem de participantes do evento;
8) Botão para excluir a atividade do sistema
9) Botão para salvar as alterações;
10) Botão para cancelar as alterações e fechar a tela de edição da atividade.
11) Ao clicar, o sistema redireciona para a tela do evento;
19

PALESTRANTES

TELA 18: TELA DE GERENCIAMENTO DE PALESTRANTES DE UMA


ATIVIDADES OU EVENTO

1) Botão para cadastrar uma novo palestrante;


2) Botão para ordenar a listagem de palestrantes por ordem de cadastro no sistema;
3) Listagem de palestrantes da atividade ou evento cadastrados no sistema. Ao
clicar sobre um palestrante, o sistema exibe a tela de edição das informações dele;
4) Campo para pesquisar palestrantes da atividade ou evento cadastrados no
sistema;
5) Ao clicar, o sistema redireciona para a tela do evento;
6) Ao clicar, o sistema redireciona para a tela da atividade (ou detalhes do evento, se
não possuir outras atividades);
7) Ao clicar, o sistema redireciona para a tela de listagem de participantes da
atividade ou evento.
20

TELA 19: TELA DE CADASTRO DE UM PALESTRANTE NA ATIVIDADE OU


EVENTO

1) Campo para digitar o nome do palestrante;


2) Campo para digitar o e-mail do palestrante;
3) Campo para digitar o CPF do palestrante;
4) Campo para digitar o cargo do palestrante;
5) Botão para inserir ou alterar a imagem de assinatura do palestrante;
6) Botão para salvar as informações do palestrante;
7) Botão para cancelar o cadastro e fechar a tela de cadastro do palestrante.
21

TELA 20: TELA DE EDIÇÃO DE UM PALESTRANTE DA ATIVIDADE OU EVENTO

1) Campo para digitar o nome do palestrante;


2) Campo para digitar o e-mail do palestrante;
3) Campo para digitar o CPF do palestrante;
4) Campo para digitar o cargo do palestrante;
5) Botão para alterar a imagem de assinatura do palestrante;
6) Botão para excluir o palestrante do sistema;
7) Botão para salvar as alterações;
8) Botão para cancelar as alterações e fechar a tela de edição do palestrante.
22

PARTICIPANTES

TELA 21: TELA DE LISTAGEM DE PARTICIPANTES DE UMA ATIVIDADES OU


EVENTO

1) Botão para gerenciar os participantes da atividade (cadastrar, editar ou excluir);


2) Botão para ordenar a listagem de participantes por ordem de cadastro no sistema;
3) Listagem de participantes da atividade ou evento cadastrados no sistema. Ao
clicar sobre um participante, o sistema exibe a tela de gerenciamento de
participantes e o deixa realçado para edição;
4) Campo para pesquisar participantes da atividade ou evento cadastrados no
sistema;
5) Ao clicar, o sistema redireciona para a tela do evento;
6) Ao clicar, o sistema redireciona para a tela da atividade (ou detalhes do evento, se
não possuir outras atividades);
7) Ao clicar, o sistema redireciona para a tela de gerenciamento de palestrantes da
atividade ou evento.
23

TELA 22: TELA DE GERENCIAMENTO DE PARTICIPANTES DA ATIVIDADE OU


EVENTO

1) Campo para buscar um participante na tabela;


2) Ao clicar, o sistema adiciona uma nova linha na tabela de participantes;
3) Tabela para edição dos participantes. Para excluir um deles, deve-se clicar com o
botão direito do mouse e escolher a opção "Excluir participante";
4) Botão para salvar as alterações;
5) Botão para fechar a tela de gerenciamento dos palestrantes.
24

TELA 23: TELA DE SELEÇÃO DO EVENTO/ATIVIDADE PARA GERENCIAR A


LISTA DE PRESENÇA

1) Lista com todos os eventos cadastrados;


2) Lista com todas as atividades cadastradas do evento selecionado, para a qual a
lista de presença será aberta (opção disponível somente se o evento possuir outras
atividades);
3) Ao clicar, o sistema redirecionará para a tela para de gerenciamento da presença
de participantes da atividade ou evento selecionado.
25

TELA 24: TELA DE GERENCIAMENTO DA PRESENÇA DOS PARTICIPANTES DA


ATIVIDADE OU EVENTO SELECIONADO

1) Listagem de participantes da atividade ou evento cadastrados no sistema. Ao


clicar sobre um participante, o sistema confirma a presença dele na atividade, ou se
já tiver presença, então confirma sua ausência;
2) Campo para buscar um participante na tabela;
3) Ao clicar, o sistema redireciona para a tela de seleção de evento/atividade para
abrir a lista de presença;
26

CERTIFICADOS

TELA 25: TELA DE SELEÇÃO DO EVENTO/ATIVIDADE PARA EMISSÃO DOS


CERTIFICADOS

1) Lista com todos os eventos cadastrados;


2) Lista com todas as atividades cadastradas do evento selecionado, para a qual os
certificados serão emitidos (opção disponível somente se o evento possuir outras
atividades);
3) Ao clicar, o sistema redirecionará para a tela para preenchimento das informações
da ata. Se todos os certificados da atividade ou evento já tiverem sido emitidos, o
sistema redirecionará para a tela seleção de participantes para obtenção dos
certificados.
4) tela de obtenção de certificado(s) de um palestrante ou participante através do
CPF
27

TELA 26: TELA DE INFORMAÇÕES DA ATA DOS 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

8) Ao clicar, o sistema redireciona para a tela de listagem de participantes da


atividade/evento;
9) Ao clicar, o sistema redireciona para a tela de seleção de evento/atividade para
emissão dos certificados.
29

tela de obtenção de certificado(s) de um palestrante ou participante através do CPF


TELA 27: MODELO DE ATA DE CERTIFICADOS GERADA PELO SISTEMA

1) Coluna com os nomes dos palestrantes e participantes da atividade ou evento;


2) Coluna para assinatura de recebimento do certificado;
3) Coluna com o nome da atividade (caso o evento possua atividades);
4) Coluna com o nome do evento;
5) Coluna com a data da atividade ou evento;
6) Coluna com a carga horária da atividade ou evento;
7) Colunas com o código do certificado e ano de emissão;
8) Página do livro ata a qual o certificado pertence;
9) Livro ata a qual o certificado pertence.
30

TELA 28: TELA DE SELEÇÃO DE PARTICIPANTES PARA RECEBER


CERTIFICADO DA ATIVIDADE OU EVENTO

1) Ao clicar, o sistema desmarca todos os participantes que estão selecionados na


lista para recebimento do certificado. Se estiverem desmarcados, o sistema realiza o
procedimento oposto;
2) Listagem de participantes da atividade ou evento cadastrados no sistema. Ao
clicar sobre um participante, o sistema o marca para recebimento de certificado. Ou
desmarca se já estiver marcado;
3) Campo para pesquisar participantes da atividade ou evento cadastrados no
sistema;
4) Ao clicar, o sistema redireciona para a tela de formatação dos certificados dos
participantes da atividade;
5) Ao clicar, o sistema redireciona para a tela de gerenciamento do evento;
6) Ao clicar, o sistema redireciona para a tela da atividade (ou detalhes do evento, se
não possuir outras atividades);
7) Ao clicar, o sistema redireciona para a tela de gerenciamento de palestrantes da
atividade ou evento;
31

8) Ao clicar, o sistema redireciona para a tela de listagem de participantes da


atividade/evento para gerenciamento deles;
9) Ao clicar, o sistema redireciona para a tela de seleção de evento/atividade para
emissão dos certificados;
10) Ao clicar, o sistema baixa a ata de certificados da atividade ou evento para o
dispositivo do usuário.
32

TELA 29: TELA DE PERSONALIZAÇÃO DOS CERTIFICADOS DOS


PARTICIPANTES DA ATIVIDADE OU EVENTO

1) Lista com os elementos que aparecerão no certificado. Os elementos na cor


laranja são gerados pelo sistema e não podem ser editados, já o restante, ao ser
clicado, torna-se editável. É possível alterar a ordem dos elementos arrastando-os.
2) Campo para inserção de novos elementos de texto ao certificado;
3) Ao arrastar um elemento aqui, ele deixará de aparecer no certificado. É uma
lixeira;
4) Botões para personalizar os elementos dinâmicos do sistema que aparecerão no
certificado. São, respectivamente: o tamanho do texto (pequeno, normal ou grande),
33

centralizar o nome do participante no certificado, formatar os elementos (negrito,


itálico e sublinhado), e alterar a cor dos elementos;
5) Botões para personalizar os elementos textuais que aparecerão no certificado.
São, respectivamente: o tamanho do texto (pequeno ou normal), alinhamento do
texto (esquerda, centro, direita ou justificado), formatar o texto (negrito e itálico), e
alterar a cor do texto;
6) Ao clicar, altera a orientação da página (paisagem ou retrato) do certificado;
7) Certificado modelo para pré-visualização das alterações do conteúdo e
formatação dos certificados que serão gerados;
8) Ao clicar, o sistema baixa para o dispositivo do usuário uma versão em PDF do
modelo de pré-visualização do certificado;
9) Ao clicar, o sistema expande a pré-visualização do certificado para tela cheia;
10) Ao clicar, o sistema redireciona para a tela de seleção de evento/atividade para
emissão dos certificados;
11) Ao clicar, o sistema baixa a ata de certificados da atividade ou evento para o
dispositivo do usuário;
12) Ao clicar, o sistema redireciona para a tela de seleção de participantes para
receber certificado da atividade ou evento;
13) Ao clicar, o sistema redireciona para a tela de gerenciamento do evento;
14) Ao clicar, o sistema redireciona para a tela da atividade (ou detalhes do evento,
se não possuir outras atividades);
15) Ao clicar, o sistema redireciona para a tela de gerenciamento de palestrantes da
atividade ou evento;
16) Ao clicar, o sistema redireciona para a tela de listagem de participantes da
atividade/evento para gerenciamento deles;
17) Ao clicar, o sistema redireciona para a tela de formatação dos certificados dos
palestrantes da atividade.

* A tela de formatação dos certificados dos palestrantes é exatamente igual a


dos participantes, apenas os elementos dinâmicos e textuais do item 1 serão
alterados
34

TELA 30: TELA DE OBTENÇÃO DOS CERTIFICADOS DA ATIVIDADE OU


EVENTO

1) Ao clicar, marca a opção de obtenção dos certificados através da impressão dos


mesmos. Se estiver marcada, o sistema realiza o procedimento oposto;
2) Ao clicar, marca a opção de obtenção dos certificados em arquivos PDF. Se
estiver marcada, o sistema realiza o procedimento oposto;
3) Ao clicar, marca a opção de envio dos certificados em PDF para os e-mails do
usuário do sistema, dos palestrantes e dos participantes com presença confirmada
na atividade/evento. Se estiver marcada, o sistema realiza o procedimento oposto;
4) Ao clicar, o sistema prepara os certificados de acordo com as opções marcadas e
executa as ações requisitadas por elas;
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;
8) Ao clicar, o sistema redireciona para a tela de listagem de participantes da
atividade/evento;
9) Ao clicar, o sistema redireciona para a tela de seleção de evento/atividade para
emissão dos certificados;
35

10) Ao clicar, o sistema baixa a ata de certificados da atividade ou evento para o


dispositivo do usuário;
11) Ao clicar, o sistema redireciona para a tela de seleção de participantes para
receber certificado da atividade ou evento;
12) Ao clicar, o sistema redireciona para a tela de formatação dos certificados dos
participantes da atividade.
36

TELA 31: TELAS DE VALIDAÇÃO DE CERTIFICADO

1) Campo para inserir o número do registro presente no certificado a ser validado;


2) Campo para inserir o número da folha do registro presente no certificado a ser
validado;
3) Campo para inserir o número do livro do registro presente no certificado a ser
validado;
4) Ao clicar, o sistema verifica a autenticidade do certificado e retorna a mensagem
de validação;
5) Se o certificado for válido o sistema exibe o botão que ao ser clicado, baixa para o
dispositivo do usuário o certificado recém validado em PDF.
37

TELA 32: TELA DE OBTENÇÃO DE CERTIFICADO(S) DE UM PALESTRANTE OU


PARTICIPANTE ATRAVÉS DO CPF

1) Campo para digitar o CPF do palestrante ou participante.


2) Ao clicar, o sistema exibe a lista com todos os certificados do participante
disponíveis para obtenção. Apenas os certificados de eventos/atividades com
presença confirmada estarão disponíveis;
3) Lista com os certificados do palestrante ou participante disponíveis;
4) Ao clicar, o sistema baixa uma cópia do certificado para o dispositivo do usuário;
5) Ao clicar, o sistema imprime o certificado
6) Ao clicar, o sistema envia uma cópia do certificado em PDF para o e-mail do
palestrante ou participante.
.
APÊNDICE E - PROJETO DE TCC2
FACULDADE DE ROLIM DE MOURA – FAROL
SISTEMAS DE INFORMAÇÃO

JOÃO RICARDO ALVES DE PAULA

DESENVOLVIMENTO DE UM SISTEMA WEB PARA


GERENCIAMENTO DE CERTIFICADOS PARA A FAROL
(FACULDADE DE ROLIM DE MOURA)

ROLIM DE MOURA
2015
JOÃO RICARDO ALVES DE PAULA

DESENVOLVIMENTO DE UM SISTEMA WEB PARA


GERENCIAMENTO DE CERTIFICADOS PARA A FAROL
(FACULDADE DE ROLIM DE MOURA)

Projeto de trabalho de conclusão de curso,


apresentado à Faculdade de Rolim de Moura –
FAROL como exigência parcial para obtenção
do título de bacharel em Sistemas de
Informação, sob a orientação do Prof. Esp.
Armando Keniti Kusano.

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

5 FUNDAMENTAÇÃO TEÓRICA .............................................................................. 10


5.1 Sistemas de Informação ............................................................................. 10
5.2 Análise ........................................................................................................ 11
5.3 Requisitos de software ................................................................................ 12
5.3.1 Requisitos Funcionais .......................................................................... 12
5.3.2 Requisitos Não Funcionais .................................................................. 12
5.4 Banco de Dados ......................................................................................... 18
5.4.1 Modelagem do Banco de Dados.......................................................... 19
5.5 Tecnologias e ferramentas.......................................................................... 25
5.5.1 Linguagem de programação ................................................................ 25
5.5.2 Framework ........................................................................................... 26
5.5.3 Tecnologias e ferramentas deste projeto ............................................. 26
5.5.4 UML ..................................................................................................... 27

6 MÉTODOS ............................................................................................................. 44

CRONOGRAMA ........................................................................................................ 47

RECURSOS .............................................................................................................. 47

REFERÊNCIAS ......................................................................................................... 48
LISTA DE QUADROS

QUADRO 1: REQUISITO FUNCIONAL RF01_AUTENTICACAO_DO_USUARIOERRO! INDICA

QUADRO 2: REQUISITO FUNCIONAL RF02_CADASTRO_DE_USUARIOSERRO! INDICADOR

QUADRO 3: REQUISITO FUNCIONAL RF03_CADASTRO_DE_PALESTRANTESERRO! INDIC

QUADRO 4: REQUISITO FUNCIONAL RF02_CADASTRO_DE_USUARIOSERRO! INDICADOR

QUADRO 5: REQUISITO FUNCIONAL RF05_CADASTRO_DE_PARTICIPANTESERRO! INDIC

QUADRO 6: REQUISITO FUNCIONAL RF06_IMPORTAR_PARTICIPANTESERRO! INDICADO

QUADRO 7: REQUISITO FUNCIONAL RF07_CONFIRMAR_PRESENCAERRO! INDICADOR N

QUADRO 8: REQUISITO FUNCIONAL RF08_CONSULTAR_PRESENCAERRO! INDICADOR N

QUADRO 9: REQUISITO FUNCIONAL RF09_GERAR_PDF_CERTIFICADOERRO! INDICADOR

QUADRO 10: REQUISITO FUNCIONAL RF10_ENVIAR_EMAIL_CERTIFICADOERRO! INDICA

QUADRO 11: REQUISITO FUNCIONAL RF11_GERAR_ATA_PALESTRAERRO! INDICADOR N

QUADRO 12: REQUISITO FUNCIONAL RF12_CALCULAR_POSICAO_ATAERRO! INDICADO

QUADRO 13: REQUISITO FUNCIONAL RF13_EMITIR_CERTIFICADOERRO! INDICADOR NÃ

QUADRO 14: REQUISITO FUNCIONAL RF14_OBTER_PROPRIO_CERTIFICADOERRO! INDI

QUADRO 15: REQUISITO FUNCIONAL RF15_VALIDAR_CERTIFICADOERRO! INDICADOR N

QUADRO 16: REQUISITO NÃO FUNCIONAL RNF01_CONFIABILIDADEERRO! INDICADOR N

QUADRO 17: REQUISITO NÃO FUNCIONAL RNF02_PORTABILIDADEERRO! INDICADOR N

QUADRO 18: REQUISITO NÃO FUNCIONAL RNF03_VIABILIDADE_ECONOMICAERRO! INDI

QUADRO 19: REQUISITO NÃO FUNCIONAL RNF04_RISCOSERRO! INDICADOR NÃO DEFIN

QUADRO 20: DOCUMENTAÇÃO DO CASO DE USO: ATORESERRO! INDICADOR NÃO DEF

QUADRO 21: DOCUMENTAÇÃO DO CASO DE USO: AUTENTICAR USUÁRIOERRO! INDICA

QUADRO 22: DOCUMENTAÇÃO DO CASO DE USO: GERIR CONFIGURAÇÃOERRO! INDICA

QUADRO 23: DOCUMENTAÇÃO DO CASO DE USO: GERIR USUÁRIOERRO! INDICADOR N

QUADRO 24: DOCUMENTAÇÃO DO CASO DE USO: GERIR PALESTRANTEERRO! INDICAD

QUADRO 25: DOCUMENTAÇÃO DO CASO DE USO: GERIR EVENTOERRO! INDICADOR NÃ

QUADRO 26: DOCUMENTAÇÃO DO CASO DE USO: GERIR PALESTRAERRO! INDICADOR


QUADRO 27: DOCUMENTAÇÃO DO CASO DE USO: GERIR PARTICIPANTEERRO! INDICAD

QUADRO 28: DOCUMENTAÇÃO DO CASO DE USO: GERIR PRESENÇAERRO! INDICADOR

QUADRO 29: DOCUMENTAÇÃO DO CASO DE USO: EMITIR CERTIFICADOERRO! INDICAD

QUADRO 30: DOCUMENTAÇÃO DO CASO DE USO: OBTER CERTIFICADOERRO! INDICAD

QUADRO 31: DOCUMENTAÇÃO DO CASO DE USO: VALIDAR CERTIFICADOERRO! INDICA

QUADRO 32: DICIONÁRIO DE DADOS DA TABELA USUARIO ............................. 40

QUADRO 33: DICIONÁRIO DE DADOS DA TABELA CONFIGURACAOERRO! INDICADOR NÃ

QUADRO 34: DICIONÁRIO DE DADOS DA TABELA EVENTOERRO! INDICADOR NÃO DEFIN

QUADRO 35: DICIONÁRIO DE DADOS DA TABELA PALESTRANTEERRO! INDICADOR NÃO

QUADRO 36: DICIONÁRIO DE DADOS DA TABELA PALESTRAERRO! INDICADOR NÃO DEF

QUADRO 37: DICIONÁRIO DE DADOS DA TABELA PARTICIPANTEERRO! INDICADOR NÃO

QUADRO 38: DICIONÁRIO DE DADOS DA TABELA PALESTRA_PALESTRANTEERRO! INDIC

QUADRO 39: DICIONÁRIO DE DADOS DA TABELA PALESTRA_PARTICIPANTEERRO! INDIC

QUADRO 40: DICIONÁRIO DE DADOS DA TABELA MODELO_CERTIFICADOERRO! INDICAD

QUADRO 41: DICIONÁRIO DE DADOS DA TABELA CERTIFICADOERRO! INDICADOR NÃO


LISTA DE FIGURAS

FIGURA 1: DIAGRAMA DE CASOS DE USO DA UML ............................................ 21


FIGURA 2: DIAGRAMA DE CLASSES DA UML ....................................................... 34
FIGURA 3: DIAGRAMA DE ATIVIDADE DA UML - GERIR PRESENÇA ................. 35
FIGURA 4: DIAGRAMA DE ATIVIDADE DA UML - EMITIR CERTIFICADOS ......... 36
FIGURA 5: DIAGRAMA DO MODELO CONCEITUAL DO DER ............................... 38
FIGURA 6: DIAGRAMA DO MODELO LÓGICO DO DER ........................................ 39
LISTA ABREVIATURAS E SIGLAS

CSS - Cascading Style Sheets


DER - Diagrama Entidade-Relacionamento
FAROL - Faculdade de Rolim de Moura
HTML - HyperText Markup Language
MEC - Ministério da Educação e Cultura
PDF - Portable Document Format
PHP - Hypertext Preprocessor
SGBD - Sistema Gerenciador de Banco de Dados
UML - Unified Modeling Language
7

1 INTRODUÇÃO

A FAROL (Faculdade de Rolim de Moura) emite e gerencia certificados para


os eventos que promove, estes certificados são emitidos através de softwares não
desenvolvidos para esse propósito e que não atendem às expectativas da
instituição.
Este trabalho é um projeto que anseia o desenvolvimento de uma aplicação
que auxilie e automatize o processo de controle e emissão de certificados para a
instituição FAROL.
A aplicação contará com controle de presença para os eventos realizados,
além disso, como será um sistema web também permitirá que qualquer pessoa com
conexão à internet possa efetuar a validação de certificados emitidos pela instituição
e também poderá reemitir certificados para algum participante caso possua os seus
dados pessoais. A emissão de certificados ainda contará com opções de envio por
e-mail e criação do certificado em PDF.
A necessidade do desenvolvimento de tal aplicação se dá pelo interesse em
centralizar e automatizar o gerenciamento dos certificados de eventos, pois
atualmente esse procedimento é realizado de forma manual, sendo portanto,
oneroso e sujeito à falhas. Dessa forma a aplicação a ser desenvolvida intenta ser
uma base sólida para o gerenciamento dos certificados e simplificar o trabalho desse
processo.

2 PROBLEMATIZAÇÃO

A FAROL (Faculdade de Rolim de Moura) realiza periodicamente eventos que


contam com a participação de seus alunos e colaboradores. Dentre as razões da
realização desses eventos é possível citar a divulgação científica e ampliação do
conhecimento e também como parte das horas de atividades complementares
exigidas pelo MEC (Ministério da Educação e Cultura) para que o aluno da
instituição conclua com sucesso a sua graduação.
Tendo em vista os propósitos educacionais dos eventos organizados pela
instituição, faz-se necessário a emissão de um certificado de participação aos
participantes e palestrantes do evento, o qual é utilizado como comprovação de
presença nos eventos realizados pela FAROL.
8

Atualmente o setor de Pesquisa e Extensão da FAROL gerencia os


certificados da seguinte forma: os dados dos participantes são inseridos em uma
planilha através do editor de planilhas Microsoft® Excel®. Essa planilha é importada
pelo editor de textos Microsoft® Word® através de seu recurso de mala direta, o
qual exporta ou imprime os certificados gerados.
De acordo com a instituição, os programas usados para o gerenciamento de
certificados não oferecem um fluxo de trabalho ideal, pelo contrário, tornam essa
função um trabalho manual e dispendioso, pois existe a necessidade de salvar os
certificados gerados em arquivos individuais, porém o recurso de mala direta do
Microsoft® Word® apenas possibilita que todos os certificados sejam salvos de uma
única vez em um arquivo único. Caso haja a necessidade de salvar os certificados
individualmente deve-se fazer de forma manual, ou então, salva-se o arquivo único
com todos os certificados e recorre-se a um terceiro programa para dividir esse
arquivo único em vários arquivos de certificados individuais.
Nota-se que o processo de emissão e gerenciamento de certificados utilizado
na FAROL é deveras complexo e não intuitivo, pois os programas utilizados até o
presente momento para a criação de certificados foram escolhidos de forma
oportuna e não de forma funcional.
De acordo com Batista (2006, p. 49):

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.

Nota-se que os softwares usados na geração de certificados foram escolhidos


de acordo com a disponibilidade de funções que oferecem e que eles atendem
parcialmente as necessidades da instituição, porém como não foram
especificamente desenvolvidos para esse objetivo eles acabam não atendendo
todas as expectativas e deixam de ser funcionais.
Outro problema enfrentado pelo método atual no gerenciamento dos
certificados é que os aplicativos usados não oferecem uma integração via internet
para que haja a emissão ou validação remota de um certificado emitido pelo sistema,
haja vista que os programas usados não foram desenvolvidos com esse fim.
Portanto, ações desse tipo só podem ser feitas pela própria instituição não
9

oferecendo assim formas automatizadas para que o próprio palestrante ou


participante execute tais ações no local de sua preferência.

3 OBJETIVOS

3.1 Objetivo geral

Desenvolver um sistema web que permita o gerenciamento e a validação de


certificados gerados visando o atendimento das necessidades da instituição de
ensino FAROL.

3.2 Objetivos específicos

a) Desenvolver uma aplicação web para emissão e validação de


certificados;
b) Permitir que o administrador do sistema personalize o modelo e as
informações do certificados de uma palestra ao emiti-los;
c) Permitir que o sistema importe os dados dos participantes a partir de
uma planilha formatada proveniente do Microsoft® Excel® ou aplicativo
semelhante;
d) Permitir que o usuário do sistema possa imprimir, salvar em PDF
(Portable Document Format) ou enviar para o e-mail dos participantes
e palestrantes os certificados gerados pela aplicação;
e) Desenvolver interface para que o próprio participante através de seus
dados pessoais possa emitir e validar o(s) seu(s) certificado(s);

4 JUSTIFICATIVA

No modelo atual de gerenciamento de certificados de palestras não há uma


base de dados centralizada e permanente deles. Após criar os certificados, o
Microsoft® Word® não os armazena para posterior consulta, portanto não existem
formas de filtrar os certificados após criados e assim não há um procedimento no
sistema para validá-los. Para contemplar essas funções o sistema proposto neste
projeto manterá uma base de dados dos certificados emitidos e gerará um livro ata
contendo os certificados de cada palestra com possibilidade de consulta e validação.
10

Tendo em vista as situações relatadas na problematizarão, este projeto visa o


desenvolvimento de uma aplicação baseada em ambiente web que sane as
necessidades da instituição na questão de gerenciamento de certificados para
palestras, tendo como motivos de existir a redução de tempo e a centralização do
processo de criação dos certificados, além do armazenamento dos mesmos em um
banco de dados permanente, o qual possibilitará que qualquer usuário com conexão
à internet consiga verificar se um certificado foi ou não emitido pela instituição, logo,
se o mesmo é verdadeiro.
Por fim almeja-se oferecer a possibilidade de o próprio participante obter seu
certificado por meio do site, isto é, caso ele tenha participado e comparecido a algum
evento oferecido pela instituição mediante a inserção de seus dados pessoais no
sistema será disponibilizado o resgate dos certificados para as palestras em que
compareceu.

5 FUNDAMENTAÇÃO TEÓRICA

Com intenção de fundamentar os conceitos abordados nesta pesquisa, torna-


se necessário apresentar uma sequência correta e lógica de fundamentos,
conceituando dos pontos mais genéricos para os mais específicos, caracterizando
assim, as informações necessárias para que se possa gerar entendimento e
compreensão do tema abordado neste trabalho.
5.1 Sistemas de Informação

Bertalanffy (apud VELLOSO, 2004, p. 152) afirma que um sistema é um


conjunto estruturado de elementos que interagem entre si em busca de atingir um ou
vários objetivos através dos resultados gerados por essa interação. Bertalanffy diz
que um sistema tende a se desgastar naturalmente, portanto é necessário que o
sistema sofra constantes mudanças para manter seu equilíbrio.
O'brien (2004, p. 7) destaca que um sistema possui basicamente três
componentes básicos: a entrada de elementos a serem processados, o
processamento desses elementos que os transforma em produto e a saída dos
elementos processados para o seu destino final.
Corroborando com esta ideia, "sistema de informação é um conjunto
organizado de pessoas, hardware, software, redes de comunicação e recursos de
11

dados que coleta, transforma e dissemina informações em uma organização"


(O'BRIEN, 2004, p. 6). Os sistemas de informação não precisam envolver a
computação em si, pois um simples lápis e papel podem atuar como o hardware e a
comunicação "boca a boca" pode ser o canal de comunicação em um sistema de
informações.
Bio (2008, p. 22) define sistema de informações como uma rede de
subsistemas que coletam dados, processam, produzem e distribuem as informações
resultantes, ou seja, eles interagem entre si, sendo que o próprio sistema de
informação é um subsistema do sistema empresa.
Sobre as informações coletadas por um sistema de informações Batista
(2006, p. 13) diz que:

A grande meta da sociedade é reunir todas as fontes de dados e


informações existentes e organizá-las, tendo em vista tornar acessível todo
dado desejado na mesma velocidade em que ele é necessário aos
tomadores de decisão em qualquer atividade.

Dessa forma é possível perceber a importância dos sistemas de informação, a


distribuição de dados e informações em tempo hábil e com qualidade só é possível
caso exista um sistema que possibilite a coleta e processamento desses dados e
informações.

5.2 Análise

Dennis e Wixom (2005, p. 5) defendem que a análise é a fase do projeto que


visa analisar a situação do sistema atual e seus problemas, a partir disso, propõe um
sistema para resolver os problemas e atender os requisitos em que o antigo é
deficiente. Yourdon (1990, p. 82) complementa que o modelo gerado pela análise
representa de forma abstrata o que, eventualmente, se tornará o produto final de
software.
De acordo com Tonsig (2008, p. 118) a análise de sistemas tem por objetivo
solucionar um problema, porém não com sentido de questionamento e sim como
necessidade de uma pessoa ou organização. O sistema proposto deve satisfazer a
necessidade do usuário que o solicitou para que, dessa forma, consiga dar
continuidade aos seus negócios.
Na visão de Pompilho (2002, p.3) muitos sistemas são projetados com base
no quesito técnico-econômico do problema, ou seja, é dada atenção maior ao
12

desempenho do sistema em detrimento às reais necessidades do usuário. Isso gera


sistemas deficientes e causa desapontamentos ao usuário. Portanto faz-se
necessário a análise seja feita por um profissional que possua habilidades em
comunicação, não apenas conhecimentos técnicos do processo de desenvolvimento
de software.

5.3 Requisitos de software

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.

5.3.1 Requisitos Funcionais

Sommerville (2011, p. 59) declara que os requisitos funcionais são aqueles


que descrevem o que um sistema deve fazer, como devem reagir às entradas de
dados específicas e como se comportar em determinadas situações.
Sommerville (2011, p. 60) ainda destaca que as especificações desses
requisitos devem ser completas e consistentes, pois todo o comportamento do
sistema deve ser descrito nos requisitos para evitar ambiguidades, bem como essas
funcionalidades não devem se contradizer, portanto devem ser consistentes.

5.3.2 Requisitos Não Funcionais

Os requisitos não funcionais restringem-se às funções oferecidas pelo


sistema. Eles não estão ligados necessariamente às funções do software e sim à
toda estrutura do sistema, afirma Sommerville (2011, p. 60).
Além disso, de acordo com Sommerville (2011, p. 60), os requisitos não
funcionais podem ser de confiabilidade, rapidez e usabilidade da aplicação;
organizacionais que derivam da política de organização do cliente e desenvolvedor
como o método de utilização do sistema, a linguagem de programação e o ambiente
de desenvolvimento; ou externos que abrangem as normas e legislações que o
sistema deve obedecer.
A seguir estão os quadros de requisitos funcionais desta aplicação.
13

TABELA 41: Requisito funcional RF01_Autenticacao_do_Usuario


Descrição do Requisito RF01_Autenticacao_do_Usuario
Função do Requisito Conferir se os dados do formulário de acesso conferem com aqueles
presentes no bando de dados. Limitadas tentativas.
Valores usuario, senha
Resultados esperados Variável persistente da sessão
Pré-condição Todos os campos devem estar preenchidos;
O usuário deverá estar previamente cadastrado no sistema
Pós-condição Encaminhar para a tela de administração
Fonte: Próprio autor (2015)

TABELA 42: Requisito funcional RF02_Cadastro_de_Usuarios


Descrição do Requisito RF02_Cadastro_de_Usuarios
Função do Requisito Inserir, alterar e excluir cadastros na tabela usuario do banco de dados
Valores nome, email, login, senha, confirmar_senha, tipo_usuario (comum ou
administrador)
Resultados esperados Inserir, alterar ou excluir no banco de dados os valores fornecidos pelo
usuário;
O usuário pode ser do tipo padrão ou administrador. O usuário padrão
apenas pode confirmar ou consultar a presença dos participantes
(RF07_Confirmar_Presenca e RF08_Consultar_Presenca) e emitir os
certificados de um evento (RF08_Emitir_Certificado);
O usuário administrador pode fazer todas as funções do sistema.
Pré-condição RF01_Autenticacao_do_Usuario;
O campo senha e confirmar senha devem possuir o mesmo valor;
Um administrador não pode alterar seu próprio usuário para usuário
padrão;
Todos os campos devem estar preenchidos
Pós-condição Retornar para tela de cadastro com informação de sucesso ou fracasso.
Fonte: Próprio autor (2015)

TABELA 43: Requisito funcional RF03_Cadastro_de_Palestrantes


Descrição do Requisito RF03_Cadastro_de_Palestrantes
Função do Requisito Inserir, alterar e excluir cadastros na tabela palestrante do banco de
dados
Valores nome, email, CPF, cargo, imagem_assinatura
Resultados esperados Inserir, alterar ou excluir no banco de dados os valores fornecidos pelo
usuário
Pré-condição RF01_Autenticacao_do_Usuario;
Os campos nome e CPF devem estar preenchidos
Pós-condição Retornar para tela de cadastro com informação de sucesso ou fracasso.
Fonte: Próprio autor (2015)
14

TABELA 44: Requisito funcional RF02_Cadastro_de_Usuarios


Descrição do Requisito RF04_Cadastro_de_Eventos
Função do Requisito Inserir, alterar e excluir cadastros na tabela evento do banco de dados
Valores nome, local, data_evento, duracao, palestras, palestrantes, participantes
Resultados esperados Inserir, alterar ou excluir no banco de dados os valores fornecidos pelo
usuário
Pré-condição RF01_Autenticacao_do_Usuario;
Os campos nome, data, palestrantes e participantes devem estar
preenchidos;
Pós-condição Retornar para tela de cadastro com informação de sucesso ou fracasso.
Fonte: Próprio autor (2015)

TABELA 45: Requisito funcional RF05_Cadastro_de_Participantes


Descrição do Requisito RF05_Cadastro_de_Participantes
Função do Requisito Inserir, alterar e excluir cadastros na tabela participante do banco de
dados
Valores nome, email, CPF
Resultados esperados Inserir, alterar ou excluir no banco de dados os valores fornecidos pelo
usuário
Pré-condição RF01_Autenticacao_do_Usuario;
Os campos nome e CPF devem estar preenchidos
Pós-condição Retornar para tela de cadastro com informação de sucesso ou fracasso.
Fonte: Próprio autor (2015)

TABELA 46: Requisito funcional RF06_Importar_Participantes


Descrição do Requisito RF06_Importar_Participantes
Função do Requisito Importar lista de participantes a partir de documento de planilha de dados
contendo o nome, cpf e email (opcional) dos participantes de um evento
Valores planilha_participantes
Resultados esperados Inserção dos dados da planilha_participantes no banco de dados; caso
algum participante da planilha seja encontrado via CPF no banco de
dados, o sistema o atualizará pelos novos dados contidos na planilha.
Pré-condição RF01_Autenticacao_do_Usuario;
O campo planilha_participante deve estar preenchido com um arquivo de
planilha;
A planilha de dados deve possuir os campos nome e CPF preenchidos
Pós-condição Retornar para tela de cadastro com informação de sucesso ou fracasso.
Fonte: Próprio autor (2015)
15

TABELA 47: Requisito funcional RF07_Confirmar_Presenca


Descrição do Requisito RF07_Confirmar_Presenca
Função do Requisito Confirmar a participação de um participante em uma palestra
Valores Evento, participante, palestra
Resultados esperados Cadastrar no banco de dados se participante compareceu à uma palestra
Pré-condição RF01_Autenticacao_do_Usuario;
Todos os campos devem estar preenchidos
Pós-condição Exibe mensagem sobre a presença do participante
Fonte: Próprio autor (2015)

TABELA 48: Requisito funcional RF08_Consultar_Presenca


Descrição do Requisito RF08_Consultar_Presenca
Função do Requisito Consultar a presença de participantes em uma palestra de um evento
Valores Evento, palestra
Resultados esperados Listar participantes que compareceram à palestra indicada
Pré-condição RF01_Autenticacao_do_Usuario;
Todos os campos devem estar preenchidos
Pós-condição Exibe mensagem sobre a presença do participantes
Fonte: Próprio autor (2015)

TABELA 49: Requisito funcional RF09_Gerar_PDF_Certificado


Descrição do Requisito RF09_Gerar_PDF_Certificado
Função do Requisito Gerar arquivo em PDF do certificado
Valores Palestra, participante ou palestrantre
Resultados esperados Arquivo em PDF do certificado do participante ou palestrante na palestra
Pré-condição RF01_Autenticacao_do_Usuario;
Todos os campos devem estar preenchidos
Pós-condição Exibe mensagem sobre a geração do arquivo PDF
Fonte: Próprio autor (2015)

TABELA 50: Requisito funcional RF10_Enviar_Email_Certificado


Descrição do Requisito RF10_Enviar_Email_Certificado
Função do Requisito Enviar arquivo em PDF do certificado no e-mail de seu proprietário
Valores Arquivo em PDF do certificado (RF09_Gerar_PDF_Certificado),
participante ou palestrantre
Resultados esperados Envio do arquivo em PDF do certificado no e-mail do participante ou
palestrante ao qual pertence
Pré-condição RF01_Autenticacao_do_Usuario;
Todos os campos devem estar preenchidos
Pós-condição Exibe mensagem sobre o envio do certificado para o e-mail
Fonte: Próprio autor (2015)
16

TABELA 51: Requisito funcional RF11_Gerar_Ata_Palestra


Descrição do Requisito RF11_Gerar_Ata_Palestra
Função do Requisito Gerar ata de certificados da palestra selecionada
Valores Palestra
Resultados esperados Registro no sistema da ata dos certificados da palestra selecionada
contendo os campos nome_participante, campo em branco para
assinatura, palestra, evento, data_palestra, total_carga_horaria,
codigo_certificado / ano_evento, folha_registro, livro;
Pré-condição RF01_Autenticacao_do_Usuario;
Palestra deve ser selecionada;
Calculo da posição de cada registro de certificado na ata da palestra de
acordo com RF12_Calcular_Posicao_Registro_Ata;
O valor do codigo_certificado gerado deve ser um número sequencial
calculado a partir do valor inicio_codigo_certificado (valor definido em
RF13_Emitir_Certificado);
O codigo_certificado e livro onde o certificado ficará (valor resgatado a
partir de RF12_Calcular_Posicao_Registro_Ata) devem juntos formar
um valor único em cada livro ata.
Pós-condição Exibe mensagem sobre a geração da ata de certificados e imprime ou
cria arquivo em PDF dela
Fonte: Próprio autor (2015)

TABELA 52: Requisito funcional RF12_Calcular_Posicao_Ata


Descrição do Requisito RF12_Calcular_Posicao _Ata;
Função do Requisito Calcular página em que cada registro da ata de certificados aparecerá
Valores Palestra
Resultados esperados Folha da ata em que cada registro de certificado da palestra constará
Pré-condição RF01_Autenticacao_do_Usuario;
Palestra deve ser selecionada;
O calculo da folha da ata em que cada registro do certificado constará
deve ser feito a partir do fato de que cada folha da ata pode conter 35
registros. A folha é um número sequencial único iniciando-se a partir do
valor inicio_pagina_livro (número obtido pelo RF13_Emitir_Certificado).
Pós-condição Salva folha da ata a qual cada registro de certificado pertence
Fonte: Próprio autor (2015)

TABELA 53: Requisito funcional RF13_Emitir_Certificado


Descrição do Requisito RF13_Emitir_Certificado
Função do Requisito Emite um certificado de cada palestra do evento selecionado para cada
participante da palestra, bem como uma versão do certificado para os
palestrantes.
Valores Evento, palestra, inicio_codigo_certificado, inicio_pagina_livro,
participantes, palestrantes, modelo_certificado, elementos
Resultados esperados Emitir certificado único para cada participante e palestrante da palestra
selecionada;
Caso o usuário tenha selecionado a impressão do certificado, será
impresso via impressora uma cópia dos certificados;
Caso tenha selecionado a opção para gerar PDF o requisito funcional
RF09_Gerar_PDF_Certificado será executado para cada certificado de
cada participante e palestrante da palestra selecionada;
Caso tenha selecionado a opção para enviar por e-mail o requisito
funcional RF10_Enviar_Email_Certificado será executado para cada
certificado de cada participante e palestrante da palestra selecionada;
17

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)

TABELA 54: Requisito funcional RF14_Obter_Proprio_Certificado


Descrição do Requisito RF14_Obter_Proprio_Certificado
Função do Requisito Permite ao próprio visitante do site obter seus certificados de palestras
que tenha participado
Valores CPF
Resultados esperados Caso o visitante tenha selecionado a impressão do certificado, será
impresso via impressora uma cópia do certificado;
Caso tenha selecionado a opção para gerar PDF o requisito funcional
RF09_Gerar_PDF_Certificado será executado para cada certificado de
palestras relacionadas ao participante ou palestrante com o CPF
informado;
Caso tenha selecionado a opção para enviar por e-mail o requisito
funcional RF10_Enviar_Email_Certificado será executado para cada
certificado de palestras relacionadas ao participante ou palestrante com o
CPF informado;
Pré-condição Deve existir um participante ou palestrante no banco de dados com o
CPF informado pelo visitante;
O certificado do participante já deve ter sido emitido por um administrador
do sistema através do RF13_Emitir_Certificado;
Se for um participante, este deve ter tido presença confirmada na
palestra (RF07_Confirmar_Presenca) para obter o certificado.
Pós-condição Exibe mensagem sobre a obtenção do certificado
Fonte: Próprio autor (2015)

TABELA 55: Requisito funcional RF15_Validar_Certificado


Descrição do Requisito: RF15_Validar_Certificado
Função do Requisito Permite ao usuário validar através do código do certificado se o mesmo
foi emitido pela instituição, ou seja, é autêntico.
Valores codigo_certificado
Resultados esperados Mensagem positiva se a codigo_certificado constar no banco de dados
ou mensagem negativa caso não conste
Pré-condição O campo codigo_certificado deve estar preenchido
Pós-condição Exibe mensagem sobre a autenticidade do certificado
Fonte: Próprio autor (2015)
18

A seguir constam os quadros de requisitos não funcionais desta aplicação.


TABELA 56: Requisito não funcional RNF01_Confiabilidade
Descrição do Requisito RNF01_Confiabilidade
Resultados esperados As regiões do sistema que possuem como pré-condição o requisito
funcional RF01_Autenticacao_do_Usuario devem obrigatoriamente ser
acessadas apenas por usuário autenticado
O usuário do tipo administrador possuirá acesso à todas as funções do
sistema;
O usuário padrão apenas poderá gerir a presença de participantes, obter
e validar certificados;
O visitante poderá obter o próprio certificado e validar um existente
Ao realizar a importação de participantes a partir de uma planilha de
dados, o sistema deve verificar pelo CPF se o participante já está
cadastrado no banco de dados, se isso acontecer o sistema deve
substituir os dados armazenados pelas novas informações do
participante contidas na planilha enviada
Durante a emissão dos certificados de uma palestra, os campos livro,
inicio_codigo_certificado e inicio_pagina_livro uma vez cadastrados não
podem ser alterados, apenas visualizados
Ao confirmar a presença do participante em uma palestra
(RF07_Confirmar_Presença), o usuário poderá desfazer esta ação
O sistema não deve expor dados sensíveis à usuários não autenticados
O tempo de resposta do sistema deve ser aceitável para o usuário
O sistema deve ser estável
Fonte: Próprio autor (2015)

TABELA 57: Requisito não funcional RNF02_Portabilidade


Descrição do Requisito RNF02_Portabilidade
Resultados esperados A aplicação deve funcionar em dispositivos com acesso à internet através
de navegadores modernos e atualizados.
O sistema deve ser otimizado para funcionar em telas menores,
especialmente a página de confirmação de presença
O sistema deve funcionar a partir de um servidor com acesso à internet e
que possua apache, php e mysql instalados e atualizados
Fonte: Próprio autor (2015)

TABELA 58: Requisito não funcional RNF03_Viabilidade_Economica


Descrição do Requisito RNF03_Viabilidade_Economica
Resultados esperados A licença de uso da aplicação será livre
Fonte: Próprio autor (2015)

TABELA 59: Requisito não funcional RNF04_Riscos


Descrição do Requisito RNF04_Riscos
Resultados esperados A aplicação pode ficar indisponível por causa de defeitos com servidor ou
falhas na conexão dos dados pela rede física.
Fonte: Próprio autor (2015)

5.4 Banco de Dados


19

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.4.1 Modelagem do Banco de Dados

De acordo com Cardoso e Cardoso (2012, p. 27) para se ter 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,
sendo que atualmente é utilizado como modelo padrão para essa representação o
Modelo Entidade-Relacionamento. A representação gráfica dos diagramadas desse
modelo recebe no nome de DER (Diagrama Entidade-Relacionamento).
Nas páginas seguintes estão os diagramas do modelo entidade-
relacionamento e também o dicionário de dados deste projeto.
20
21

FIGURA 7: Diagrama do modelo conceitual do DER

Fonte: Próprio autor (2015)


22

FIGURA 8: Diagrama do modelo lógico do DER

Fonte: Próprio autor (2015)


23

TABELA 60: Dicionário de dados da tabela usuario


Tabela: usuario
Chave Coluna Tipo Nulo Padrão Comentários
PK id_usuario int(11) Não Auto-incremento
nome varchar(50) Não
email varchar(50) Não Valor único
login varchar(25) Não Valor único
senha varchar(32) Não
0 = comum;
tipo_usuario tinyint(1) Não 0
1 = administrador
Fonte: Próprio autor (2015)

TABELA 61: Dicionário de dados da tabela configuracao


Tabela: configuracao
Chave Coluna Tipo Nulo Padrão Comentários
PK id_configuracao int(11) Não Auto-incremento
nome_instituicao int(11) Sim NULL
imagem_logo varchar(50) Sim NULL
cnpj varchar(20) Sim NULL
telefone varchar(15) Sim NULL
Fonte: Próprio autor (2015)

TABELA 62: Dicionário de dados da tabela evento


Tabela: evento
Chave Coluna Tipo Nulo Padrão Comentários
PK id_evento int(11) Não Auto-incremento
nome varchar(70) Não
local varchar(35) Sim NULL
data date Sim NULL
duracao varchar(20) Sim NULL
Fonte: Próprio autor (2015)

TABELA 63: Dicionário de dados da tabela palestrante


Tabela: palestrante
Chave Coluna Tipo Nulo Padrão Comentários
PK id_palestrante int(11) Não Auto-incremento
nome varchar(50) Não
email varchar(50) Sim NULL
cpf varchar(15) Não Valor único
cargo varchar(50) Sim NULL
imagem_assinatura varchar(50) Sim NULL
Fonte: Próprio autor (2015)
24

TABELA 64: Dicionário de dados da tabela palestra


Tabela: palestra
Chave Coluna Tipo Nulo Padrão Comentários
PK id_palestra int(11) Não Auto-incremento
nome varchar(70) Sim NULL
data date Sim NULL
carga_horaria time Sim NULL
0 = não;
proprio_evento tinyint(1) Não 1
1 = sim
FK id_evento int(11) Não
FK id_modelo_certificado int(11) Não
Fonte: Próprio autor (2015)

TABELA 65: Dicionário de dados da tabela participante


Tabela: participante
Chave Coluna Tipo Nulo Padrão Comentários
PK id_participante int(11) Não Auto-incremento
nome varchar(50) Não
email varchar(50) Sim NULL
cpf varchar(15) Não Valor único
Fonte: Próprio autor (2015)

TABELA 66: Dicionário de dados da tabela palestra_palestrante


Tabela: palestra_palestrante
Chave Coluna Tipo Nulo Padrão Comentários
PK id int(11) Não Auto-incremento
FK id_palestrante int(11) Não
FK id_palestra int(11) Não
FK id_certificado int(11) Sim NULL
Fonte: Próprio autor (2015)

TABELA 67: Dicionário de dados da tabela palestra_participante


Tabela: palestra_participante
Chave Coluna Tipo Nulo Padrão Comentários
PK id int(11) Não Auto-incremento
0 = não;
presenca tinyint(1) Não 0
1 = sim
FK id_participante int(11) Não
FK id_palestra int(11) Não
FK id_certificado int(11) Sim NULL
Fonte: Próprio autor (2015)
25

TABELA 68: Dicionário de dados da tabela modelo_certificado


Tabela: modelo_certificado
Chave Coluna Tipo Nulo Padrão Comentários
PK id_modelo_certificado int(11) Não Auto-incremento
nome varchar(70) Não
texto_participante text Sim NULL
texto_palestrante text Sim NULL
arquivo_css varchar(15) Não padrao
elementos text Não
Fonte: Próprio autor (2015)

TABELA 69: Dicionário de dados da tabela certificado


Tabela: certificado
Chave Coluna Tipo Nulo Padrão Comentários
PK id_certificado int(11) Não Auto-incremento
data_emissao timestamp Não Horário Atual
livro int(11) Não Valor único composto
folha int(11) Não
codigo int(11) Não Valor único composto
FK id_usuario int(11) Não
Fonte: Próprio autor (2015)

5.5 Tecnologias e ferramentas

5.5.1 Linguagem de programação

Ascencio e Campos (2012, p. 2) relatam que para que o computador realize


uma tarefa é necessário que exista um programa ou aplicação, porém esse
programa deve ser criado de forma que o computador consiga executá-lo é
necessário que ele seja escrito através de uma linguagem que tanto o criador quanto
o computador entendam, assim chamada de linguagem de programação.
Existem algumas formas de se pensar o sistema a ser desenvolvido, Ascencio
e Campos (2012, p. 12) citam alguns como o paradigma de programação
estruturado, orientado a objetos, lógico, dentre outros. O paradigma estruturado, por
exemplo, decompõe os problemas em problemas menores que são os métodos a
serem desenvolvidos, já o paradigma de programação orientado a objetos
compreende o problema como uma coleção de objetos que interagem entre si por
meio de mensagens.
26

5.5.2 Framework

A definição de Soares (2009, p. 17) para um framework é a de um conjunto de


ferramentas (classe, módulo, métodos) desenvolvidos para suportar aplicações mais
complexas. Seu objetivo é facilitar a elaboração de um sistema fornecendo um
esqueleto do sistema, ou seja, fornece um sistema básico para que não haja
necessidade de iniciá-lo do zero, portanto permitindo que o desenvolvedor utilize a
maior parte do seu tempo nas tarefas mais complexas do sistema como o
entendimento das regras de negócios e a implementação de algoritmos mais
complexos.

5.5.3 Tecnologias e ferramentas deste projeto

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

O projeto será desenvolvido utilizando-se do banco de dados MySQL por ser


gratuito, por possuir grande integração com a linguagem PHP e por ser compatível
com o framework que será usado. Para facilitar o gerenciamento do banco de dados
será utilizado o SGBD phpMyAdmin.
Com o objetivo de reduzir o tempo de desenvolvimento será utilizado o
framework Phreeze, este é um framework orientado a objetos para o PHP, logo o
desenvolvimento da aplicação será orientada a objetos.
O Phreeze automatiza tarefas de mapeamento do banco de dados para a
aplicação, além de operações de criação, leitura, alteração e exclusão de dados do
banco de dados. O framework também gera uma interface para o usuário baseada
nessas operações o que possibilita que o desenvolvimento seja focado nas regras
de negócio da aplicação e não em códigos repetitivos.
Como a aplicação será implementada em ambiente web também serão
utilizadas as linguagens de marcação HTML 5 (HyperText Markup Language) e de
estilos CSS 3 (Cascading Style Sheets) para renderizar o conteúdo dinâmico gerado
pelo PHP. Para trazer interação do usuário com o sistema será utilizado também a
linguagem de programação Javascript.

5.5.4 UML

A UML (Unified Modeling Language) é "uma linguagem visual para modelar


sistemas computacionais por meio do paradigma de Orientação a Objetos"
(GUEDES, 2007, p. 13). Sendo a linguagem mais usada para esse fim na indústria,
Guedes ainda afirma que a linguagem não é de programação e sim de modelagem
para que se possa definir para os engenheiros de software as características do
software.
A UML Possui diagramas que complementam as visões do software, neste
projeto serão utilizados o Diagramas de Casos de Uso, o Diagrama de Classes e o
Diagrama de Atividade.
Guedes (2007, p. 30) explica que o Diagrama de Casos de Uso é o mais geral
e serve de base para os outros diagramas, ele visa identificar de forma simples os
atores que utilizarão de alguma forma o software e as opções que o sistema
fornecerá a esses atores. O Diagrama de Classes define a estrutura de classes do
sistema, os atributos e métodos de cada classe, além do relacionamento entre elas.
28

Por fim o Diagrama de Atividade preocupa-se em descrever os passos para a


conclusão de uma atividade específica, concentrando-se na representação do fluxo
de controle e no fluxo de objeto de uma atividade.
A seguir é possível visualizar os diagramas da UML criados para dar suporte
a este projeto.
FIGURA 9: Diagrama de Casos de Uso da UML

Fonte: Próprio autor (2015)


29

TABELA 70: Documentação dos Casos de Uso: Atores


Atores
Ator Descrição
Representa o usuário padrão do sistema responsável apenas por
Usuário
gerir a presença dos participantes e emitir certificados
Representa o usuário do sistema com poder total sobre as
Administrador
funções realizadas por ele
Representa o usuário do sistema não autenticado responsável
Visitante
apenas por emitir o próprio certificado ou validar um certificado
Fonte: Próprio autor (2015)

TABELA 71: Documentação dos Casos de Uso: Autenticar Usuário


Nome do Caso de Uso Autenticar Usuário
Caso de Uso Geral
Ator principal Usuário
Atores secundários
Esse caso de uso descreve as etapas percorridas por um
Resumos
usuário para se autenticar no sistema
Pré-condições O usuário deverá estar previamente cadastrado no sistema
Pós-condições Liberar acesso e encaminhar para a tela de administração
Ações do ator Ações do sistema
1. Solicitar opção de autenticação
2. Apresentar tela com os campos login/email e senha para
preenchimento
3. Informar login/email e senha
4 . Confirmar
5. Autenticar usuário
6. Apresentar mensagem de autenticação realizada com
sucesso
Restrições/validações 1. Todos os campos são obrigatórios
Fonte: Próprio autor (2015)
30

TABELA 72: Documentação dos Casos de Uso: Gerir Configuração


Nome do Caso de Uso Gerir Configuração
Caso de Uso Geral
Ator principal Administrador
Atores secundários
Esse caso de uso descreve as etapas percorridas por um
Resumos administrador para alterar as informações de configuração do
sistema
Pré-condições O usuário deve estar autenticado
Pós-condições
Ações do ator Ações do sistema
1. Solicitar opção de gerir
configuração
2. Apresentar tela com os seguintes campos preenchidos com
os dados do usuário selecionado para alteração:
 nome_instituicao
 imagem_logo
 cnpj
 telefone
3. Informar novos dados
4. Confirmar
5. Registrar novos dados
6. Apresentar mensagem de sucesso na alteração dos dados
Restrições/validações 1. O campo nome_instituicao é obrigatório
Fonte: Próprio autor (2015)

TABELA 73: Documentação dos Casos de Uso: Gerir Usuário


Nome do Caso de Uso Gerir Usuário
Caso de Uso Geral
Ator principal Administrador
Atores secundários
Esse caso de uso descreve as etapas percorridas por um
Resumos administrador para inserir, alterar, excluir e consultar usuários no
sistema
Pré-condições O administrador deve estar autenticado
Pós-condições
Ações do ator Ações do sistema
1. Solicitar opção de gerir
usuários
2. Apresentar tela com a listagem dos usuários cadastrados no
sistema com opções de alteração e exclusão deles e também a
opção de inserção de um novo usuário
3 . Inserir informações do usuário
no campo de busca e selecionar a
opção buscar
4. Filtrar os usuários listados a partir dos termos de busca
fornecidos
5. Selecionar opção de alterar um
usuário da listagem
31

6. Apresentar tela com os seguintes campos preenchidos com


os dados do usuário selecionado para alteração:
 nome
 email
 login
 senha
 confirmar_senha
 tipo_usuario (comum ou administrador)
7. Informar novos dados
8. Confirmar
9. Registrar novos dados
10. Apresentar mensagem de sucesso na alteração dos dados
1. Todos os campos são obrigatórios
2. O campo senha e confirmar senha devem possuir o mesmo
valor
3. Um administrador não pode alterar seu próprio tipo_usuario
Restrições/validações para usuário padrão
4. Não é permitido mais de um usuário com o mesmo login ou
email
5. O campo senha deve ser registrado pelo sistema de forma
criptografada
11. Selecionar opção de exclusão
de um usuário da listagem
12. Apresentar mensagem de confirmação de exclusão do
usuário
13. Confirmar
14. Registrar exclusão
15. Apresentar mensagem de sucesso na exclusão
1. O usuário a ser excluído deve estar cadastrado no sistema
Restrições/validações 2. Não é possível excluir o usuário caso ele seja o único
administrador do sistema
16. Selecionar opção de inserir
novo usuário
17. Apresentar tela com os seguintes campos para
preenchimento:
 nome
 email
 login
 senha
 confirmar_senha
 tipo_usuario (comum ou administrador)
18. Informar dados
19. Confirmar
20. Registrar novos dados
21. Apresentar mensagem de sucesso na inserção dos dados
1. Todos os campos são obrigatórios
2. O campo senha e confirmar senha devem possuir o mesmo
Restrições/validações valor
3. Não é permitido mais de um usuário com o mesmo login ou
email
32

Fonte: Próprio autor (2015)

TABELA 74: Documentação dos Casos de Uso: Gerir Palestrante


Nome do Caso de Uso Gerir Palestrante
Caso de Uso Geral
Ator principal Administrador
Atores secundários
Esse caso de uso descreve as etapas percorridas por um
Resumos administrador para inserir, alterar, excluir e consultar
palestrantes no sistema
Pré-condições O administrador deve estar autenticado
Pós-condições
Ações do ator Ações do sistema
1. Solicitar opção de gerir
palestrantes
2. Apresentar tela com a listagem dos palestrantes cadastrados
no sistema com opções de alteração e exclusão deles e também
a opção de inserção de um novo palestrante
3 . Inserir informações do
palestrante no campo de busca e
selecionar a opção buscar
4. Filtrar os palestrantes listados a partir dos termos de busca
fornecidos
5. Selecionar opção de alterar um
palestrante da listagem
6. Apresentar tela com os seguintes campos preenchidos com os
dados do palestrante selecionado para alteração:
 nome
 email
 cpf
 cargo
 imagem_assinatura
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 palestrante com o mesmo cpf
11. Selecionar opção de exclusão
de um palestrante 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 palestrante a ser excluído deve estar cadastrado no sistema
Restrições/validações 2. Não é possível excluir o palestrante do sistema caso ele
esteja associado a algum evento
16. Selecionar opção de inserir
novo palestrante
33

17. Apresentar tela com os seguintes campos para


preenchimento:
 nome
 email
 cpf
 imagem_assinatura
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 palestrante com o mesmo cpf
Fonte: Próprio autor (2015)

TABELA 75: Documentação dos Casos de Uso: Gerir Evento


Nome do Caso de Uso Gerir Evento
Caso de Uso Geral
Ator principal Administrador
Atores secundários
Esse caso de uso descreve as etapas percorridas por um
Resumos administrador para inserir, alterar, excluir e consultar eventos no
sistema
Pré-condições O administrador deve estar autenticado
Pós-condições
Ações do ator Ações do sistema
1. Solicitar opção de gerir eventos
2. Apresentar tela com a listagem dos eventos cadastrados no
sistema com opções de alteração e exclusão deles e também a
opção de inserção de um novo evento
3 . Inserir informações do evento
no campo de busca e selecionar a
opção buscar
4. Filtrar os eventos listados a partir dos termos de busca
fornecidos
5. Selecionar opção de alterar um
evento da listagem
6. Apresentar tela com os seguintes campos preenchidos com
os dados do evento selecionado para alteração:
 nome
 local
 data
 duracao
 palestras
 participantes
7. Informar novos dados
8. Confirmar
9. Registrar novos dados
10. Apresentar mensagem de sucesso na alteração dos dados
1. Os campos nome, data e palestrantes são obrigatórios
Restrições/validações
2. O evento deve possuir pelo menos uma palestra
34

3. As palestras devem estar previamente cadastradas no


sistema
3. Os participantes devem estar previamente cadastrados no
sistema
11. Selecionar opção de exclusão
de um evento da listagem
12. Apresentar mensagem de confirmação de exclusão do
evento
13. Confirmar
14. Registrar exclusão
15. Apresentar mensagem de sucesso na exclusão
1. O evento a ser excluído deve estar cadastrado no sistema
Restrições/validações 2. Não é possível excluir o evento do sistema caso ele esteja
associado a alguma palestrante ou participantes
16. Selecionar opção de inserir
novo evento
17. Apresentar tela com os seguintes campos para
preenchimento:
 nome
 local
 data
 duracao
 palestras
 participantes
18. Informar dados
19. Confirmar
20. Registrar novos dados
21. Apresentar mensagem de sucesso na inserção dos dados
1. O campo nome é obrigatório
2. O evento deve possuir pelo menos uma palestra que pode
Restrições/validações levar o próprio nome do evento
3. Os participantes devem estar previamente cadastrados no
sistema
Fonte: Próprio autor (2015)

TABELA 76: Documentação dos Casos de Uso: Gerir Palestra


Nome do Caso de Uso Gerir Palestra
Caso de Uso Geral
Ator principal Administrador
Atores secundários
Esse caso de uso descreve as etapas percorridas por um
Resumos administrador para inserir, alterar, excluir e consultar palestras
de eventos no sistema
O administrador deve estar autenticado;
Pré-condições
O administrador deve selecionar um evento
Pós-condições
Ações do ator Ações do sistema
1. Solicitar opção de gerir
palestras
2. Apresentar tela com a listagem das palestras cadastradas no
35

sistema de acordo com o evento com opções de alteração e


exclusão deles e também a opção de inserção de um novo
evento
3. Selecionar opção de alterar
uma palestra da listagem
4. Apresentar tela com os seguintes campos preenchidos com
os dados da palestra selecionada para alteração:
 nome
 carga_horaria
 data
 palestrante
5. Informar novos dados
6. Confirmar
7. Registrar novos dados
8. Apresentar mensagem de sucesso na alteração dos dados
1. O campo palestrante é obrigatório
2. Se o nome da palestra estiver vazio, o evento será tratado
Restrições/validações
como uma palestra
3. O palestrante deve estar previamente cadastrado no sistema
9. Selecionar opção de exclusão
de uma palestra da listagem
10. Apresentar mensagem de confirmação de exclusão da
palestra
11. Confirmar
12. Registrar exclusão
13. Apresentar mensagem de sucesso na exclusão
1. A palestra a ser excluída deve estar cadastrado no sistema
Restrições/validações 2. Não é possível excluir uma palestra do sistema caso ela
esteja associada a presença de algum participante
14. Selecionar opção de inserir
nova palestra
15. Apresentar tela com os seguintes campos para
preenchimento:
 nome
 carga_horaria
 data
 palestrante
16. Informar dados
17. Confirmar
18. Registrar novos dados
19. Apresentar mensagem de sucesso na inserção dos dados
1. O campo palestrante é obrigatório
2. Se o nome da palestra estiver vazio, a palestra receberá o
Restrições/validações
nome do próprio evento
3. O palestrante deve estar previamente cadastrado no sistema
Fonte: Próprio autor (2015)

TABELA 77: Documentação dos Casos de Uso: Gerir Participante


Nome do Caso de Uso Gerir Participante
Caso de Uso Geral
36

Ator principal Administrador


Atores secundários
Esse caso de uso descreve as etapas percorridas por um
Resumos administrador para inserir, alterar, excluir, importar e consultar
participantes no sistema
Pré-condições O administrador deve estar autenticado
Pós-condições
Ações do ator Ações do sistema
1. Solicitar opção de gerir
participantes
2. Apresentar tela com a listagem dos participantes cadastrados
no sistema com opções de alteração e exclusão deles e também
a opção de inserção de novos participantes
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
37

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)

TABELA 78: Documentação dos Casos de Uso: Gerir Presença


Nome do Caso de Uso Gerir Presença
Caso de Uso Geral
Ator principal Usuário
Atores secundários
Esse caso de uso descreve as etapas percorridas por um
Resumos usuário para confirmar a presença de participante à uma
palestra de um evento
Pré-condições O usuário deve estar autenticado
Confirmar presença de participante em uma palestra de um
Pós-condições
evento
Ações do ator Ações do sistema
1. Solicitar opção de gerir
presenças
2. Apresentar tela com a listagem de eventos e suas respectivas
palestras cadastrados no sistema
3. Selecionar palestra de evento
4. Apresentar tela com a listagem de participantes do evento
selecionado
5. Inserir informações do
participante no campo de busca e
selecionar a opção buscar
6. Filtrar os participantes listados a partir dos termos de busca
fornecidos
7. Selecionar opção de confirmar
presença de um ou vários
participantes listados
8. Confirmar
9. Registrar dados
10. Apresentar mensagem de sucesso na inserção dos dados
38

1. As palestras dos eventos deverão estar previamente


cadastradas no sistema
Restrições/validações 2. O participante deverá estar previamente cadastrado no
sistema
3. O participante deverá estar associado ao evento selecionado
11. Solicitar opção de visualizar
presenças
12. Apresentar tela com a listagem de eventos e suas
respectivas palestras cadastrados no sistema
13. Selecionar palestra de evento
14. Apresentar tela com a listagem de participantes com
presença confirmada na palestra selecionada
1. As palestras dos eventos deverão estar previamente
cadastradas no sistema
2. O participante deverá estar previamente cadastrado no
Restrições/validações
sistema
3. O participante deverá estar com a presença confirmada na
palestra selecionada
Fonte: Próprio autor (2015)

TABELA 79: Documentação dos Casos de Uso: Emitir Certificado


Nome do Caso de Uso Emitir Certificado
Caso de Uso Geral
Ator principal Administrador
Atores secundários
Esse caso de uso descreve as etapas percorridas por um
Resumos usuário para emitir os certificados dos participantes de um
evento
Pré-condições O administrador deve estar autenticado
Caso o usuário tenha selecionado a impressão do certificado,
será impresso via impressora uma cópia dos certificados;
Caso tenha selecionado a opção para gerar PDF, será gerado
Pós-condições um arquivo em PDF de cada certificado emitido;
Caso tenha selecionado a opção para enviar por e-mail, os
certificados em PDF serão enviado para os emails dos
participantes do evento
Ações do ator Ações do sistema
1. Solicitar opção de emitir
certificados
2. Apresentar tela com a listagem de eventos cadastrados no
sistema
3. Selecionar evento
4. Apresentar tela com os seguintes campos:
 modelo_do_certificado
 texto_participante
 texto_palestrante
 inicio_codigo_certificado
 livro
 inicio_pagina_livro
5. Informar dados
39

6. Exibe o modelo de certificado a ser gerado utilizando como


parâmetros as informações dos campos enviados, além de
informações do evento selecionado e suas palestras,
informações dos palestrantes e um participante de exemplo
7. Adicionar, remover ou
reorganizar itens do certificado
8. Confirmar
9. Registrar dados do modelo e do certificados
10. Registrar todos os certificados do evento
11. Apresentar tela com a listagem de participantes do evento
selecionado com as seguintes opções de emissão dos
certificados:
 Imprimir;
 Gerar PDF;
 Enviar por e-mail
12. Selecionar participantes e as
opções de emissão dos
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)
40

TABELA 80: Documentação dos Casos de Uso: Obter Certificado


Nome do Caso de Uso Obter Certificado
Caso de Uso Geral
Ator principal Visitante
Atores secundários
Esse caso de uso descreve as etapas percorridas por um
Resumos visitante para obter certificados de um participante ou
palestrante
Pré-condições
Caso o visitante tenha selecionado a impressão do certificado,
será impresso via impressora uma cópia do certificado do
participante;
Caso o visitante tenha selecionado a opção para gerar PDF,
Pós-condições
será gerado um arquivo em PDF do certificado;
Caso o visitante tenha selecionado a opção para enviar por e-
mail, o certificado em PDF será enviado para o email do
participante ou palestrante;
Ações do ator Ações do sistema
1. Solicitar opção de obter
certificados
2. Apresentar tela com o campo CPF do participante/palestrante
3. Informar CPF
4. Confirmar
5. Apresentar tela com informações do participante ou
palestrante selecionado via CPF e informações das palestras em
que participou, com as seguintes opções de emissão dos
certificados:
 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)
41

TABELA 81: Documentação dos Casos de Uso: Validar Certificado


Nome do Caso de Uso Validar Certificado
Caso de Uso Geral
Ator principal Visitante
Atores secundários
Esse caso de uso descreve as etapas percorridas por um
Resumos
visitante para validar se um certificado foi emitido pelo sistema
Pré-condições
Exibir informações do certificado associado ao
Pós-condições
codigo_certificado e livro informado pelo visitante
Ações do ator Ações do sistema
1. Solicitar opção de validar
certificado
2. Apresentar tela com os campos
 codigo_certificado
 livro
3. Informar dados
4. Confirmar
5. Verificar se existe um registro no banco de dados de acordo
com os dados informados
6. Apresentar mensagem de sucesso na validação do certificado
1. O codigo_certificado deve ser um código válido
Restrições/validações 2. A junção do codigo_certificado com o livro devem formar um
código único no sistema
Fonte: Próprio autor (2015)
42

FIGURA 10: Diagrama de Classes da UML

Fonte: Próprio autor (2015)


43

Nos diagramas de atividades a seguir são esquematizadas as principais


atividades realizadas pelo sistema, a saber, são as funções de gestão de presença e
a função de emissão de certificados.

FIGURA 11: Diagrama de Atividade da UML - Gerir Presença

Fonte: Próprio autor (2015)


44

FIGURA 12: Diagrama de Atividade da UML - Emitir Certificados

Fonte: Próprio autor (2015)

6 MÉTODOS

Segundo Pressman (1995, p. 32) as tarefas para o desenvolvimento de um


software e a forma como elas serão executadas constituem paradigmas de
engenharia de software, sendo que o paradigma de desenvolvimento deve ser
escolhido com base na natureza da aplicação.
Sommerville (2011, p. 43) aponta que independente do paradigma de
desenvolvimento escolhido, todos eles possuem atividades fundamentais comuns,
45

como: a especificação de software, o projeto e a implementação, a validação de


software e a evolução de software.
Sommerville (2011, p. 44) expõe que as fases do modelo cascata são
sequenciais e encadeadas, ou seja, cada fase deve ser finalizada para que a
próxima seja executada. Sommerville cita o modelo evolucionário onde o
desenvolvimento parte de uma etapa simplificada e é incrementado a partir do
feedback do cliente ao longo do processo de criação, portanto o cliente participa
ativamente de todos os processos.
De acordo com Pressman (1995, p. 32) o modelo Cascata pode ser dividido
nas seguintes fases:
 Fase de análise de requisitos de software: coleta de dados para
compreender o funcionamento e necessidades;
 Fase de projeto: documentação do que virá a ser o software;
 Fase de codificação: tradução do projeto de software para a linguagem
de máquina;
 Fase de Testes: fase de verificação as ações realizadas pelo software
condizem com os resultados esperado;
 Manutenção: mudanças e correções do software após sua entrega
para o cliente.
Devido a necessidade de um projeto sólido que já contenha todos os
requisitos da aplicação a ser desenvolvida o modelo evolucionário foi descartado e o
modelo cascata foi escolhido para o desenvolvimento deste projeto por vir ao
encontro das propostas de se obter um software robusto, confiável e coerente com
os anseios da instituição.
O estágio atual do projeto possui a estrutura próxima à composição final da
aplicação, sendo que as próximas etapas serão focadas nas fases de
desenvolvimento do software em si, ou seja, codificação, testes e manutenção.
Durante a fase de análise foram realizadas entrevistas com o gerente do setor
de pesquisa e extensão da FAROL, onde foi possível identificar os requisitos e
funcionalidades da aplicação desejada e através dos dados colhidos tornou-se
possível também a elaboração do projeto de software. O paradigma de programação
utilizado é a orientação a objetos, este é auxiliado pelos diagramas da UML, tais
diagramas também estão contidos no projeto.
46

O próximo semestre será dedicado às etapas de codificação, testes e


manutenção da aplicação, a qual será desenvolvida utilizando-se os softwares e
tecnologias mencionados no referencial teórico.
47

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

Não haverão custos adicionais para o desenvolvimento da aplicação deste projeto,


haja vista que serão utilizadas ferramentas de desenvolvimento baseadas na
filosofia do software livre gratuitas.
REFERÊNCIAS

ALVES, William Pereira. Fundamentos de Bancos de Dados. São Paulo: Érica, 2004.

ASCENCIO, Ana Fernanda Gomes; CAMPOS, Edilene Aparecida Veneruchi de.


Fundamentos da programação de computadores: algoritmos, Pascal, C/C++
(Padrão ANSI) e Java. 3 ed. São Paulo: Pearson, 2012.

BATISTA, Emerson de Oliveira. Sistemas de Informação: o uso consciente da


tecnologia para o gerenciamento. São Paulo: Saraiva, 2006.

BIO, Sérgio Rodrigues. Sistemas de Informação: um enfoque gerencial. 2. ed. São


Paulo: Atlas, 2008.

CARDOSO, Virgínia; CARDOSO, Giselle. Sistema de banco de dados: uma


abordagem introdutória e aplicada. São Paulo: Saraiva, 2012.

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.

GUEDES, Gilleanes T. A. UML 2: guia prático. São Paulo: Novatec, 2007.

GUIMARÃES, Célio Cardoso. Fundamentos de banco de dados: modelagem,


projeto e linguagem. Campinas: Unicamp, 2003.

O'BRIEN, James A. Sistemas de Informação e as decisões gerenciais na era da


Internet. 2. ed. São Paulo: Saraiva, 2004.

POMPILHO, S. Análise Essencial: guia prático de análise de sistemas. Rio de


Janeiro: Ciência Moderna, 2002.

POTENCIER, Fabien. PHP is much better than you think. Disponível em: <PHP is
much better than you think>. Acesso em: 03 mai. 2015.

PRESSMAN, Roger S. Engenharia de Software. São Paulo: Makron Books, 1995.

SOARES, Wallace. Crie um framework para Sistemas Web com PHP 5 e AJAX. São
Paulo: Érica, 2009.

SOMMERVILLE, Ian. Engenharia de Software. 9. ed. São Paulo: Pearson, 2011.

TONSIG, Sérgio Luiz. Engenharia de Software: análise e projeto de sistemas. 2. ed.


Rio de Janeiro: Ciência Moderna, 2008.

VELLOSO, Fernando de Castro. Informática: Conceitos Básicos. 7. ed. Rio de


Janeiro: Elsevier, 2004.

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

Você também pode gostar