43
UNIVERSIDADE TECNOL ´ OGICA FEDERAL DO PARAN ´ A CURSO DE TECNOLOGIA EM SISTEMAS PARA INTERNET LUCAS ANTONIO RAMOS SARTORI SISTEMA DE GERENCIAMENTO DE LICEN ¸ CAS DE POSSE E PORTE DE ARMAS DE FOGO TRABALHO DE CONCLUS ˜ AO DE CURSO GUARAPUAVA 2018

UNIVERSIDADE TECNOLOGICA FEDERAL DO PARAN´ A´ CURSO …repositorio.roca.utfpr.edu.br/jspui/bitstream/1/9632/1/GP_COINT_2018_1_01.pdf · nos testes do sistema bem como sua divulga¸c˜ao

  • 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).

Dedico este trabalho a mulher da minha vida e

ao nosso futuro filho.

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 14

Figura 2 – Diagrama de Classe

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 17

Figura 4 – Modelagem do banco de dados

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.

Apendices

30

APENDICE A – DOCUMENTO ENTREGUE NA DPF DE GUARAPUAVA

Neste capıtulo encontra-se uma copia da versao protocolado na DPF de Guarapuava,

Figura 14 – Documento protocolado na delegacia