Upload
others
View
1
Download
0
Embed Size (px)
Citation preview
UNIVERSIDADE TECNOLOGICA FEDERAL DO PARANACURSO DE TECNOLOGIA EM SISTEMAS PARA INTERNET
LUCAS ANTONIO RAMOS SARTORI
SISTEMA DE GERENCIAMENTO DE LICENCAS DE POSSE E
PORTE DE ARMAS DE FOGO
TRABALHO DE CONCLUSAO DE CURSO
GUARAPUAVA2018
LUCAS ANTONIO RAMOS SARTORI
SISTEMA DE GERENCIAMENTO DE LICENCAS DE POSSE E
PORTE DE ARMAS DE FOGO
Monografia de Trabalho de Conclusao de Curso de graduacao,
apresentado a disciplina de Trabalho de Conclusao de Curso 2
do Curso Superior de Tecnologia em Sistemas para a Internet -
TSI da Universidade Tecnologica Federal do Parana - UTFPR
- Campus Guarapuava, como requisito parcial para obtencao
do tıtulo de Tecnologo em Sistemas para a Internet.
Orientador: Prof. Me. Guilherme da Costa SilvaUTFPR
Coorientador: Prof. Dr. Roni Fabio BanaszewskiUTFPR
GUARAPUAVA2018
Ministério da EducaçãoUniversidade Tecnológica Federal do ParanáCâmpus GuarapuavaCurso Superior de Tecnologia em Sistemas para Internet
ATA DE DEFESA DE MONOGRAFIA DE TRABALHO DE CONCLUSÃO DE CURSO DO CURSODE TECNOLOGOIA EM SISTEMAS PARA INTERNET
No dia 19 de junho de 2018, às 16:00 horas, em sessão pública nas dependências da Universidade Tecnológica Federaldo Paraná Câmpus Guarapuava, ocorreu a banca de defesa da de Trabalho de Conclusão de Curso intitulada:“Sistemas para Gerenciamento de Licenças de Posse e Porte de Armas de Fogo” do acadêmico Lucas AntonioRamos Sartori sob orientação do professor Prof. Me. Guilherme da Costa Silva do curso de Tecnologia em Sistemaspara Internet.
Banca Avaliadora
Membro Nome
Orientador Prof. Me. Guilherme da Costa Silva
Coorientador Prof. Dr. Roni Fabio Banaszewski
Avaliador 1 Prof. Dr. Paulo Henrique Soares
Avaliador 2 Prof. Me. Paulo André Filipak
Situação do Trabalho
Situação ( x ) Aprovado( ) Aprovado com ressalvas( ) Reprovado( ) Não compareceu
Encaminhamento do trabalhopara biblioteca
( x ) Autoriza o encaminhado para biblioteca( ) Manter sigilo para publicação ou geração de patente
Guarapuava, 19 de junho de 2018.
A folha de aprovação assinada encontra-se na coordenação do curso (ou programa).
AGRADECIMENTOS
Agradeco a mulher da minha vida Natanaiah Graciele Alves que me aguentou mesmo
estando longe, dando seu apoio da forma que podia, motivando, ouvindo.
Agradeco a minha famılia por ter me apoiado sempre que necessitei, em especial minha
avo Maria Zelia Sartori que foi quem me educou fazendo eu ser a pessoa que sou hoje em dia.
Devo um agradecimento especial ao meu professor orientador Guilherme da Costa
Silva e ao meu professor coorientador Roni Fabio Banaszewski pela paciencia e auxılio sempre
que necessario que dispuseram no decorrer deste trabalho, e agradeco tambem aos outros
professores que me permitiram ter a base necessaria para poder desenvolver este trabalho.
Agradeco aos meus amigos e amigas por todo o apoio durante meu trajeto nesta
graduacao, desde as cervejas nos fins de semanas, brincadeiras, e suas crıticas construtivas.
Agradeco a ONG Instituto Defesa e a Academia Brasileira de Armas por contribuir
nos testes do sistema bem como sua divulgacao com outras organizacoes armamentistas.
Agradeco a Universidade Tecnologica Federal do Parana por prover todo o recurso
necessario para auxiliar em meu desenvolvimento profissional e pessoal.
O mundo esta cheio com a violencia. Ja que oscriminosos carregam armas, nos, cidadaos obe-dientes a lei, tambem devemos ter armas. Casocontrario eles vencerao, e as pessoas decentesperderao (James Earl Jones).
RESUMO
SARTORI, Lucas A. R.. SISTEMA DE GERENCIAMENTO DE LICENCAS DE POSSE EPORTE DE ARMAS DE FOGO. 2018. 30 f. Trabalho de Conclusao de Curso – Curso de Tecno-logia em Sistemas para Internet, Universidade Tecnologica Federal do Parana. Guarapuava, 2018.
Atualmente, devido a falta de um sistema automatizado e a burocracia, todo o processo para seobter uma licenca de arma de fogo e de valor financeiro elevado para grande parte da populacao.Em paıses como Estados Unidos da America e Canada, existem sistemas automatizadosrelacionados ao controle de licencas de armas de fogo e sem um custo tao elevado tanto parao estado quanto para o cidadao comum, envolvendo taxas a serem pagas, emissao de novosdocumentos, tempo, etc. O sistema proposto visa agilizar o processo para se obter as licencasde posse e porte de armas. Os usuarios com antecedentes criminais serao barrados apos ocadastro e impedidos de obterem licencas tanto de posse quanto de porte de armas. Apos averificacao, o usuario podera entao agendar os exames exigidos. O usuario que passar em todosos exames podera imprimir a sua licenca em sua residencia, constando um numero de seriepara verificar sua autenticidade, renova-la e dar entrada em outras licencas como a de CacadorAtirador Colecionador.Palavras-chave: Armas de fogo. Sistema de armas. Sistema de computacao.
ABSTRACT
SARTORI, Lucas A. R.. SYSTEM OF MANAGEMENT OF LICENSES OF HOLDING ANDWEAR OF FIREARMS. 2018. 30 f. Trabalho de Conclusao de Curso – Curso de Tecnologia emSistemas para Internet, Universidade Tecnologica Federal do Parana. Guarapuava, 2018.
Currently, due to the lack of an automated system and bureaucracy, the whole process ofobtaining a firearm license is a high financial value for a large part of the population. Incountries such as America and Canada, there are automated systems related to the controlof firearms licenses and without such a high cost for the state as the nation, shipping fees,paging, issuance of new documents, time The visa system expedite the process acquisition oflicenses and possession of weapons. Users with criminal records must register and register withthe intent to obtain both power and postage of arms. After verification, the user can thenschedule the required exams. The user who passes through all the works can print his license inhis residence, being a serial number to verify its authenticity, to renew and to enter in otherlicenses like a Sniper Hunter Collector.Keywords: Firearms. Weapons system. Computer system.
LISTA DE FIGURAS
Figura 1 – Diagrama de Casos de Uso . . . . . . . . . . . . . . . . . . . . . . . . . . 13
Figura 2 – Diagrama de Classe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
Figura 3 – Diagrama de atividades . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
Figura 4 – Modelagem do banco de dados . . . . . . . . . . . . . . . . . . . . . . . 17
Figura 5 – Comunicacao entre as ferramentas do sistema . . . . . . . . . . . . . . . . 18
Figura 6 – Tela: cadastro usuario . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
Figura 7 – Tela: login . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
Figura 8 – Iniciar Licenca . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
Figura 9 – Tela: agendamento de exame . . . . . . . . . . . . . . . . . . . . . . . . 21
Figura 10 – Tela: avaliacao do exame . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
Figura 11 – Exames realizados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
Figura 12 – Tela: emitir e imprimir a licenca . . . . . . . . . . . . . . . . . . . . . . . 24
Figura 13 – Tela: validacao da licenca sem estar logado . . . . . . . . . . . . . . . . . 24
Figura 14 – Documento protocolado na delegacia . . . . . . . . . . . . . . . . . . . . 30
LISTA DE ABREVIATURAS E SIGLAS
AJAX Javascript Assıncrono e XML (do ingles Asynchronous Javascript and XML)
CAC Cacador Atirador Colecionador
CR Certificado de Registro
CSS Folhas de estilo em cascata (do ingles Cascading Style Sheets)
DPF Delegacia de Polıcia Federal
EUA Estados Unidos da America
ES ECMAScript
FFL Licenciados federais de armas de fogo(do ingles Federal Firearms Licensees)
HTML Linguagem de Marcacao para Hipertexto (do ingles HyperText Markup
Language)
HTTP Protocolo de Transferencia de Hipertexto (do ingles HyperText Transfer
Protocol)
IDE Ambiente de Desenvolvimento Integrado (do ingles Integrated Development
Environment)
IIS Servicos de informacao da Internet (do ingles Internet Information Services)
JEE Plataforma Java Edicao Empresarial (do ingles Java Enterprise Edition)
JPA (do ingles Java Persistence API)
JSON Notacao de Objetos JavaScript) (do ingles JavaScript Object Notation)
JVM Maquina Virtual Java (do ingles Java Virtual Machine)
NICS Sistema Nacional de Checagem de Antecedentes Criminais Instantaneo(do
ingles National Instant Criminal Background Check System)
OWASP Projeto Aberto de Seguranca em Aplicacoes Web (do ingles Open Web
Application Security Project)
PL Projeto de Lei
REST Transferencia de Estado Representacional (do ingles Representational State
Transfer)
SASS folhas de estilo sintaticamente incrıveis (do ingles Syntactically Awesome
StyleSheets)
SGBD Sistema de Gerenciamento de Banco de Dados (do ingles Data Base Mana-
gement System)
SQL Linguagem de consulta estruturada (do ingles Structured Query Language)
TS TypeScript
UTFPR Universidade Tecnologica Federal do Parana
SUMARIO
1 – INTRODUCAO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.1 OBJETIVOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.1.1 OBJETIVO GERAL . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.1.2 OBJETIVO ESPECIFICO . . . . . . . . . . . . . . . . . . . . . . . 2
1.2 JUSTIFICATIVA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
2 –METODOLOGIA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.1 TRABALHOS RELACIONADOS . . . . . . . . . . . . . . . . . . . . . . . 3
2.1.1 ANTECEDENTES CRIMINAIS . . . . . . . . . . . . . . . . . . . . 3
2.1.2 NICS - NATIONAL INSTANT CRIMINAL BACKGROUND CHECK
SYSTEM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.1.3 CANADIAN FIREARMS PROGRAM . . . . . . . . . . . . . . . . . 4
2.1.4 TABELA COMPARATIVA . . . . . . . . . . . . . . . . . . . . . . . 4
2.2 TECNOLOGIAS UTILIZADAS . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.2.1 HTML E CSS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.2.1.1 SASS . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.2.2 ECMASCRIPT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.2.2.1 TYPESCRIPT . . . . . . . . . . . . . . . . . . . . . . . . 6
2.2.3 ANGULAR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.2.3.1 ANGULAR MATERIAL2 . . . . . . . . . . . . . . . . . . 6
2.2.4 JAVA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.2.4.1 MAVEN . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.2.4.2 JPA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.2.4.3 KOTLIN . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.2.4.4 HIBERNATE . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.2.5 JAVAEE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.2.5.1 JAX-RS . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.2.5.2 WILDFLY . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.2.6 ARQUITETURA REST . . . . . . . . . . . . . . . . . . . . . . . . 8
2.2.7 SEGURANCA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.2.7.1 ARGON 2 . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.2.7.2 AUTENTICACAO BASEADA EM TOKEN . . . . . . . . . 9
2.2.8 MYSQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.2.9 TECNOLOGIAS AUXILIARES . . . . . . . . . . . . . . . . . . . . . 9
2.2.10 FERRAMENTAS AUXILIARES . . . . . . . . . . . . . . . . . . . . 10
2.2.10.1 INTELLIJ IDEA ULTIMATE . . . . . . . . . . . . . . . . 10
3 –DESENVOLVIMENTO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
3.1 LEVANTAMENTO DOS REQUISITOS . . . . . . . . . . . . . . . . . . . . 11
3.1.1 REQUISITOS NAO FUNCIONAIS . . . . . . . . . . . . . . . . . . . 11
3.1.2 REQUISITOS FUNCIONAIS . . . . . . . . . . . . . . . . . . . . . . 11
3.2 MODELAGEM DO SISTEMA . . . . . . . . . . . . . . . . . . . . . . . . . 12
3.2.1 CASOS DE USO . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
3.2.2 DIAGRAMA DE CLASSES . . . . . . . . . . . . . . . . . . . . . . 13
3.2.3 DIAGRAMA DE ATIVIDADES . . . . . . . . . . . . . . . . . . . . 15
3.3 MODELAGEM DO BANCO DE DADOS . . . . . . . . . . . . . . . . . . . 15
3.4 O SISTEMA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.4.1 PROCESSO PARA OBTENCAO DE LICENCA PELO SISTEMA . . 18
4 –CONCLUSAO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
Referencias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
Apendices 29
APENDICE A–DOCUMENTO ENTREGUE NA DPF DE GUARAPUAVA . 30
1
1 INTRODUCAO
Primeiramente deve-se diferenciar o que e posse e porte de armas. Posse significa
possuir ou manter sob sua guarda arma de fogo, no interior de sua residencia ou dependencia dela,
ou em seu local de trabalho, desde que seja o titular ou o responsavel legal do estabelecimento
ou empresa. Portar alguma coisa significa traze-la consigo. Quando se fala em arma de fogo,
significa traze-la consigo e pronta para o uso (alimentada, municiada, carregada, no coldre ou
nas proprias maos).
Atualmente no Brasil o processo para se obter as licencas de registro de posse e
porte de arma de fogo e burocratico e demorado, principalmente pelo fato da ausencia de
um sistema web integrado. Por exemplo para se obter uma licenca de porte de arma de
fogo, o candidato deve se dirigir a uma delegacia da Polıcia Federal munido dos seguintes
documentos: copias autenticadas ou original de documento de identidade e comprovante
de residencia; declaracao escrita de efetiva necessidade; comprovacao de idoneidade, com
declaracoes negativas de antecedentes criminais fornecidas pela Justica Federal, Estadual,
Militar e Eleitoral; comprovacao de capacidade tecnica e aptidao psicologica; copia do registro
da arma; foto 3x4; e documento comprobatorio de ocupacao lıcita (FEDERAL, 2003b).
Tendo isso em vista, se for comparar o atual sistema brasileiro – ou a ausencia de um
sistema web integrado – com o norte-americano National Instant Criminal Background Check
System ou o canadense Canadian Firearms Program, percebe-se que o brasileiro e estritamente
burocratico e rigoroso para se obter a licenca. Independentemente de ser aprovado ou nao, o
candidato devera esperar no mınimo trinta dias para saber se podera entao se dirigir a uma
loja de armas para comprar a sua, ou se tera que repetir todo o processo e, assim, gastar
mais dinheiro, recorrendo a despachantes. Em cidades menores, apesar de tambem ocorrer
nas grandes metropoles, como exemplo, no interior da Amazonia, muitas vezes as pessoas
tendem a recorrer ao mercado ilegal de armas devido ao custo e burocracia de se ter uma arma
legalizada, alem de que devido a localizacao das cidades, a arma e essencial tanto para sua
alimentacao (caca) quanto para a defesa contra animais perigosos (BARBOSA; QUINTELA,
2015, p. 67-74).
O sistema proposto tem o objetivo de encurtar o prazo deste processo, tendo uma
resposta instantanea e facilitando as demais etapas. Alem disso, um diferencial e que o
desenvolvimento visa atender os requisitos do projeto de lei (PL)3722/12, do deputado Rogerio
Peninha Mendonca, que exclui a exigencia da declaracao de efetiva necessidade e adapta as
demais (MENDONCA, 2012). Caso a PL 3722/12 nao venha a ser aprovado, o sistema sera
adaptado, entao, para a legislacao vigente. O sistema verificara os antecedentes criminais
comunicando-se com os orgaos respectivos, ja negando o pedido caso encontre alguma restricao.
Depois que o usuario for aprovado em todos os exames, sera emitida a licenca para que o
usuario a imprima em sua casa, contendo um numero de serie para a validacao da licenca. A
Capıtulo 1. INTRODUCAO 2
validacao da licenca sera realizada pelo sistema, assim como e feita a validacao de certificados
em geral. Tambem por meio do navegador o usuario podera saber detalhes como: documentos
faltantes, etapa na qual se encontra, se teve pedido deferido ou indeferido. Outra funcionalidade
e a de poder renovar licencas e dar entrada em outras licencas, como a de Cacador Atirador e
Colecionador (CAC), Certificado de Registro (CR), etc.
Devido a falta de um sistema integrado para tal finalidade, o sistema proposto podera
se tornar de grande utilidade, tanto para a propria delegacia, por reduzir a carga de trabalho,
quanto para o usuario. O usuario recebera a resposta em menor tempo, nao precisara mais
recorrer a despachantes e tera, como ja mencionado, os outros servicos pela Internet. O maior
desafio para este projeto sera a grande burocracia que existe para se migrar para o proposto,
ja que seria necessario implanta-lo em todas as delegacias responsaveis ao mesmo tempo –
atualmente sao responsaveis somente as delegacias da Polıcia Federal –, incluindo a necessidade
de autorizacao do governo para implantacao
1.1 OBJETIVOS
1.1.1 OBJETIVO GERAL
Desenvolver sistema web para gerenciamento de licencas de posse e porte de armas
de fogo atendendo ao projeto de lei 3722/12.
1.1.2 OBJETIVO ESPECIFICO
• Desenvolver modulo que cheque os antecedentes criminais do usuario;
• Desenvolver modulo de solicitacao de licencas;
• Desenvolver modulo para a avaliacao dos exames prestados;
• Desenvolver modulo que verifique a validade da licenca;
1.2 JUSTIFICATIVA
Atualmente no Brasil nao existe um sistema integrado para registro e porte de
armas. Um sistema web evitaria extravios de documentos e demoras extensas para se emitir
o resultado. Adicionalmente, um sistema integrado permitiria ao usuario saber quando suas
licencas expiraram e renova-las como no sistema canadense, ou seja, emitindo a licenca – caso
cumpra com os requisitos de registro e porte – e facilitar a aquisicao de outras licencas, como
CAC, CR e demais licencas caso se enquadre nos requisitos necessarios.
Tendo tem vista o que foi dito anteriormente, cabe salientar que um documento
descrevendo o projeto encontra-se protocolado na sede da Delegacia da Polıcia Federal em
Brasılia aguardando o retorno do delegado da mesma. Uma copia do documento encontra-se
no apendice A(pg.30) .
3
2 METODOLOGIA
Neste capıtulo serao abordados de forma breve o que foi realizado e utilizado para o
desenvolvimento do sistema
• Levantamento dos requisitos, revisao bibliografica e definicao das tecnologias: serao coleta-
das todas as informacoes necessarias do site oficial do planalto da lei n o 10.826/2003(RE-
PuBLICA, 2003). Serao estudadas varias tecnologias web para a implementacao do
sistema, como: a linguagem de programacao Java, suas bibliotecas e frameworks web,
HTML, CSS, JavaScript e um banco de dados relacional.
• Modelagem do sistema: com base nos requisitos, serao elaborados os diagramas: classes,
caso de usos, atividade e do banco de dados.
• Implementacao do sistema: Usando as boas praticas de programacao, propostos pelo
padrao SOLID e pelo style guide da linguagem respectiva. Foram implementados dois
sistemas ambos web, onde em um deles o usuario ira realizar as operacoes e outro como
uma API onde ira ter todas as regras de negocio.
2.1 TRABALHOS RELACIONADOS
Entre os sistemas para analise de antecedentes criminais, estao o ”Antecedentes
Criminais”, ”NICS - National Instant Criminal Background Check System”, ”Canadian Fireams
Program”, que serao abordados neste capıtulo, todavia existem outros sistemas com o mesmo
proposito em diversos paıses cada um respeitando suas leis vigentes.
2.1.1 ANTECEDENTES CRIMINAIS
O Antecedentes criminais e um sistema proprio da Polıcia Federal, tendo o acesso
exclusivamente pelo seu site oficial. O sistema constitui-se de um formulario online que apos
preenchido gerara um arquivo no formato PDF declarando se o portador de determinado
documento possui ou nao algum antecedente (FEDERAL, 2003a). O sistema utilizado ate o
momento serve apenas para a emissao de uma certificacao em formato PDF dos antecedentes
dizendo se possui ou nao atos ilegais no nome de determinado indivıduo. Porem para o processo
de registro e porte de armas de fogo e demais licencas serao necessarias outras declaracoes da
mesma finalidade para comprovar que nao foram cometidos crimes federais, estaduais, militares
e eleitorais, vindo entao a gerar certa redundancia de dados que poderiam estar centralizadas. E
atualmente, devido a falta de sistema web integrado em territorio nacional, todas as etapas sao
realizadas por meio do tradicional papel, vindo assim a demorar meses para se ter o resultado.
Capıtulo 2. METODOLOGIA 4
2.1.2 NICS - NATIONAL INSTANT CRIMINAL BACKGROUND CHECK SYSTEM
O sistema empregado nos EUA e o National Instant Criminal Background Check
System (NICS), utilizado pela Federal Firearms Licensees (FFL) para verificar se um potencial
comprador e elegıvel a comprar uma arma de fogo. Antes de se concretizar uma venda, o
vendedor faz uma checagem com o Federal Baureau of Investigation ou com outra agencia
designada, para garantir que cada cliente nao seja inelegıvel a cada compra. Mais de 230
milhoes destas verificacoes foram feitas desde a sua implantacao, levando a 1,3 milhao de
pedidos negados (INVESTIGATION, 1998).
O NICS mostra-se bastante eficaz para o cenario EUA, porem no Brasil existem muitos
outros criterios para se poder adquirir e portar uma arma de fogo, e nao apenas a inexistencia
de antecedentes criminais. Desta forma, caso o sistema fosse empregado em territorio nacional,
deveriam ser adicionadas outras funcionalidades, como o resultado de capacidade tecnica e o
de aptidao psicologica, entre outras.
2.1.3 CANADIAN FIREARMS PROGRAM
Por fim, o terceiro sistema abordado e o canadense intitulado de Canadian Firearms
Program (POLICE, 2008), que consegue ser tao simples quanto o proprio NICS. No sistema
empregado em territorio canadense o indivıduo so precisa ser maior de idade, e caso sejam
apenas licencas para pratica esportiva ou caca, indivıduos de 12 a 17 anos podem conseguir
a licenca e a arma registradas em seu nome. Tambem permite que estrangeiros adquiram a
licenca mesmo sem serem naturalizados canadenses, porem com tempo inferior. Por fim, caso
as licencas estejam proximas de expirar, o usuario podera renova-la e ate atualizar seus dados
online gratuitamente e rapidamente.
Devido ao fato do sistema canadense utilizar apenas como requisito principal a idade
do indivıduo, em territorio nacional ele nao poderia ser empregado. Porem pode-se implementar
uma funcionalidade que o mesmo ja possui, que e a possibilidade de renovar as licencas online
instantaneamente.
2.1.4 TABELA COMPARATIVA
A Tabela1 faz um comparativo entre os sistemas abordados, visando evidenciar as
principais diferencas entre os referidos sistemas.
Capıtulo 2. METODOLOGIA 5
Tabela 1 – Comparativo entre os sistemas brasileiro, americano e canadense
Antecedentes Criminais NICSCanadianFirearmsProgram
Checagem deantecedentes
X X X
Praticidade *Necessita de mais etapas X XVelocidadedo processo
Podendo demorar mesesMaximo 3dias uteis
45 dias
Idade mınima 25 21 12*
RenovacaoDevem ser realizadas todas
as etapas de posse eporte novamente
Nao e necessariaRealizada pelo site,instantaneamente
*Observacoes
*Realiza apenas a checagem deantecedentes,nas demaisetapas tudo devera serrealizado atraves da
protocolacao de documentosfısicos
*Para praticasesportivas. Para
demais oindivıduo deveraser maior de idade
2.2 TECNOLOGIAS UTILIZADAS
Nesta sessao serao abordadas brevemente as tecnologias utilizadas no projeto.
2.2.1 HTML E CSS
HTML e a sigla em ingles para Hyper Text Markup Language, traduzindo para portugues
como linguagem para marcacao de hipertexto. Desenvolvida em 1991 por Sir Tim Berners-Lee,
em conjunto com o surgimento do protocolo HTTP. Por se tratar de uma linguagem de
marcacao, seus desenvolvedores tiveram a preocupacao de retirar qualquer atribuicao ou funcao
de apresentacao. A linguagem HTML permite que durante o desenvolvimento de paginas para
web seja possıvel mesclar HTML com outras linguagens como JAVA, Hypertext Preprocessor –
PHP, dentre outras (SILVA, 2011).
CSS e a abreviacao para o o termo em ingles Cascading Style Sheet, traduzido para o
portugues como folhas de estilo em cascata a(SILVA, 2012, p. 24). CSS e responsavel pela
estilizacao dos elementos como cores, bordas em imagens, fontes, tamanhos de letras e imagens
entre outras customizacoes.
A marcacao HTML tem como finalidade ser uma linguagem exclusivamente de mar-
cacao e estruturacao de conteudos, nao cabendo a ela a responsabilidade de fornecer a
apresentacao de elementos estilizados, como por exemolo cores, tamanhos, e demais aspectos
visuais. E de responsabilidade da CSS toda a apresentacao e estilizacao dos componentes
(SILVA, 2012, p. 25).
Capıtulo 2. METODOLOGIA 6
2.2.1.1 SASS
SASS trata-se de uma extensao ao CSS que permite agilizar o desenvolvimento de
codigos CSS, utilizando uma sintaxe mais elegante e de facil manutencao, permitindo tambem
o uso de variaveis e funcoes (SASS, 2018).
2.2.2 ECMASCRIPT
A linguagem ECMAScript popularmente conhecida por JavaScript desenvolvida por
Brendan Eich surgiu originalmente implementada como parte dos navegadores para carregar os
scripts na maquina do cliente, sem que fosse necessaria sua interacao com o servidor(POWERS,
2010). Atualmente esta na versao ECMAScript 7 (ES7). Entretanto as suas novas funcionalida-
des nao estao implementadas na maioria dos navegadores(LERNER et al., 2016).
2.2.2.1 TYPESCRIPT
Angular possui como linguagem de desenvolvimento o TypeScript, e tambem suporta
JavaScript e Dart. Typescript trata-se apenas de uma linguagem que visa agilizar o desenvolvi-
mento das aplicacoes. Quando o codigo Typescript e compilado gera-se o codigo JavaScript na
versao ES6 para que o navegador possa ler e executar os scripts, esta versao gerada tambem
pode ser configurada nos seus arquivos de configuracao ts (LERNER et al., 2016).
2.2.3 ANGULAR
Angular e um framework javascript que possui como principal contribuidor a Google,
contando inclusive com uma comunidade de indivıduos em seu desenvolvimento. Tem o proposito
de alcancar a velocidade maxima possıvel na plataforma web atual e ir alem via Web Workers,
renderizando ao lado do servidor ao inves do cliente. Permite facil reutilizacao de codigo seja
para aplicacao web, web movel, nativa movel ou desktop(GOOGLE, 2018a).
Angular e responsavel pela renderizacao das telas no navegador do cliente e trabalha
nao apenas Orientado a Objetos mas seu grande diferencial e a Orientacao a Componentes,
permitindo assim uma melhor organizacao e reutilizacao de codigo. Possui uma documentacao
completa em seu site oficial
2.2.3.1 ANGULAR MATERIAL2
O Angular em si nao nos obriga a utilizar determinado framework css, nem mesmo
traz por padrao componentes prontos, e necessario que se crie os componentes que deseja
utilizar.
Tendo isto em mente o Angular Material 2 vem para dar uma impulsionada a mais no
desenvolvimento, pois tras consigo a integracao com o framework Materialize da Google, bem
como, diversos outros componentes ja prontos, tabelas, animacoes e temas (GOOGLE, 2018b).
Capıtulo 2. METODOLOGIA 7
2.2.4 JAVA
A linguagem Java comecou a surgir em 1991 na Sun MicroSystem. Ini-
cialmente era parte de outro projeto, chamado Green Project, que tinha
como objetivo possibilitar a convergencia entre o computador, equipamentos
eletronicos e eletrodomesticos.(MELO; LUCKOW, 2010, p.25-26)
Este projeto acabou resultando em um controle remoto sensıvel ao toque porem nao
durou muito pois estava a frente de seu tempo. Naquele tempo ainda nao se chamava de Java,
mas sim Oak. So em 1995 James Gosling foi encarregado de adaptar a linguagem Oak para a
internet e assim surgindo a plataforma Java.
Uma de suas principais diferencas para as demais linguagens, a plataforma Java e
executada sobre uma JVM, Java Virtual Machine, ou seja qualquer equipamento eletronico que
consiga executar uma JVM e capaz de executar Java e assim justificando seu slogan ”write once,
run anywhere”ou em portugues ”escreva uma vez, rode em qualquer lugar”(MELO; LUCKOW,
2010).
2.2.4.1 MAVEN
Maven trata-se de uma ferramenta que busca auxiliar o desenvolvimento de projetos,
permitindo uma migracao de recursos mais transparente, estrutura separada entre os testes e o
fonte do sistema, sistema de relatorios melhorado (APACHE, 2018).
2.2.4.2 JPA
JPA trata-se de uma especificacao incluıda por padrao na linguagem Java, e tras
consigo diversas regras para se facilitar todas as acoes com o banco de dados, onde cada
framework de persistencia de dados a implementa e a obedece, e caso seja necessaria a
migracao do framework caso a especificacao do JPA tenha sido seguida a migracao entao
ocorrera rapidamente (COELHO, 2013).
2.2.4.3 KOTLIN
Kotlin, uma linguagem de programacao desenvolvida pela empresa Jetbrains, a mesma
autora de incriveis ferramentas como Intellij Idea, Android Studio, Scala. Kotlin veio com o
proposito de auxiliar no desenvolvimento agil com a linguagem Java, claro que seu verdadeiro
poder se destaca em aplicativos Android, porem vem com o objetivo de ir alem pois conse-
gue trabalhar tanto no JavaSE (Desktop) quanto no JavaEE (Java Web) e no JavaScript
(JETBRAINS, 2018).
A linguagem trabalha da seguinte forma, apos o codigo Kotlin ser escrito, este e
compilado para a linguagem java, permitindo o seu total suporte para comunicar codigos Java
com Kotlin e vice-versa, apos isso entao sera tudo compilado como um codigo java normal.
Capıtulo 2. METODOLOGIA 8
2.2.4.4 HIBERNATE
Hibernate e um servico de mapeamento objeto-relacional de peso leve para Java(ELLIOT,
2009), ou seja permite migrar facilmente de Sistema Gerenciador de Banco de Dados(SGBD)
pois o Hibernate fica responsavel pela compatibilidade. Geralmente quando se trabalha com
banco de dados em Java, muitos desenvolvedores optam por colocar todo o codigo SQL dentro
de uma string. Porem quando for necessaria a troca do SGBD o desenvolvedor devera percorrer
cada string e atualiza-la para o novo SGBD a ser utilizado. Com o Hibernate isto nao e
necessario, pois sera realizada a mudanca do banco sem que seja necessaria a alteracao de
nenhuma linha de codigo (ELLIOT, 2009)
2.2.5 JAVAEE
A plataforma Java Enterprise Edition (Java EE), possui o enfoque no desenvolvimento
e com isso tras consigo diversas bibliotecas que permitem o controle de transacoes, desen-
volvimento de API’s RESTFul, seguranca, Injecao de dependencia, processamento de JSON,
frameworks front-end e diversas outras bibliotecas (GUPTA, 2013).
2.2.5.1 JAX-RS
O Jax-rs nada mais e que uma das diversas bibliotecas contidas dentro do JavaEE,
mas com o enfoque no desenvolvimento de API’s REST e em suas novas versoes vem tornando
cada vez mais facil o seu desenvolvimento (GUPTA, 2013).
2.2.5.2 WILDFLY
Quando se trabalha com sistemas web, mais especificamente os desenvolvidos com a
linguagem de programacao Java (GUPTA, 2013) a escolha de um bom servidor deve ser levada
muito a serio devido a toda a infra-estrutura que a linguagem necessita. Tendo isto em mente
temos um servidor de aplicacao chamado Wildfly (HAT, 2018) que vai alem de apenas manter
nosso sistema online, mas tambem com uma seguranca mais robusta, controle automatico das
transacoes realizadas com o banco de dados, alta performance e escalabilidade.
2.2.6 ARQUITETURA REST
Representational State Transfer(REST) e uma arquitetura WebService mais leve e
flexıvel que SOAP, geralmente utilizado com JSON, mas tambem possui suporte para XML e
ate mesmo texto puro. Permite que se trabalhe de forma independente o front-end do back-end
e vise-versa, sera responsavel pela comunicacao (FIELDING, 2000).
Capıtulo 2. METODOLOGIA 9
2.2.7 SEGURANCA
No desenvolvimento de qualquer aplicacao a seguranca e um item indispensavel,
quando se trata de aplicacoes web pode ser insclusive um fator crıtico devido as peculiaridades
destas aplicacoes. Desta forma, como o sistema desenvolvido neste trabalho e web e ainda
manipula informacoes que podem ser consideradas sensıveis e precisam ter a integridade dos
dados preservada, a seguranca torna-se um fator ainda mais relevante.
Para tratar das melhores praticas de seguranca em aplicacoes web existe a OWASP
(OWASP, 2018)que refere-se a um projeto aberto que informa sobre todas as formas de ataques
em aplicacoes, bem como, as melhores praticas para a sua prevencao.
2.2.7.1 ARGON 2
No mundo de criptografia existem diversos algoritmos que realizam esta acao, alguns
apenas criptografam senhas porem ainda permitem a sua recuperacao, outros criam hashs
quase impossıveis de se recuperar e o Argon (P-H-C, 2018) e um destes algoritmos de hashing,
porem com um diferencial, foi o algoritmo campeao da competicao de hashing(HASHING,
2018) ) e o mais recomendado algoritmo de criptografia pela OWASP (OWASP, 2018).
2.2.7.2 AUTENTICACAO BASEADA EM TOKEN
Como na arquitetura REST nao devem existir sessoes e sim autenticacao, os usuarios
que irao utilizar determinada API deverao informar a sua autenticidade por meio de ”tokens”que
nada mais sao que chaves de acesso criptografadas que deverao constar dentro do header da
requisicao (AUTH0, 2018b)
2.2.8 MYSQL
MySQL e um dos maiores sistemas de gerenciamento de banco de dados (SGBD).
Devido ao fato de ser um SGBD de codigo aberto sua licenca e gratuita ate certo ponto, caso
o sistema proposto tivesse o objetivo de obter lucro financeiro entao seria necessario adquirir
uma licenca paga, mas como este nao e o objetivo, permanecera gratuito. Outro fator que
levou a sua escolha, alem do contato do autor com a ferramenta, e devido a grande quantidade
de conteudo sobre este SGBD disponıvel na Internet (ORACLE, 2008).
2.2.9 TECNOLOGIAS AUXILIARES
Para o auxılio no desenvolvimento do sistema foram utilizadas as seguintes bibliotecas:
• JAVA-JWT/AUTH0 - Biblioteca para a geracao dos tokens para a autenticacao do
usuario com o servidor (AUTH0, 2018a)
• VIACEP - API REST que permite a consulta de enderecos a partir do CEP (VIACEP,
2018)
Capıtulo 2. METODOLOGIA 10
• FLEX-LAYOUT - Biblioteca para a criacao de Layouts e responsividade (GOOGLE,
2018c)
• NGX-MASK - Biblioteca para mascaras nos campos dos formularios (JSDADDY, 2018a)
• NGX-VALIDATORS - Biblioteca para a validacao dos campos dos formularios (JSDADDY,
2018b)
• NGX-DATATABLE - Biblioteca para a criacao de tabelas (SWIMLANE, 2018)
• NGX-QRCODE - Biblioteca para a geracao de codigos QR (TECHIEDIARIES, 2018)
• GOV ICONS - Biblioteca para ıcones governamentais (540, 2018)
• MATERIAL DESIGN ICONS - Biblioteca para ıcones diversos (GOOGLE, 2018d)
• FONT AWESOME - Biblioteca para ıcones diversos (FONTICONS, 2018)
2.2.10 FERRAMENTAS AUXILIARES
2.2.10.1 INTELLIJ IDEA ULTIMATE
Existem diversas IDEs para se desenvolver aplicacoes com JavaEE e tambem para o
desenvolvimento front-end, porem nem todas possuem uma integracao tao grande com outros
softwares e em conjunto serem faceis de se utilizar, consumindo poucos recursos do computador
que estiver executando. Com isso o Intellij IDEA Ultimate da Jetbrains vem atendendo aos
requisitos, pois possui alem da funcionalidade de IDE para desenvolvimento em JavaEE tambem
possui outras IDES da empresa integradas, como DataGrip que e uma IDE para banco de dados,
servindo para a geracao de diagramas de diversos SGBD, Webstorm como IDE de front-end
(JETBRAINS, 2018).
Alem de todas estas funcionalidades citadas, conta tambem com ferramentas para
auxiliar na integracao com o Git e a geracao automatica de diagramas de classe, pacote,
modelagem das tabelas de banco de dados.
11
3 DESENVOLVIMENTO
Neste capıtulo serao abordados os aspectos de desenvolvimento, tais como os requisitos
necessarios para o sistema, elaboracao dos diagramas necessarios, modelagem do banco de
dados e prototipagem das interfaces.
3.1 LEVANTAMENTO DOS REQUISITOS
Nesta sessao serao abordados os requisitos para o sistema, foram levantados com base
na legislacao vigente atual lei 10.826/2003 (REPuBLICA, 2003);
3.1.1 REQUISITOS NAO FUNCIONAIS
• Seguranca de dados: nao deve permitir que usuarios mal intencionados, obtenham
dados que nao sejam os permitidos ou acoes como as de administrador, por exemplo.
• Usabilidade: ser possıvel sua utilizacao tanto para usuarios com pouco conhecimento de
informatica quanto os que ja possuem certo conhecimento, e ser acessıvel para usuarios
em cidades pequenas.
• Suporte para grande trafego na rede: ter suporte para grande quantidade de acessos
simultaneos, principalmente para a validacao das licencas que e de grande importancia
quando o portador da licenca for abordado por um policial para poder comprovar que a
sua licenca e valida.
• Faixa de erros inexistente: nao deve permitir que usuarios que possuam antecedentes
criminais ou nao cumpram com algum dos demais requisitos da legislacao adquiram uma
licenca. Resultados devem ser precisos e claros para o usuario.
3.1.2 REQUISITOS FUNCIONAIS
• Cadastrar usuarios: existirao 4 tipos de usuarios, cada um com acoes especıficas, sendo
um deles o administrador, que sera o delegado.
• Verificar antecedentes: : sendo um dos pre-requisitos para a posse e porte de arma de
fogo, o candidato nao podera de nenhuma maneira possuir ficha criminal, a funcionalidade
sera responsavel de fazer essa verificacao apos o cadastro.
• Agendar exame:apos o usuario passar pelas etapas anteriores, podera agendar os
exames psicotecnicos, psicologicos. Porem, para o psicotecnico o candidato ja devera ter
concluıdo algum curso de tiro.
• Resultado do exame: informar ao usuario, em uma tela de relatorios, o resultado do
exame prestado.
• Exames pendentes: ao longo do processo para obtencao da licenca, o sistema devera
informar ao usuario quais exames estao faltando para serem realizados.
Capıtulo 3. DESENVOLVIMENTO 12
• Refazer exame: caso o usuario tenha reprovado no exame prestado, podera entao
remarcar o exame no mesmo instante que recebeu o resultado, ou caso deseje, cancelar
todo o processo.
• Emitir licenca: apos ter sido aprovado em todos os exames, independente da ordem
que comecou, a licenca sera emitida imediatamente, sem a necessidade de um terceiro
usuario para realizar a aprovacao. A licenca contera numeracao de serie para validacao
quando necessario.
• Validar licenca: a validacao da licenca sera independente do usuario ter realizado o
login no sistema ou nao.
3.2 MODELAGEM DO SISTEMA
Nesta sessao serao mostrados os diagramas criados para o projeto
3.2.1 CASOS DE USO
Na Figura 1, nota-se a simplicidade buscada pelo projeto. Constituindo-se em poucos
casos de uso:
• Cadastrar usuario: permite que o usuario se cadastre no sistema.
• Iniciar processo para obter licenca: ao iniciar o processo, o sistema verificara se o
usuario cumpre os requisitos exigidos para a categoria da licenca escolhida.
• Agendar o exame: para que o usuario consiga agendar os exames exigidos, o sistema
informara os meios de contato para os examinadores cadastrados.
• Avaliar exame:o aplicador do exame ira avaliar o cliente e no final passar seu resultado,
se foi aprovado ou reprovado.
• Visualizar resultado: apos o exame ser realizado, o cliente podera verificar se foi
aprovado ou nao no exame;
• Emitir licenca: apos ser aprovado nos exames exigidos, o sistema emitira a licenca com
numero de serie para que o usuario possa imprimı-la e utiliza-la.
Capıtulo 3. DESENVOLVIMENTO 13
Figura 1 – Diagrama de Casos de Uso
3.2.2 DIAGRAMA DE CLASSES
Na Figura 2 e apresentado o diagrama de classes utilizando a IDE Intellij Idea
Ultimate(JETBRAINS, 2018).
• User: Responsavel pelos usuarios.
• UserRole: Responsavel pelos nıveis de acesso dos usuarios.
• Gender: Responsavel pelo Genero do usuario.
• Exam: Responsavel pelos exames realizados pelo usuario, exames contidos nos requisitos
da licenca.
• ExamCategory: Responsavel pelas categorias de exames.
• Requirement: Responsavel pelos requisitos da licenca.
• LicenseCategory: Responsavel pelas categorias das Licencas.
• License: Responsavel pelas licencas dos usuarios.
• Address: Responsavel pelos enderecos dos usuarios.
• City: Responsavel pela cidade dos enderecos dos usuarios.
• State: Responsavel pelo estado dos enderecos dos usuarios.
• Country: Responsavel pelo pais dos enderecos do usuarios.
Capıtulo 3. DESENVOLVIMENTO 15
3.2.3 DIAGRAMA DE ATIVIDADES
Na Figura 3.2.3 e apresentado o diagrama de atividades modelado na ferramenta
Astah(ASTAH, 2018).
Figura 3 – Diagrama de atividades
• Apos o cadastro sera verificado os antecedentes criminais do cliente para que ele possa ir
para a proxima etapa.
• Nesta etapa sera realizado um laco de repeticao, pois como existem 2 exames a serem
prestados, enquanto o cliente nao for aprovado em ambos ele nao saira do laco de
repeticao.
• Quando aprovado nos exames exigidos o proprio sistema ira emitir a licenca para o
usuario.
• Apos ser confirmada a licenca o usuario podera imprimı-la e nela contera um numero de
serie para que possa ser checada sua validade quando necessario.
3.3 MODELAGEM DO BANCO DE DADOS
Nesta sessao se encontra o modelo do banco de dados que sera utilizado, desenvolvido
utilizando a IDE Intellij Idea Ultimate (JETBRAINS, 2018).
Na Figura 4 encontra-se o diagrama do banco de dados. Foram criadas as tabelas
necessarias seguindo os requisitos do sistema.
• users: contera os dados de todos os usuarios.
Capıtulo 3. DESENVOLVIMENTO 16
• users roles: responsavel por especificar os nıveis de acesso dos usuarios.
• exam: responsavel por armazenar os exames cadastrados.
• exam category: responsavel por armazenar as categorias de exames.
• licence: responsavel por armazenar as licencas com processo em andamento e concluıdo.
• licence exam: responsavel por especificar os exames realizados na licenca.
• licences categories: responsavel por especificar as categorias de licencas.
• requirements: responsavel por especificar os requisitos de cada licenca.
• requirements exam category: responsavel por especificar os exames requeridos na
licenca.1
1Todo o codigo fonte do sistema encontra-se no repositorio do github nos seguintes links:
API: <https://sartori-ria.github.io/tcc-gun-licence-control-api/>SPA: <https://sartori-ria.github.io/tcc-gun-licence-control-spa/>Servidor Wildfly com Docker: <https://sartori-ria.github.io/tcc-gun-licence-control-servidor-wildfly-docker/
>
Capıtulo 3. DESENVOLVIMENTO 18
3.4 O SISTEMA
Para facilitar o entendimento de como o sistema do cliente se comunica com o servidor,
foi desenvolvido o diagrama da figura 5 utilizando a ferramenta Cacoo (NULAB, 2018).
O sistema se divide em 2 (dois) modulos, onde um trabalha como uma API RestFul e
o outro como uma SPA sendo renderizada no navegador do usuario.
A SPA ira atraves das acoes do usuario realizar requisicoes ajax utilizando os metodos
HTTP para a API, a API ira capturar esta requisicao e consultara no banco de dados, retornando
no formado JSON a resposta para a SPA, que devera pegar este JSON e mostrar os respectivos
dados ao usuario.
Figura 5 – Comunicacao entre as ferramentas do sistema
3.4.1 PROCESSO PARA OBTENCAO DE LICENCA PELO SISTEMA
Para se obter qualquer uma das licencas tanto posse quanto porte de armas de fogo o
usuario devera percorrer determinadas etapas que serao descritas a seguir.
Cadastro: nesta etapa o usuario devera se cadastrar para obter acesso ao sistema;
Capıtulo 3. DESENVOLVIMENTO 19
Figura 6 – Tela: cadastro usuario
Login: apos o usuario ter se cadastrado podera acessar o sistema com seu respectivo
nıvel de acesso, utilizando seu CPF e senha informados no cadastro.
Capıtulo 3. DESENVOLVIMENTO 20
Figura 7 – Tela: login
Nova Licenca: no menu lateral do usuario, na opcao de nova licenca, serao exibidas
todas as licencas disponıveis, porem o usuario so conseguira iniciar o processo nas lincencas
onde cumprir com os pre requisitos, as licencas com processo em andamento podem ser vistas
na tela de ”minhas licencas”.
Capıtulo 3. DESENVOLVIMENTO 21
Figura 8 – Iniciar Licenca
Agendamento de exames: nesta tela o usuario tera acesso aos instrutores e psicologos
disponıveis para a realizacao do exame, porem ate o momento do agendamento ele devera
entrar em contato por conta propria.
Figura 9 – Tela: agendamento de exame
Avaliando Licenca: tela exclusiva de quem ira avaliar o exame do usuario, onde
inicialmente devera informar o CPF do usuario e o numero de serie da licenca para que a
Capıtulo 3. DESENVOLVIMENTO 22
encontre, e em seguida o sistema ja trara os dados sobre a determinada licenca e usuario, em
conjunto com formulario para sua avaliacao.
Figura 10 – Tela: avaliacao do exame
Exames Realizados: responsavel por informar os exames realizados na respectiva licenca
em conjunto de seus respectivos laudos.
Capıtulo 3. DESENVOLVIMENTO 23
Figura 11 – Exames realizados
Visualizando e Imprimindo a Licenca: apos o usuario ter sido aprovado em todos os
exames necessarios para a aprovacao da licenca, a mesma mudara de status para aprovada,
incluindo a habilitacao do botao para impressao da licenca inclusive seu codigo QR para
validacao posterior.
Capıtulo 3. DESENVOLVIMENTO 24
Figura 12 – Tela: emitir e imprimir a licenca
Validando a licenca sem login: atraves do numero de serie contido na licenca, bem
como, utilizando um leitor de codigos QR e possıvel a sua validacao sem a necessidade de
um terceiro sistema para tal funcionalidade, nao e necessario o login para esta acao pois foi
elaborada visando a checagem sem a necessidade de acessar o sistema, podendo ser realizada
em qualquer lugar rapidamente.
Figura 13 – Tela: validacao da licenca sem estar logado
Como visto anteriormente, o sistema busca agilizar o tramite do processo para se
obter licencas de posse e porte de arma de fogo, permite a economia de recursos financeiros
do governo pois sera o proprio usuario quem custeara a emissao de sua licenca, permite que
qualquer usuario que tenha acesso a internet e que cumpra com os pre requisitos para a licenca
Capıtulo 3. DESENVOLVIMENTO 25
possam dar inicio ao processo sem a necessidade de se deslocar a outra cidade caso a sua nao
possua uma delegacia da Polıcia Federal.
26
4 CONCLUSAO
A maior dificuldade do sistema e a sua aprovacao pela Policia Federal, pois devido
a burocracia existente em territorio nacional, e ainda devido a lei vigente 10.826/2003(RE-
PuBLICA, 2003) o orgao competente e somente a Delegacia da Policia Federal. Espera-se
que apos concluıdo o processo possa-se auxiliar tanto os funcionarios da propria delegacia,
responsaveis pelo assunto, quanto o civil que desejar usufruir do sistema. E caso venha ocorrer
alguma mudanca de lei, o sistema seja de facil adaptacao, e seja acessıvel a todos os usuarios
atraves da internet.
Devido a ausencia de um sistema web integrado para a aquisicao de licencas de posse e
porte de armas, custos financeiros e a grande burocracia devido a legislacao brasileira, o sistema
proposto busca suprir essas necessidades, cumprindo a legislacao vigente. Sendo desenvolvidos
um sistema web para se realizar todos os processos, como cadastro, validacao de licencas,
emissao de licencas e demais processos, e tambem um sistema web para que seja possıvel o
usuario saber a situacao do seu processo, para a funcionalidade de validacao da licenca nao
sera necessario que o usuario esteja cadastrado ou tenha feito login no sistema, assim como
acontece com o sistema de checagem de placas de carros do departamento de transito ou as
validacoes de certificados da internet.
O sistema abre espaco para outras possıveis funcionalidades que podem vir a ser
incluıdas como trabalhos futuros, sendo elas:
• Possibilidade de renovacao da licenca
• Agendamentos para os exames
• Permitir novas categorias como as de CAC
• Licenca para transporte
• Licenca para compra de armas e municoes
• Possibilidade de se retirar dados estatısticos do sistema.
27
Referencias
540. Gov Icons. 2018. Disponıvel em: <https://github.com/540co/govicons>. Citado napagina 10.
APACHE. Maven. 2018. Disponıvel em: <https://maven.apache.org>. Citado na pagina 7.
ASTAH. Astah. 2018. Disponıvel em: <http://astah.net/>. Citado na pagina 15.
AUTH0. Java JWT. 2018. Disponıvel em: <https://github.com/auth0/java-jwt>. Citado napagina 9.
AUTH0. Json Web Tokens. 2018. Disponıvel em: <https://jwt.io>. Citado na pagina 9.
BARBOSA, B.; QUINTELA, F. Mentiram para mim sobre o desarmamento. Campinas -SP: Vide Editorial, 2015. Citado na pagina 1.
COELHO, H. JPA eficaz, as melhores praticas para a persistencia de dados. Sao Paulo- SP: Casa do Codigo, 2013. Citado na pagina 7.
ELLIOT, J. Dominando Hibernate. Rio de Janeiro - RJ: AltaBooks, 2009. Citado na pagina8.
FEDERAL, P. Antecedentes Criminais. 2003. Disponıvel em: <http://www.pf.gov.br/servicos-pf/antecedentes-criminais>. Citado na pagina 3.
FEDERAL, P. Porte de Arma de Fogo. 2003. Disponıvel em: <http://www.pf.gov.br/servicos-pf/armas/porte-de-arma>. Citado na pagina 1.
FIELDING, R. T. Architectural Styles and the Design of Network-based SoftwareArchitectures. Tese (Doutorado) — UNIVERSITY OF CALIFORNIA IRVINE, 2000. Citadona pagina 8.
FONTICONS. Font Awesome. 2018. Disponıvel em: <https://fontawesome.com>. Citadona pagina 10.
GOOGLE. Angular. 2018. Disponıvel em: <https://angular.io/>. Citado na pagina 6.
GOOGLE. Angular Material. 2018. Disponıvel em: <https://material.angular.io>. Citadona pagina 6.
GOOGLE. Flex Layout. 2018. Disponıvel em: <https://github.com/angular/flex-layout>.Citado na pagina 10.
GOOGLE. Material Design Icons. 2018. Disponıvel em: <https://material.io/icons/>. Ci-tado na pagina 10.
GUPTA, A. Java EE 7, essentials. 1005 Gravenstein Highway North, Sebastopol, CA 95472.:O’Reilly Media, 2013. Citado na pagina 8.
HASHING, P. Passowrd Hashing. 2018. Disponıvel em: <https://password-hashing.net>.Citado na pagina 9.
Referencias 28
HAT, i. R. Wildfly. 2018. Disponıvel em: <http://wildfly.org>. Citado na pagina 8.
JETBRAINS. Intellij Idea Ultimate. 2018. Disponıvel em: <https://www.jetbrains.com/idea/?fromMenu>. Citado 3 vezes nas paginas 10, 13 e 15.
JETBRAINS. Kotlin. 2018. Disponıvel em: <https://kotlinlang.org>. Citado na pagina 7.
JSDADDY. Ngx Mask. 2018. Disponıvel em: <https://github.com/JsDaddy/ngx-mask>.Citado na pagina 10.
JSDADDY. Ngx Validator. 2018. Disponıvel em: <https://github.com/JsDaddy/ngx-mask>.Citado na pagina 10.
LERNER, A. et al. ng-book 2 The Complete Book on AngularJS 2. https://www.ng-book.com/2/: FULLSTACK.io, 2016. Citado na pagina 6.
MELO, A. A. de; LUCKOW, D. H. Programacao java para a WEB. Sao Paulo - SP:Novatec, 2010. Citado na pagina 7.
NULAB, i. Cacoo. 2018. Disponıvel em: <https://cacoo.com>. Citado na pagina 18.
ORACLE. O Banco de Dados de Codigo Aberto mais Conhecido no Mundo. 2008.Disponıvel em: <https://www.oracle.com/br/mysql/index.html>. Citado na pagina 9.
OWASP. OWASP. 2018. Disponıvel em: <https://www.owasp.org/index.php/Main Page>.Citado na pagina 9.
P-H-C. Argon 2. 2018. Disponıvel em: <https://github.com/P-H-C/phc-winner-argon2>.Citado na pagina 9.
POWERS, S. Aprendendo JavaScript. Sao Paulo - SP: Novatec, 2010. Citado na pagina 6.
REPuBLICA, P. da. LEI No 10.826, DE 22 DE DEZEMBRO DE 2003. 2003. Disponıvelem: <http://www.planalto.gov.br/ccivil 03/leis/2003/L10.826.htm>. Citado 3 vezes naspaginas 3, 11 e 26.
SASS. Sass. 2018. Disponıvel em: <https://sass-lang.com>. Citado na pagina 6.
SILVA, M. S. HTML5: A linguagem que revolucionou a Web. Sao Paulo - SP: Novatec,2011. Citado na pagina 5.
SILVA, M. S. Desenvolva aplicacoes web profissionais com uso dos poderosos recursosde estilizacao das CSS3. Sao Paulo - SP: Editora Novatec, 2012. Citado na pagina 5.
SWIMLANE. Ngx datatable. 2018. Disponıvel em: <https://github.com/swimlane/ngx-datatable>. Citado na pagina 10.
TECHIEDIARIES. Ngx-qrcode. 2018. Disponıvel em: <https://github.com/techiediaries/ngx-qrcode>. Citado na pagina 10.
VIACEP. ViaCEP. 2018. Disponıvel em: <https://viacep.com.br>. Citado na pagina 9.