Upload
others
View
1
Download
0
Embed Size (px)
Citation preview
LAURO HENRIQUE DE ALMEIDA FERREIRA
PLATAFORMA PARA GESTÃO DE SERVIÇOS EM MODALIDADE
FREELANCER E AUTOPROMOÇÃO ONLINE
Assis/SP 2020
LAURO HENRIQUE DE ALMEIDA FERREIRA
PLATAFORMA PARA GESTÃO DE SERVIÇOS EM MODALIDADE
FREELANCER E AUTOPROMOÇÃO ONLINE
Trabalho de Conclusão de Curso apresentado ao curso de Análise e desenvolvimento de Sistemas do Instituto Municipal de Ensino Superior de Assis - FEMA, como requisito final à obtenção do Certificado de Conclusão do Curso de Graduação.
Orientador: Prof. Msc. Guilherme de Cleva Farto
Área de Concentração: Informática
Assis/SP 2020
FICHA CATALOGRÁFICA
F383p FERREIRA, Lauro Henrique de Almeida Plataforma para gestão de serviços em modalidade freelancer e autopromoção online / Lauro Henrique de Almeida Ferreira. – Assis, 2020. 100p. Trabalho de conclusão do curso (Análise e Desenvolvimento de Sistemas). – Fundação Educacional do Município de Assis - FEMA Orientador: Me. Guilherme de Cleva Farto 1.Ionic Framework 2. Angular.Js 3. Aplicações hídricas CDD001.61
PLATAFORMA PARA GESTÃO DE SERVIÇOS EM MODALIDADE
FREELANCER E AUTOPROMOÇÃO ONLINE
LAURO HENRIQUE DE ALMEIDA FERREIRA
Trabalho de Conclusão de Curso apresentado ao Instituto Municipal de Ensino Superior de Assis, como requisito do Curso de Graduação,
analisado pela seguinte comissão examinadora:
Orientador: _______________________________
Prof. Msc. Guilherme de Cleva Farto
Analisador: _____________________________
Prof. Esp. Célio Desiró
Assis/SP 2020
DEDICATÓRIA
Dedico este trabalho primeiramente a Deus,
depois toda minha família e amigos que nunca
deixaram de acreditar em mim e nos meus sonhos.
.
AGRADECIMENTOS
Agradeço a Deus por me dar forças e fazer a acreditar que todo esforço é
válido quando temos sonhos e objetivos concretos.
Ao meu orientador Esp. Guilherme de Cleva Farto, por me aceitar como
orientando e por me ajudar nos momentos de maior dificuldade.
Agradeço também a professora Marisa por me ajudar com aulas
complementares e monitorias, sendo de grande importância para meu crescimento
no decorrer do curso.
Aos amigos que conheci nesse período e terão a minha eterna gratidão pois
foram várias noite e finais de semana trocando mensagens para poder ajudar uns
aos outros sempre com empenho e dedicação.
“É muito melhor lançar-se em busca de conquistas grandiosas, mesmo expondo-
se ao fracasso, do que alinhar-se com os pobres de espírito, que nem gozam
muito nem sofrem muito, porque vivem numa penumbra cinzenta, onde não
conhecem nem vitória, nem derrota.” Theodore Roosevelt (1858-1919)
RESUMO
O presente estudo relata o desenvolvimento de uma plataforma de gerenciamento de serviços e modalidade freelance, com o intuito de gerenciar toda a movimentação das negociações feitas pelos usuários. O objetivo principal do aplicativo é facilitar a negociação de oportunidades de serviços com pessoas que estão disponíveis para trabalhar no mercado de trabalho, sendo assim, foi desenvolvida uma plataforma híbrida utilizando Ionic FrameWork para poder gerenciar tantos as oportunidades de serviços quanto as pessoas que dispostas a trabalhar em curtos períodos.No desenvolvimento do aplicativo WorkIt foram utilizadas tecnologias como,: TypeScrypt, AngularJs, e o FireBase um banco de dados NoSql que utiliza recursos em real time. Dessa forma, os usuários do aplicativo poderão interagir por meio de mensagens internas e iniciar uma prestação de serviços onde o próprio sistema fará o controle e gerenciamento dos custos dos serviços prestados. O software desenvolvido nesse estudo visa gerenciar todas as oportunidades de negócios em uma única plataforma, diminuindo o tempo de procura de trabalhadores interessados na modalidade freelance.
Palavras-Chave: Freelancers; AngularJs; TypeScript; Plataformas hibridas; IonicFrameWork; Nosql; FireBase
ABSTRACT
The present study reports the development of a service management platform and freelance modality, in order to manage all the movement of negotiations made by users. The main objective of the application is to facilitate the negotiation of service opportunities with people who are available to work in the labor market, therefore, a hybrid platform was developed using Ionic FrameWork to be able to manage as many service opportunities as people who are willing to working in short periods. In the development of the WorkIt application, technologies were used, such as: TypeScrypt, AngularJs, and FireBase, a NoSql database that uses real time resources. In this way, users of the application will be able to interact through internal messages and initiate a service provision where the system itself will control and manage the costs of the services provided. The software developed in this study aims to manage all business opportunities on a single platform, reducing the search time for workers interested in freelance.
Key-words: Freelancers; AngularJs; TypeScript; Hybrid platforms; IonicFrameWork; Nosql; FireBase.
LISTA DE ILUSTRAÇÕES
Figura 1 – Infraestrutura software Android 23
Figura 2 – Arquitetura Sistema Operacional IOS 26
Figura 3 – Arquitetura híbrida utilizando Cordova 30
Figura 4 – aplicativos Nativos x Híbridos 31
Figura 5 – Visão geral componentes internos node.js 33
Figura 6 – Arquitetura HTML5 34
Figura 7 – Tecnologias que demandam no mercado 36
Figura 8 – Plataformas Suportadas pelo Ionic 39
Figura 9 – Segmentos de Serviços Firebase 43
Figura 10 – Mapa mental Aplicativo WorkIt 49
Figura 11 – Diagrama de Caso de Uso Usuário Cadastrados 51
Figura 12 – Diagrama de Caso de Uso Usuário Administrador 51
Figura 13 – Diagrama de Caso de Uso Sistema WorkIt 52
Figura 14 – UC1 Caso de Uso Criar Conta 53
Figura 15 – UC2 Caso Login no Sistema 54
Figura 16 – UC3 Caso de Uso Manter Perfil no Sistema 55
Figura 17 – UC4 Caso de Uso Publicar Oportunidade 56
Figura 18 – UC5 Caso de Uso Manter Oportunidade 57
Figura 19 – UC6 Caso de Uso Selecionar uma Oportunidade 58
Figura 20 – UC7 Caso de Uso Pesquisar Oportunidade 59
Figura 21 – UC8 Caso de Uso Acessa mapa de Oportunidade 60
Figura 22 – UC09 Caso de Uso Enviar Mensagens 61
Figura 23 – UC10 Caso de Uso Fazer Pagamentos 62
Figura 24 – UC11 Caso de Uso Avaliar Usuários 63
Figura 25 – UC12 Caso de uso Avaliar Sistema 64
Figura 26 – UC13 Caso de Uso Emitir Relatório Movimentação 65
Figura 27 – UC14 Caso de Uso Emitir Relatório Sistema 66
Figura 28 – Digrama de Atividade Publicar Oportunidade 67
Figura 29 – Digrama de Atividade Movimentação do Sistema fechamento de
serviço 68
Figura 30 – Digrama de Atividade Efetuar Pagamento 69
Figura 31 – Digrama de Sequência Candidatura a uma oportunidade 70
Figura 32 – Digrama de Sequência Efetuar Pagamento 71
Figura 33 – Digrama de Classe aplicativo WorkIt parte 1 72
Figura 34 – Digrama de Classe aplicativo WorkIt parte 2 73
Figura 35 – Digrama de Classe aplicativo WorkIt parte 3 74
Figura 36 – Digrama ER aplicativo WorkIt parte 1 75
Figura 37 – Digrama ER aplicativo WorkIt parte 2 76
Figura 38 – Estrutura Analítica aplicativo WorkIt 77
Figura 39 – Sequenciamento de aplicativo WorkIt 78
Figura 40 – Editor de texto para desenvolvimento do Sistema 81
Figura 41 – Página de cadastro de usuários 82
Figura 42 – Página inicial do sistema WorkIt 83
Figura 43 – Página Editar Perfil do sistema WorkIt 84
Figura 44 – Página Publicar Oportunidade sistema WorkIt 85
Figura 45 – Página de Atualizações 86
Figura 46 – Página Troca de Mensagens 87
Figura 47 – Página Painel usuário e Detalhes da movimentação 88
Figura 48 – Página Movimentação do usuário 89
Figura 49 – Código responsável por cadastrar usuários no sistema 98
Figura 50 – Código responsável por fazer publicação no sistema 99
Figura 51 – Código responsável por iniciar movimentação no sistema 100
LISTA DE TABELAS
Tabela 1 – Tabela de Operações REST 37
Tabela 2 – Caso de Uso Criar Conta 53
Tabela 3 – Caso de Uso Fazer Login no Sistema 54
Tabela 4 – Caso de Uso Manter Perfil no Sistema 55
Tabela 5 – Caso de Uso Publicar oportunidade 56
Tabela 6 – Caso de Uso Manter Oportunidade 57
Tabela 7 – Caso de Uso Selecionar Oportunidade 58
Tabela 8 – Caso de Uso Pesquisar por Oportunidade 59
Tabela 9 – Caso de Uso Acessar Mapa de Oportunidades 60
Tabela 10 – Caso de Uso enviar Mensagens 61
Tabela 11 – Caso de Uso fazer Pagamentos 62
Tabela 12 – Caso de Uso Avaliar usuários 63
Tabela 13 – Caso de Uso Avaliar Sistema 64
Tabela 14 – Caso de Uso Emitir Relatório de Movimentação 65
Tabela 15 – Caso de Uso Emitir Relatório de Movimentação Sistema 65
Tabela 16 – Análise de Custos Baseado na Sequência de Atividades 79
Tabela 17 – Análise de custo total para o desenvolvimento 80
Tabela 18 – Análise de custo total para desenvolvimento do aplicativo WORKIT 80
LISTA DE ABREVEATURA E SIGLAS
CLT – Consolidação das Leis Trabalhista
MVC– Model-View-Controller
API – Application Programming Interface
SMS – Short Message Service
SDK – Software Development Kit
SO – Sistema Operacional
HTML – HyperText Markup Language
CSS – Cascading Style Sheet
PWAs – Progressive Web Apps
NPM – Node Package Manager
AJAX – Asynchronous Javascript and XML
XML – Extensible Markup Language
JS – JavaScript
SOA – Service-Oriented Architecture
REST – Representacional State Transfer
VS – Microsoft Visual Studio Code
GPS – Global Positioning System
JSON – JavaScript Object Notation
SQL – Structured Query Language
SGBD – Sistema de Gerenciamento de Banco de Dados
EAP – Estrutura Analítica de Projetos
WBS – Work Breakdown Structure
SUMÁRIO
1 – INTRODUÇÃO 16
1.1 – OBJETIVOS 18
1.2 – JUSTIFICATIVAS 19
1.3 – PÚBLICO ALVO 20
1.4 – ESTRUTURA DO TRABALHO 20
2 – TECNOLOGIAS E FERRAMENTAS DE DESENVOLVIMENTO 21
2.1 – DISPOSITIVOS MÓVEIS 21
2.1.1 – ANDROID 22
2.1.2 – IOS 25
2.2 – SOLUÇÕES MÓVEIS 27
2.2.1 – APLICACÕES NATIVAS 27
2.2.2 – APLICAÇOES WEBAPP 28
2.2.3 – APLICATIVOS HIBRIDOS 29
2.3 – NODEJS 32
2.4 – ANGULARJS 33
2.5 – HTML5 34
2.6 – CSS 35
2.7 – JAVASCRIPT 35
2.8 – WEBSERVICE 37
2.9 – VISUAL STUDIO CODE 38
2.10 – IONIC FRAMEWORK 38
2.11 – API 39
2.12 – GEOLOCALIZAÇAO 39
2.13 – GOOGLE MAPS 40
2.13.1 – VANTAGENS DO GOOGLE MAPS 40
2.13.2 – LIMITAÇÕES DO GOOGLE MAPS 41
2.14 – CHATS 41
2.15 – BASE DE DADOS NÃO RELACIONAL, (NOSQL) 41
2.16 – FIREBASE 42
2.17 – SQLITE 43
3 – ANÁLISE E ESPECIFICAÇÃO DO SISTEMA 45
3.1 – OBJETIVO ESPECÍFICO DA APLICAÇÃO 45
3.2 – REQUISITOS E FUNCIONALIDADES DA APLICAÇÃO 45
3.3 – CRIAR CONTA NO SISTEMA 46
3.4 – EDITAR PERFIL NO SISTEMA 46
3.5 – PESQUISAR POR OPORTUNIDADE 46
3.6 – TROCA DE MENSAGENS ENTRE USUÁRIOS 47
3.7 – OPÇÃO DE PAGAMENTO VIA APLICATIVO 47
3.8 – AVALIAÇÃO DOS SERVIÇOS PRESTADOS 48
3.9 – FEEDS DE ATUALIZAÇÃOS DE OPORTUNIDADE NO SISTEMA 48
3.10 – MAPA DE LOCALIZAÇÃO DE OPORTUNIDADES 48
3.11 – AVALIAÇÃO DO SISTEMA 48
3.12 – MAPA MENTAL 48
3.13 – LISTA DE REQUISITOS 49
3.14 – DIAGRAMA DE ESPECÍFICA DE CASOS DE USO 50
3.15 – DIAGRAMA DE ATIVIDADES 67
3.16 – DIAGRAMA DE SEQUÊNCIA 69
3.17 – DIAGRAMA DE CLASSES 71
3.18 – DIAGRAMA DE ENTIDADE RELACIONAL 74
4 – ESTRUTURA DO PROJETO 77
4.1 – ESTRUTURA ANALÍTICA DO PROJETO 77
4.2 – SEQUENCIAMENTO DAS ATIVIDADES 78
4.3 – ORÇAMENTO 79
5 – IMPLEMENTAÇÃO DO APLICATIVO 81
5.1 – INTERFACES DO SISTEMA 82
6 – CONCLUSÃO 90
6.1 – TRABALHOS FUTUROS 90
REFERÊNCIAS 91
APÊNDICES 98
16
1 – INTRODUÇÃO
Em tempos de inúmeras tecnologias e grande disseminação da informação,
a sociedade que está a desmistificar o uso da tecnologia para o aumento da rede
de negócios com o compartilhamento instantâneo de serviços e produtos visando
lucro a curto prazo.
Nesse contexto tecnológico pessoas com alta capacidade de
desenvolvimento profissional, trabalham em empregos informais ou são
profissionais liberais. Atentando-se a essa realidade, grande parte desses
profissionais necessitam de outras formas de promover o seu marketing
profissional. Neste momento surge a necessidade de uso de múltiplas plataformas
digitais de autopromoção online, possibilitando o compartilhamento instantâneo de
serviços.
O compartilhamento instantâneo de serviços com o uso de tecnologia através
de redes sociais dedicadas, traz um aumento significativo e grande lucratividade,
bem como acelera o próprio crescimento dos usuários dessas soluções. A partir da
interação entre os usuários; clientes e fornecedores, cria-se uma relação de
negócios entre ambas as partes podendo expandir de forma rápida desde que essa
rede de usuários conectada crie um grande círculo de negócios digitais.
Diante da contextualização apresentada, nos últimos anos foram
manifestadas algumas ferramentas que propiciaram a autopromoção desses
profissionais. Focando em empregos formais seguindo a consolidação das leis
trabalhista (CLT). Segundo Gasparini (2016) o LinkedIn pode impulsionar o
marketing pessoal aumentando significativamente o networking do usuário da
tecnologia, disponibilizando aos usuários a autopromoção através das suas próprias
publicações.
Profissionais autônomos, universitários recém-formados e até grandes
personalidades fazem o uso dessa aplicação, que viralizou o setor de busca por
colocação profissional no atual mercado de trabalho. Neste contexto instável da
economia, a utilização dessa ferramenta pode lhe posicionar como referência em
sua área de trabalho.
17
Por outro lado, Davidovich (2017) defende que toda empresa e startup que
está a lançar um produto ou negócio no mercado deve fazer o uso de profissionais
liberais (freelancers). Ele utiliza como referência a plataforma digital Workana que
trabalha especificamente fazendo a autopromoção online desses profissionais. Tal
plataforma garante que estes profissionais se dediquem full time a cada projeto
garantido agilidade, qualidade e consequentemente preços melhores do que
agências que trabalham em regime de (CLT).
De acordo com Bello (2018), saber se auto promover é uma ferramenta
essencial para o cenário atual. Desde o ano de 2018 vem se abordando muito o
tema autopromoção ou gestão da sua própria marca. Atualmente são utilizadas
múltiplas plataformas digitais para alcançar êxito profissional, todas como os
mesmos quesitos: elaborar estratégia, definir objetivos e publicar seus trabalhos de
forma clara e objetiva, evidenciando toda capacidade de absorver novas
experiências em qualquer ambiente de trabalho.
Desta forma, a proposta desse projeto de pesquisa consiste em implementar
uma plataforma que adota recursos do Ionic FrameWork para desenvolver uma
aplicação que possa funcionar em inúmeras plataformas de forma híbrida
permitindo que usuários utilizem os recursos do sistema independente do
dispositivo que esteja utilizando.
Com a utilização de FrameWork é possível fazer a integração com várias
outras tecnologias que possibilitaram fazer a utilização de recursos nativos do
dispositivo onde estiver sendo executada a aplicação proposta.
A grande vantagem do aplicativo é conceder aos usuários uma solução de
interação entre ambas as partes para acertos de questões relacionadas ao produto
e serviços ofertados no aplicativo, de forma ágil trazendo uma solução eficaz na
contratação de serviços a curtos períodos e de formas esporádicas.
18
1.1 OBJETIVOS
O estudo tem como principal objetivo implementar uma plataforma hibrida
utilizando recursos nativos dos dispositivos com ambiente amigável e de fácil
acesso para que os próprios usuários possam compartilhar seus produtos e serviços
em modalidade freelance de forma livre e organizada desde que tenha acesso à
Internet sendo via smartphone ou laptop necessitando apenas de conexão a
Internet.
Diante desse contexto, surge o WorkIt, um sistema dedicado a gerenciar a
serviços freelancers, a aplicação tende a oferecer serviços de anúncios onde os
usuários poderão publicar sua necessidade de contratar um serviço específico bem
com disponibilizar ao usuário publicar sua disponibilidade para trabalhar em curtos
períodos em modalidade freelance.
Um grande diferencial que o WorkIt visa disponibilizar aos usuários é a
facilidade em que os usuários vão se relacionar entre si para concretizar uma
oportunidade de negócios. Atentando-se a grande dificuldade para encontrar
pessoas dispostas a prestar serviços em modalidade freelancer o aplicativo
pretende oferecer um sistema de geolocalização que facilitar a localização de
pessoas interessadas em oferecer ou prestar serviços.
Para que o projeto evidenciado nesse estudo possa ser desenvolvido
pretende-se fazer o uso de tecnologias Open Sources, WebApp, Mobile, Api Google
Maps e outras com o intuito de criar uma aplicação hibrida. Com a utilização dessas
tecnologias visa criar uma solução para facilitar a vida de pessoas e empresas para
contratar um serviço por curtos períodos ganhando agilidade na contratação de um
serviço e facilidade de pagamento.
19
1.2 JUSTIFICATIVAS
Com a renovação das leis trabalhistas em, 2019, para trabalhadores sobe
regime da Consolidação das Leis do Trabalho (CLT), despertou-se um grande
crescimento de profissionais liberais que não compactuam com as novas leis, e
ainda por acreditarem que ao utilizarem dos seus próprios recursos e habilidades
profissionais possam ser relativamente bem sucedidos, podendo trabalhar em
horários bem flexíveis e com um ganho maior com mais qualidade de vida.
A utilização da tecnologia na palma das mãos e com o surgimento de
inúmeras redes sociais esses profissionais liberais (freelancers) tem um aumento
significativo nas suas redes de contatos facilitando a autopromoção online dos seus
produtos e serviços porém de forma desorganizada.
A autopromoção é um conjunto de técnicas que facilitam o sucesso
profissional tanto para conquista de uma melhor posição no mercado de trabalho
com para manter sua posição atual. Diante da situação atual onde os profissionais
veem se aperfeiçoando cada vez mais tornado isso uma ferramenta indispensável
para qualquer profissional de qualquer área de trabalho, incorporando métodos de
se auto promover buscando atingir empresas e organizações interessadas no seu
potencial profissional (SANTOS, 2015, p. 47).
Para Campos (2008) fazer o uso de networking para criar uma rede de
contatos visando melhores condições para satisfazer os interesses de ambas as
partes é uma rede de relacionamentos de negócios onde os participantes se
mantém em contato uns aos outros extraindo recursos e informações de acordo
com sua necessidade, recursos valiosos como informações pessoais, possíveis
indicações e apresentações a outras redes de contatos.
Vendo a grande necessidade de auto promover em um ambiente profissional
(RIZZO, 2011) destaca que após a modernidade e evolução dos processos
industriais as pessoas tanto no âmbito pessoal quanto profissional reconhecem a
exigência em formar um perfil competitivo e reconhecido em qualquer ambiente.
20
Com o presente estudo pretende-se implementar um aplicativo onde os
usuários possam compartilhar sua disponibilidade e/ou necessidade em um único
ambiente tornando a buscar por oportunidade de negócios ágil, vale ressaltar que
atualmente otimizar o tempo é vital e se tratando de um ambiente de oportunidades
de negócios ele não pode ser desperdiçado.
1.3 PÚBLICO ALVO
Em um cenário onde um profissional de qualquer área procura oportunidades
de emprego; a proposta da aplicação é oferecer de forma rápida e organizada uma
gama de oportunidade de negócios em modalidade freelance através de tecnologias
WebApp e Mobile.
Empresas públicas, privadas e profissionais liberais poderão ter acesso a
tecnologia, diminuindo a distância entre pessoas e empresas e facilitando a
comunicação.
1.4 ESTRUTURA DO TRABALHO
Este trabalho está estruturado nas seguintes partes:
● Capítulo 1 – Introdução
● Capítulo 2 – Tecnologia e Ferramentas de Desenvolvimento
● Capítulo 3 – Análise e Especificação do Sistema
● Capítulo 4 – Estrutura do Projeto
● Capítulo 5 – Implementação do Projeto
● Capítulo 6 – Conclusão
● Referências
21
2 – TECNOLOGIAS E FERRAMENTAS DE DESENVOLVIMENTO
Este capítulo apresenta as tecnologias e ferramentas utilizadas no
desenvolvimento do aplicativo WorkIt e explora cada uma delas. O aplicativo que
vem a ser desenvolvido tem o intuito de disponibilizar um ambiente de interação
entre usuários que buscam por uma oportunidade de negócio em modalidade
freelance de forma esporádica, tanto para quem venha a oferecer ou a quem
procura por essa oportunidade.
O WorkIt é uma plataforma híbrida que utiliza as tecnologias: AngularJs,
NodeJs, Ionic 4, Apache Cordova.. Devido a algumas funcionalidades há também
recursos como Application Programming Interface, (API) de geolocalização e chat
para que os usuários do sistema possam se localizar e interagirem entre si além de
explorar novas oportunidades de negócios. Destaca-se os principais frameworks
encontrados temos Apache Cordova e Ionic juntamente com o conceito e
usabilidade de cada tipo framework, facilitando assim o uso da plataforma por ser
intuitivo. (PREZOTTO; BONIATI, 2014).
Para armazenar os dados gerados pela aplicação foi utilizado dois servidores
de banco de dados SQLite e Firebase.
2.1- DISPOSITIVOS MOVEIS
Segundo Maria (2012) estão disponíveis diversas plataformas móveis para
que os desenvolvedores criem seus aplicativos, sendo assim, grandes partes
destas plataformas são incompatíveis entre si, não permitindo que uma aplicação
seja executada em duas plataformas diferentes.
Outro ponto importante é que todo dispositivo móvel suporte uma única
plataforma, desta forma é extremamente necessário que o desenvolvedor escolha
de forma cuidadosa e criteriosa a plataforma ideal a se utilizar na criação de suas
aplicações a fim de evitar problemas futuros e ampliar o alcance de suas aplicações.
22
As plataformas móveis envolvem um conjunto de tecnologias compostas de:
sistemas operacionais, linguagens de programação e ferramentas de
desenvolvimento. Atualmente muitas pessoas dispõem de celulares (smartphones)
que possibilitam executar diferentes aplicativos. Todo dispositivo celular necessita
de uma plataforma para desempenhar sua função e esta por sua vez, é responsável
por gerenciar os recursos do dispositivo (CAFÉ, 2012).
Para Silva e Santos (2014) com a evolução da tecnologia, os dispositivos
móveis passaram a adquirir diversas funções. A funcionalidade do uso de ligações
e mensagens Short Message Service,(SMS) diminuiu drasticamente em
decorrência do desenvolvimento de softwares mais avançados que permitem o
acesso à internet, com mais recursos e funções.
Existem diversas plataformas de sistemas operacionais em uso nos
smartphones atuais, sendo essas o meio que permite ao usuário interação com os
aplicativos e itens do hardware como: câmeras, GPS, microfone, alto-falante.
2.1.1- Android
Sistema operacional desenvolvido pela Google, com utilização de 70,1% do
mercado. O que justifica sua ampla utilização é que as marcas e os modelos que
possuem esse sistema são os mais variados, de aparelhos com muitos recursos
aos modelos mais básicos ou simples (TERRA, 2013).
Android foi criado em 2003 por Andy Rubin, Rico Miner e Nick Sears, que
fundaram a empresa Android Inc. Android é um sistema operacional que tem base
no kernel do Linux e seu objetivo inicial era a criação de dispositivos móveis mais
inteligentes, um sistema para câmeras fotográficas, mas depois foi redirecionado
para ser um sistema operacional mobile. Em 2005 a Android Inc. foi comprada pela
Google em uma transação milionária (HAMMERSCHMIDT, 2015).
Presente em mais de um bilhão de smartphones em todo o mundo, pode ser
encontrado em dispositivos de diversas marcas. É integrado com os demais
23
aplicativos disponibilizados pela empresa, sendo os mesmos utilizados em
ambientes Desktops (GOOGLE, 2019).
Cada versão recebe um nome relacionado a um doce, sendo que a cada
nova versão lançada o design torna-se mais sofisticado Há também novos recursos
de usabilidade e desempenho, otimização memória e aperfeiçoamento da
tecnologia utilizadas nos dispositivos. Para desenvolvedores, a empresa
disponibiliza um tutorial com dicas a respeito das diversas dimensões dos
dispositivos e um Software Development Kit, (SDK).
De acordo com estudo realizado por Ogliari e Brito (2014) a infraestrutura do
Android é composta por uma pilha que inclui um sistema operacional Linux, um
conjunto de bibliotecas, uma Application Programming Interface, (API) chamada
Android Runtime, e aplicações diversas. Essa estrutura é apresentada na Figura 1.
Figura1: Infraestrutura software Android (SHANKLAND, 2007)
24
Toda essa estrutura é dividida por camadas onde cada processo é controlado
e monitorado por sua respectiva camada. Para Shankland, (2007), as camadas são
divididas em Aplicações, Framework, Bibliotecas, Android Runtime e Kernel Linux.
• Aplicações
Camada onde são desenvolvidos os códigos Java das aplicações e que
contém de todos os aplicativos executados sobre o Android. Dentre os aplicativos,
podemos destacar: e-mail, despertador, calendários, jogos, mapas, browser e
internet.
• Framework
O objetivo da camada de framework é simplificar e facilitar a reutilização de
procedimentos por parte do desenvolvedor ocultando toda a complexidade na
criação das aplicações e também funcionando como uma conexão com a camada
de bibliotecas do sistema operacional que serão utilizadas por meio de APIs
localizadas no framework.
• Bibliotecas
A camada de bibliotecas como o próprio nome diz é a camada que contém
todas as bibliotecas que são utilizadas para o funcionamento do sistema
operacional, e, além disso, contém também bibliotecas que gerenciam recursos de
multimídia, e funções para tarefas como: manipulação de navegadores web,
manipulação de áudio e vídeo, aceleradores em nível de hardware, consultas de
camadas 2D e 3D, acesso ao SQLite, banco de dados do Android, etc.
• AndroidRuntime
Apesar das aplicações para o Android serem desenvolvidas sob linguagem
de programação Java, elas não são executadas por meio de uma tradicional
máquina virtual Java e sim através da Máquina virtual Dalvik instanciada na camada
Runtime. Para cada aplicação a ser executada no Android é gerada uma máquina
virtual Dalvik, que tem por características seu excelente desempenho,
compatibilidade com os novos hardwares lançados e, criada com a função de
executar processos simultaneamente.
• Kernel Linux
A camada do Kernel pode ser considerada como a principal camada da
arquitetura do Android. Responsável por grande parte dos serviços, a camada do
25
kernel também tem como tarefa intermediar todos os aplicativos do Android com o
hardware além de gerenciar e controlar o uso da memória e de threads por exemplo.
O controle de processos, protocolos de rede, segurança dos arquivos e modelo de
drivers também são tarefas realizadas por esta camada.
2.1.2- IOS
IOS é um sistema operacional projetado com tecnologia multitouch, ou seja,
telas sensíveis que são utilizadas através do toque manual. Após o lançamento da
sua quarta versão, o iOS transformou-se em um sistema multitarefa com um
desempenho otimizado. É possível também tornar o iOS em um sistema
multiusuário, porém somente através da instalação de um aplicativo fornecido
através da loja da Apple por ser um sistema operacional de código fechado e
proprietário (MARIA, 2010).
Segundo Neal (2014) apesar da Apple ser destaque em diversos campos da
tecnologia, ela ultrapassou a concorrência quando criou o iPhone, que revolucionou
a indústria das comunicações móveis mundial, dominando cerca de 53% do
mercado e sendo o telefone móvel mais vendido em alguns países do mundo, como
os Estados Unidos e o Japão.
Um dos principais motivos para o sucesso do iPhone é o seu design, um
aspecto que a Apple sempre investiu para impulsionar a comercialização dos seus
produtos e que sempre foi descuidado pelas outras empresas de alta-tecnologia
(FROMMER, 2009).
Este sistema operacional, que já se encontra na sua décima quarta versão.
É o responsável pela gestão do hardware e é a fonte dos instrumentos necessários
para a implementação de aplicações nativas que se encontram sempre disponíveis
para utilização. Assim, o iOS é um intermediário entre o hardware e a aplicação
criada, já que define interfaces de sistema que permitem a comunicação entre
ambo. Desse modo permite escrever aplicações nativas que funcionam de igual
forma em dispositivos com diferentes características de hardware, desde que
operem com iOS.
26
Para a implementação das tecnologias, este sistema operacional foi
desenhado em camadas, sendo que as camadas inferiores: o Core OS e Core
Services que representam os serviços básicos e as camadas superiores: Media e
Cocoa Touch, representam os serviços mais especializados e sofisticados (APPLE
INC, 2014).
A arquitetura do sistema operacional iOS é dividida em quatro camadas
(RAY, 2011), conforme Figura 2.
Figura 2: Arquitetura Sistema Operacional IOS (RAY, 2011)
• Cocoa Touch
Camada formada pelos frameworks que fornecem as principais funcionalidades
para o desenvolvimento das aplicações.
• Media Services
Possui os frameworks relacionados a funcionalidades multimídias, como
gráficos complexos, vídeos e criação de gráficos 3D em tempo real.
• Core Services
nesta camada encontram-se as funcionalidades de acesso aos serviços do
sistema operacional, como acesso a arquivos e a rede do celular.
27
• Core OS
É a camada mais próxima ao hardware do dispositivo, acessa os serviços de
mais baixo nível do sistema operacional, como threads, funções matemáticas,
acessórios de hardware e criptografias. Funcionalidades desta camada são
raramente utilizadas em aplicativos
2.2 – SOLUÇÕES MÓVEIS
Ao desenvolver um aplicativo móvel é necessário considerar as
funcionalidades a serem atendidas e a abrangência de plataformas requisitada.
Além disso, fatores como tempo, custo, recursos disponíveis e conhecimento da
equipe, influenciam em sua realização. Com base nos requisitos anteriores, são
apresentadas soluções para o desenvolvimento de aplicativos móveis. Tais
soluções podem ser divididas em três categorias: Nativas, WebApps e Híbridas
2.2.1 – Aplicações nativas
Aplicativos nativos são feitos para determinado sistema operacional,
podendo aproveitar todos os recursos de hardware e de software presentes no
dispositivo. Além do acesso fácil aos recursos do dispositivo, se o aplicativo for bem
concebido, ele respeitará os padrões de design de cada plataforma, atendendo a
padrões de usabilidade. Sua maior desvantagem é o fato de ser necessário
desenvolver aplicativos específicos para cada sistema operacional (AMBROS
2013).
Para Juntunen et al. (2013), a principal vantagem na utilização de aplicações
nativas é o melhor uso dos recursos dos dispositivos, tanto de hardware como de
software. Além disso, não necessitam de conexão à internet para o pleno
funcionamento, e podem ser disponibilizados na loja de aplicativos de seu
respectivo sistema operacional (SO).
28
A opção de distribuir o aplicativo na loja virtual possibilita que ele seja mais
difundido entre usuários, tornando maior sua visibilidade no mercado.
Os aplicativos nativos são desenvolvidos especificamente para uma
determinada plataforma, com tecnologias do próprio SO, as linguagens de
programação e um ambiente integrado de desenvolvimento.
Para um melhor entendimento cada SO tem sua própria linguagem de
programação, como por exemplo: Java para Android (Google Play), Objective-C
para IOS (App store) e C++ ou C# para Windows Mobile (Microsoft Corp), entre
outros. Uma das principais desvantagens dos aplicativos nativos consta de que o
aplicativo desenvolvido só poderá ser executado na plataforma para a qual foi
criado. Caso o criador queira disponibilizar o mesmo em outra plataforma como por
exemplo de Google para IOS, a equipe de desenvolvimento terá que trabalhar com
outras tecnologias especifica do SO, tornando assim o custo do aplicativo mais
elevado (SILVA e SANTOS, 2014).
2.2.2 – Aplicações webapp
WebApps são aplicações desenvolvidas para Web, utilizando as tecnologias
como HyperText Markup Language (HTML), Cascading Style Sheet, (CSS) e
Javascript. O desenvolvimento de web apps permite uma maior participação de
desenvolvedores web na construção de aplicativos móveis (HARTMAN et al, 2011).
A principal vantagem desta solução é a possibilidade de projetar aplicações
sem vínculos com o tipo de dispositivo móvel e plataforma a serem utilizados. O
acesso é realizado por meio de navegadores de internet, apresentando menores
problemas de compatibilidade, estando seu funcionamento vinculado à capacidade
de interpretação de HTML e CSS por parte do browser utilizado no dispositivo.
Apesar de não apresentar da mesma forma que as aplicações nativas, (SMTNY,
2012).
Para Tavares (2016), os Web Apps são desenvolvidos com as linguagens
padrão da Web, HTML, CSS, podendo ainda ter JavaScript na programação dos
mesmos. Pelo fato de serem basicamente sites que serão interpretados pelos
navegadores dos dispositivos móveis, os Web Apps possuem nenhum ou quase
29
nenhum acesso aos recursos de hardware do dispositivo, como a câmera por
exemplo, além da necessidade contínua de acesso à internet para utilizá-los.
Uma outra forma de se desenvolver um Web App é através do conceito de
Progressive Web Apps, (PWAs) introduzido pelo Google em 2015. Seguindo esse
conceito, um Web App utiliza as tecnologias Web mais modernas para diminuir as
diferenças encontradas entre os aplicativos Web e os Híbridos e nativos,
adicionando funcionalidades como a de notificação do smartphone e a possibilidade
de acessar o conteúdo do aplicativo enquanto estiver offline (WAHLSTRÖM 2017).
2.2.3 – Aplicativos híbridos
Atualmente, existem diversos smartphones no mercado e, portanto, diversos
sistemas operacionais em uso. Para cada sistema operacional existe uma
linguagem de programação para ser usada no desenvolvimento de aplicativos. No
Android, por exemplo, os aplicativos são feitos em Java ou Kotlin e no iOS é usada
a linguagem Swift. Os aplicativos codificados pela linguagem do sistema
operacional são chamados Nativos e possuem recursos como acesso a câmera,
geolocalização e arquivos (AUSTINS 2017).
Unindo os conceitos citados, os aplicativos híbridos são desenvolvidos com
tecnologias para a Web e, no entanto, possuem acesso aos recursos nativos do
dispositivo. Esses aplicativos são escritos em HTML, CSS e JavaScript e depois
compilados para sistemas operacionais de dispositivos móveis como o Android e o
iOS. Assim o aplicativo é escrito apenas uma vez e funciona da mesma forma, com
os mesmos recursos em diferentes sistemas operacionais (CHENG 2017).
Quando se trata de um aplicativo teste, também fica em primeiro lugar a
utilização de um aplicativo mobile híbrido, pois como se trata de um teste se torna
mais viável um investimento menor, sendo assim Gouveia (2015) afirma que “não
gaste todas suas moedas em um aplicativo para ver no que vai dar”. Essa afirmação
defende a ideia de que não vale a pena desenvolver um aplicativo teste em
linguagem nativa quando não se sabe o nível de aceitação dos usuários.
30
A melhor opção neste caso é desenvolvê-lo como aplicativo híbrido, e caso
receba aceitação no mercado, é possível inclusive construí-lo como nativo caso o
aplicativo necessitar de um grande processamento de hardware.
De acordo com Silva (2016) os aplicativos móveis híbridos são construídos
com uma combinação de tecnologias web como HTML, CSS e JavaScript. A
principal diferença, é que utilizando o Cordova, os aplicativos híbridos são
acessados pelo aplicativo WebView, que por sua vez, tem acesso aos recursos
nativos da plataforma móvel.
Essa abordagem permite acessar recursos do dispositivo, como
acelerômetro, câmera, contatos e muito mais. Estes recursos são em geral de
acesso restrito por navegadores móveis. Além disso, o framework Cordova permite
incluir outros elementos de interface nativos (plugins) quando for necessário
(ANDRADE, 2016). Na Figura 3 o Cordova através do WebView consegue acessar
os recursos nativos dos dispositivos.
Figura 3: Arquitetura híbrida utilizando Cordova (CORDOVA, 2016)
31
Após conhecermos algumas das características associadas ao
desenvolvimento de aplicações nativas e hibridas e as dificuldades é possível
analisar algumas das principais vantagens e desvantagens quanto a construção
desses aplicativos como vemos na Figura 4.
Figura 4: Aplicativos Nativos x Híbridos (Autor).
Aplicativos híbridos ficam no meio termo entre aplicativos nativos e Web.
Para Silva et. al. (2015), os aplicativos híbridos são executados dentro de um
ambiente de processo nativo na plataforma do dispositivo, assim como os
aplicativos nativos.
Os aplicativos híbridos são desenvolvidos com um conteúdo HTML5 que é
executado por um navegador em tela cheia, que não possui barra de endereços ou
os demais controles normalmente embutidos no navegador. Esses aplicativos usam
uma camada de abstração que permite o acesso as APIs nativas de cada plataforma
através da linguagem JavaScript, que normalmente não estariam acessíveis a partir
de um navegador Web móvel padrão.
Ainda segundo Silva et. al. (2015), algumas vantagens e desvantagens são
descritas nos três métodos de desenvolvimento.
• Aplicação Nativa
32
Vantagem: Acesso a todas APIs e controles nativos, interação com o usuário
ocorre de maneira mais fluida, independente de acesso à internet.
Desvantagem: Distribuição dependente das lojas de cada plataforma,
utilização de uma nova linguagem para cada plataforma diferente.
• Aplicação Hibrida
Vantagem: Rodam enquanto offline, acesso as APIs nativas (câmera, GPS,
acelerômetro etc.), basicamente um único código para múltiplas plataformas roda
em vários aparelhos com diferentes tamanhos de tela e especificações.
Desvantagem: Necessitam de aprovação das lojas, limitação de design e
Performance limitada.
• Aplicação Web App
Vantagem: Não precisa de aprovação das lojas de cada plataforma, roda em
vários aparelhos com diferentes tamanhos de tela e especificações e distribuição e
atualização ocorrem de maneira mais rápida.
Desvantagem: Não pode ser acessado enquanto estiver offline, tem menos
acessos as funcionalidades nativas do dispositivo são sistemas mais lentos.
2.3 – NODE JS
NodeJS, é uma plataforma construída sobre a máquina virtual JavaScript V8,
utilizada no Google Chrome que possibilita o desenvolvimento de aplicações de
rede facilmente escaláveis e rápidas utilizando a linguagem JavaScript. A utilização
da máquina virtual no lado servidor, permite que o código seja compilado para
código de máquina nativo ao invés de utilizar somente código interpretado na forma
de bytecode (CANTELON et al, 2014).
O Node.js é orientado a execução de eventos assíncronos projetado para
criar aplicativos de rede escalonáveis. Possui gerenciador de pacotes o Node
Package Manager (NPM) que facilita o processo de instalação de novas bibliotecas.
O NPM é utilizado neste projeto tanto no desenvolvimento da aplicação no servidor
como também no cliente para instalação de bibliotecas auxiliares (NODE.JS, 2018).
A biblioteca padrão do Node é dividida em duas partes: a primeira é a
bibliotecas que fornecem o loop de eventos de I/O não bloqueante rápido para redes
33
e sistemas de arquivos, e a segunda parte sendo a sua biblioteca HTTP que provê
os métodos de manipulação do protocolo (YOUNG; HARTER, 2015).
A Figura 5 apresenta uma visão geral e de alto nível de como estes
componentes internos se encaixam.
Figura 5: visão geral componentes internos node.js (YOUNG; HARTER, 2015)
2.4 ANGULAR JS
O Angular é uma biblioteca desenvolvida por engenheiros da Google, que
decidiram desenvolvê-lo com intuito de facilitar manutenção de alguns serviços
Web.
Originalmente, o trabalho de 18 mil linhas de códigos foi reduzido para 1.5
mil linhas, representando aproximadamente 91% de redução de linhas de código
esse ganho foi possível devido, principalmente, a grande modularidade e
reusabilidade aplicáveis. A partir dessa ideia a Google utilizou o Angular para
estudos de funcionamento com JavaScript, (SESHADRI; GREEN, 2014).
HTML é a principal linguagem de marcação para a criação de páginas web.
No entanto, os conteúdos exibidos são estáticos e o HTML não fornece suporte para
34
conteúdos dinâmicos. AngularJS é um framework open source, mantido pelo
Google, que permite estender a sintaxe do HTML para poder criar páginas web com
conteúdo dinâmico (BEZERRA; SCHIMIGUEL, 2016).
2.5 HTML 5
O HyperText Markup Language (HTML), é a linguagem de marcação utilizada
pelos conteúdos disponibilizados na internet. É basicamente um sistema de código
em textos que possibilitam criar a estrutura que vemos nas páginas da internet
(PRESCOTT, 2015).
A última versão da linguagem HTML, o HTML5, prioriza os seguintes itens:
Linguagem com núcleo simples, markups baseados na semântica, CSS utilizado
para detalhes de estilo, páginas Web utilizadas como aplicações e Javascript
central, incluindo a utilização da tecnologia Asynchronous Javascript and XML,
(AJAX) conforme relata Harris (2011).
O HTML 5 é formado diferentes tecnologias, como: HTML, CSS, JavaScript
e outras tecnologias que são executadas na camada do cliente e do servidor desta
forma é possível organizar a arquitetura do HTML 5 conforme a Figura 6.
Figura 6: Arquitetura HTML5 (HARRIS, 2011)
35
2.6 CSS
Cascading Style Sheet (CSS) é uma linguagem de folha de estilo utilizada
para descrever a aparência e a formatação de um documento escrito em uma
linguagem de marcação. Embora na maioria das vezes utilizada para alterar o estilo
de páginas Web, mas também pode ser aplicada a qualquer tipo de documento
Extensible Markup Language (XML). Junto com HTML e JavaScript, CSS é uma
tecnologia fundamental, utilizada pela maioria dos sites para criar páginas Web
visualmente atraentes e interfaces de usuário para muitas aplicações móveis
(SAMY SILVA, 2010).
Segundo Colisson (2008) objetivo inicial de CSS era separar o conteúdo da
forma, e se cumpriu já com as primeiras especificações da linguagem. Entretanto,
o objetivo de oferecer um controle total aos desenvolvedores sobre os elementos
da página foi mais difícil de cobrir. As especificações anteriores das linguagens
tinham muitas utilidades para aplicar estilos às páginas WEB, porém os
desenvolvedores ainda continuavam usando diversos códigos improvisados para
conseguir efeitos tão comuns ou tão desejados, como as bordas arredondadas ou
a sombra de elementos na página, que só eram possíveis com auxílio de software
editor de imagens, como Adobe Fireworks.
Com a utilização do CSS, todo código de estilo da página pode ser separado
da estrutura do documento, tornando as partes mais independentes uma da outra.
Essa combinação também torna o código mais flexível, já que o mesmo arquivo
CSS pode ser compartilhado por várias páginas, ou mesmo, uma página usar
diferentes estilos, porém mantendo sempre o conteúdo. (MACEDO, 2006).
2.7 JAVA SCRIPT
JavaScript, (JS) é uma linguagem de script de programação não compilada
e sim interpretada dessa maneira, é fundamental que o navegador seja compatível
com a linguagem de script. O JS contém sintaxes e instruções semelhantes às do
Java, porém, com uma manipulação muito mais simples e fácil. (SILVA, 2010).
36
O JS desempenha um papel importante no comportamento e funcionalidades
de aplicações é usado para definir as ações de cada elemento HTML. Sem a
presença do JS algumas das características importantes do HTML5 não estariam
acessíveis. Por exemplo, armazenamento de dados local e a funcionalidade
geolocalização dependem diretamente desta linguagem de programação (HARRIS,
2011).
Segundo Crockford (2008), o JS é uma linguagem importante porque é a
linguagem dos navegadores web, ela também é uma das linguagens de
programação mais populares no mundo. Ele foi criado para executar no lado do
cliente, ou seja, é utilizado um interpretador JS presente no navegador do usuário
para fazer a interpretação e promover o funcionamento da linguagem.
Em uma pesquisa realizada por Stack Overflow (2017) consultou 27.612
desenvolvedores que responderam perguntas sobre as linguagens e tecnologias
que aprenderam e ajudaram a construir suas carreiras profissionais ou que
demandam no mercado de trabalho. Cerca de 66.7% dos usuários responderam
que utilizaram JS para desenvolvimento profissional, como pode ser visualizada na
Figura 7.
Figura 7: Tecnologias que demandam no mercado (STACK OVERFLOW, 2017):
37
2.8 WEBSERVICE
O Web Service é um tipo de aplicação para a web e seus componentes
podem ser aplicados e executados de modo independente de plataforma. Sendo
então, uma solução de conectividade para computação distribuída provendo
interoperabilidade entre plataformas.
A interoperabilidade é a capacidade de um sistema de se comunicar de forma
transparente com outro sistema. Web Services são divididos em dois grupos, sendo
o primeiro baseado em Service-Oriented Architecture, (SOA) e o segundo do estilo
Representacional State Transfer (REST). Uma aplicação com arquitetura SOA
combinam serviços para oferecer outros serviços. A principal forma de implementar
SOA hoje é através de Web Services. E a segunda REST, no qual, qualquer
informação disponível é um recurso (KALIN, 2010). Quando criamos web services
utilizando o estilo de arquitetura REST, estamos criando uma aplicação RESTful.
Os Web services RESTful expõem os recursos através de URIs e utilizam os
métodos do HTTP para criar, retornar, alterar e excluir os seus recursos (MARTINS,
2015).
Toda mensagem HTTP possui um método. O método diz ao servidor qual a
ação que ele deve tomar. Para tanto, foram disponibilizados alguns métodos HTTP,
conhecidos também como verbos, pois o verbo irá determinar a ação a ser tomada
no recurso. A tabela 1 apresenta os métodos mais comuns (MARTINS, 2015).
POST Cria um novo recurso através de dados solicitados
GET Ler um recurso
PUT Atualiza
DELETE Delete
Tabela 1: Tabela de Operações REST (KALIN, 2010)
38
2.9 VISUAL STUDIO CODE
Nesse projeto foi utilizado como principal ferramenta para implementação
dos códigos o Microsoft Visual Studio Code, (VS) .Ele é uma ferramenta
desenvolvida pela Microsoft e tem ganhado um espaço e presença marcantes no
cenário de desenvolvimento e programação de aplicações web pois possui suporte
para Node.js, PHP, Ruby, Python, entre outras mais.
Sua licença é gratuita tendo seu código fonte disponibilizado no GitHub. Vale
explicitar que o editor não é uma cópia do Visual Studio Enterprise, por sua vez, é
semelhante a outros editores como o Sublime Text, Atom ou Brackets (VISUAL
STUDIO CODE, 2019)
Por ser open source, permite que a comunidade técnica possa contribuir com
seu desenvolvimento e facilitando a criação de extensões e novas funcionalidades
(DIONISIO, 2016).
2.10 – IONIC FRAMEWORK
Ionic é framework front-end para criação de aplicativos híbridos com
tecnologias web construído no Apache Cordova. Facilita a criação de aplicativos
com interface gráfica e tem interações muito semelhantes aos dispositivos nativos,
de modo que a experiência de usuário não seja diferente no uso de uma aplicação
nativa e multiplataforma (DRIFTY, 2016).
O Ionic nada mais e que a fusão das tecnologias web, mais especialmente
front-end (JavaScript, TypeScript, HTML e CSS) e recursos nativos do smartphone
(VIEBRANTZ; CAMPOS, 2015).
Segundo Devmedia (2019) Ionic trabalha com soluções Front-end web:
HTML, CSS e JavaScript, no entanto, como diferencial em relação ao framework
que adota como base, o Apache Cordova, traz recursos que simplificam ainda mais
o desenvolvimento e dão ao app um aspecto mais profissional, com tudo utilizando
39
o Inioc podemos desenvolver para diversas plataformas como apresentado na
Figura 8.
Figura 8: Plataformas Suportadas pelo Ionic (DEVMEDIA, 2019)
2.11 – API
Application Programming Interface, (API) trata-se de um conjunto de rotinas
e padrões estabelecidos e documentados por uma aplicação, para que outras
aplicações consigam utilizar as funcionalidades desta sem precisar conhecer
detalhes da implementação do software. Dessa forma, entendemos que as APIs
permitem uma interoperabilidade entre aplicações. Em outras palavras, a
comunicação entre aplicações e entre os usuários (PIRES, 2017).
API é uma forma de integrar sistemas, possibilitando benefícios como a
segurança dos dados, facilidade no intercâmbio entre informações com diferentes
linguagens de programação e a monetização de acessos, elas proporcionam a
integração entre sistemas que possuem linguagem totalmente distintas de maneira
ágil e segura (FERNANDES, 2018).
2.12 – GEOLOCALIZAÇÃO
40
Geolocalização é o processo de encontrar a localização exata de um
computador, dispositivo de rede ou equipamento com base em medições e
coordenadas geográficas (NEKA, 2017).
De acordo com Ionicframework (2019), este plug-in fornece informações
sobre a localização do dispositivo, como latitude e longitude. As fontes comuns de
informações de localização incluem o Sistema de Posicionamento Global (GPS) e
a localização inferida a partir de sinais de rede, como endereço IP, endereços RFID,
WiFi e Bluetooth MAC e IDs de célula GSM / CDMA.
2.13 – GOOGLE MAPS
Google Maps permite monitorar o trânsito em tempo real, recalculando seu
trajeto dinamicamente com base nos padrões de trânsito encontrados, ajudando a
evitar congestionamentos (GOOGLE, 2016).
De acordo com Tecmundo (2017), a API do Google Maps é um conjunto de
interfaces oferecido pelo Google para ser utilizado em aplicações, essa API contém
códigos, configurações que servem para localizar posições no Google Maps, em
interação com o GPS dos dispositivos pode mostrar e indicar trajetos sua
localização precisa. A criação de aplicativos e sistemas, proporciona mais rapidez
e qualidade para interfaces.
O sucesso desta API é devido ao fácil método de utilização e aplicação dela
em sistemas, por sua alta velocidade, simplicidade e familiaridade com os mapas
do Google. Apesar de algumas limitações ainda é a API mais utilizada, em mais de
um milhão de websites e aplicações (SCUSSEL, 2013).
2.13.1– Vantagens do Google Maps
• Visualizações de mapa;
• Instruções;
• Mapas personalizados;
41
• informação adicional.
2.13.2– Limitações do Google Maps
• Precisão;
• Acessibilidade;
2.14 – CHATS
Os chats surgiram como um dos principais recursos da Internet difundidos na
década de 1990. São “meios de comunicação através dos quais as pessoas se
interconectam, para conversar em tempo real, utilizando-se da linguagem escrita”
(COLETA, et al, 2008).
Quando se fala de chat logo pensa-se em uma base de dados Realtime
nesse contexto podemos utilizar o Firebase como uma possível solução. Segundo
(RODRIGUES, 2018),
Firebase é um banco de dados NoSQL que sincroniza dados JSON em
tempo real entre todos seus usuários, ou seja, em aplicação para Android, iOS ou
Web, em curto espaço de tempo consegue sincronizar todos os dados sem a
necessidade de criar algum WebService para realizar essas operações.
2.15 – BASE DE DADOS NÃO RENACIONAL (NOSQL)
Bancos de dados relacionais têm dominado a indústria de software por um
longo período de tempo, provendo mecanismos para persistir dados estruturados,
controlar concorrência e transações, alguns exemplos de bancos de dados
relacionais são: Oracle, feito pela empresa que leva o mesmo nome; MySQL,
também feito pela Oracle; PostgreSQL, banco de dados de código aberto feito pela
comunidade de software livre. Embora os bancos de dados relacionais sejam
amplamente utilizados no mercado, eles possuem algumas limitações (LEAVITT,
2010).
42
Dadas as limitações que os bancos de dados relacionais possuem, o movimento
dos bancos de dados NoSQL ganha cada vez mais força na indústria do software,
sendo assim os bancos de dados não relacionais são classificados em quatro
categorias (SADALAGE, 2014).
• Chave-valor: guardam um valor associado a uma chave que o identifica.
Exemplos de bancos de dados chave-valor são o Redis e o Memcached.
• Orientados a documentos: armazenam -como o próprio nome sugere -
documentos que podem ser arquivos XML, JavaScript Object Notation,
(JSON) entre outros. Alguns exemplos de bancos de dados orientados a
documentos são o MongoDB e o CouchDB.
• Orientados à coluna: diferem dos bancos tradicionais, pois não armazenam
os dados em linhas, mas em colunas. Com os dados armazenados em
colunas é possível obter um ganho de performance nas consultas por
informações do mesmo tipo. Exemplos são o Cassandra, do Facebook, e o
Amazon DynamoDB.
• Grafo: permite que sejam armazenadas entidades e o relacionamento entre
essas entidades. Entidades são conhecidas como nós e os relacionamentos
são conhecidos como as arestas. Exemplos comuns são o Neo4J e o Infinite
Graph.
2.16 – FIREBASE
Para Google (2019), Firebase é um conjunto de ferramentas que servem para
criar, melhorar e expandir um aplicativo, munido de um conjunto de serviços que os
desenvolvedores normalmente teriam que construir por conta própria, mas
realmente não querem criar, porque eles preferem se concentrar na própria
experiência do aplicativo. De acordo com Bastchinski, (2016), o Firebase possibilita
aos desenvolvedores abstraírem completamente a infraestrutura do lado do
servidor, permitindo assim, aos desenvolvedores, se concentrarem na experiência
do usuário front-end em vez de lidar com infraestrutura e codificação do back-end.
43
O Firebase é uma plataforma do Sistema Google que contém várias
ferramentas e uma infraestrutura para auxiliar desenvolvedores de aplicações web
e de dispositivos móveis na construção de software de alta qualidade e performance
(FAN 2016). Esta plataforma contém quatro segmentos de serviços: Analytics,
Develop, Grow e Earn, como mostra a Figura 9.
Figura 9:Segmentos de Serviços Firebase (FAN, 2016):
2.17 – SQLITE
SQLite é uma biblioteca open source que implementa um banco de dados
relacional embutido com o passar dos anos o SQLite ganhou grande reputação por
ter extrema portabilidade, facilidade de uso, confiabilidade e com grande eficiência
(COOPER, 2008). O SQLite é composto de uma biblioteca que implementa um
banco de dados SQL autossuficiente, sem servidor ou configuração e transacional
tem um mecanismo de banco de dados Structured Query Language (SQL)
incorporado, visto que não possui um processo de servidor em separado e tudo
44
estando contido em um único arquivo de disco o que otimiza o gasto com espaço
em memória podendo facilmente ser embarcado em dispositivos moveis (SQLITE,
2017).
De forma prática e objetiva, o SQLite funciona como um minidata Base
Management System, (SGBD) capaz de criar, ler e escrever um arquivo no disco do
dispositivo móvel, este arquivo é capaz de manter uma grande quantidade de
tabelas, (SQLite, 2014). Os componentes permitem a interoperabilidade entre os
vários subsistemas do celular. Por exemplo, um aplicativo pode acessar a agenda
de contatos e realizar uma chamada, capturar uma imagem pela câmera, descobrir
qual a localização do celular etc. (PROJECT, 2012).
45
3 – ANÁLISE E ESPECIFICAÇÃO DO SISTEMA
Neste capítulo foram apresentadas as ferramentas utilizadas para análise,
especificações de requisitos funcionais e a modelagem de diagramas para melhor
entendimento do desenvolvimento aplicativo WorkIt e suas funcionalidades.
O objetivo da aplicação é fazer com que profissionais de todas as áreas de
serviços possam disponibilizar seu produtos e serviços em modalidade freelance ou
até quem está desempregado possa ter uma opção de renda realizando trabalhos
em curtos períodos, bem como as empresas de todo tipo de segmento possam
disponibilizar vagas de freelance para profissionais interessados.
Essa aplicação não tem intuito de oferecer vagas de trabalho do tipo CLT
pois há diversas plataformas voltadas para esse segmento.
3.1- OBJETIVOS ESPECIFICOS DA APLICAÇÃO
• Divulgar vagas de freelance para todas as áreas de serviços.
• Divulgar disponibilidade de profissionais de todas as áreas de serviços que
estão disponíveis para trabalhar em dias e horários alternativos em
modalidade freelance.
• Fazer com que os próprios usuários da aplicação interajam entre si para que
possam fechar oportunidades de serviços.
3.2- REQUISITOS E FUNCIONALIDADES DA APLICAÇÃO
• Criar conta no sistema;
• Criar perfil no sistema;
• Pesquisar por oportunidades;
• Tela de mensagem entre usuários;
• Pagamento via cartão de crédito;
• Avaliação dos serviços;
46
• Atualizações de novas oportunidades;
• Mapa de localização de oportunidades;
• Tela de avaliação do sistema;
• Usuários não cadastrados.
3.3- CRIAR CONTA NO SISTEMA
• A criação de conta basta inserir um e-mail válido e definir uma senha de no
mínimo 6 dígitos.
• Após a validação o usuário tem acesso ao aplicativo para poder editar seu
perfil e utilizar as funcionalidades da aplicação.
3.4- EDITAR PERFIL NO SISTEMA
• Para o usuário poder criar seu perfil no sistema, ele tem que disponibilizar
algumas informações básicas, ele deve informar se ele está se cadastrando
para ofertar uma oportunidade de serviço ou para se candidatar a uma
oportunidade de serviço.
• O usuário tem a opção de tanto de excluir como bloquear seu perfil no
sistema.
• Após se cadastrar e logar no sistema o usuário pode editar seu perfil
informando seus dados pessoais e profissionais e posteriormente fazer suas
publicações informando se deseja publicar como oportunidade ou
disponibilidade.
• A aplicação disponibiliza para o usuário alterar a qualquer momento seus
dados cadastrais para que o usuário possa se adequar a vaga que deseja
encontrar.
3.5- PESQUISAR POR OPORTUNIDADES
47
Os usuários podem navegar por todo painel de oportunidades para procurar
oportunidades de acordo com seu perfil.
3.6- TROCA DE MENSAGENS ENTRE USUÁRIOS
Após fazer a escolhas das oportunidades desejadas os usuários podem
mover as publicações escolhidas para seu painel onde poderão trocar mensagens
para acertar questões financeiras, local de trabalho, detalhes sobre o tipo de serviço
a ser executado.
3.7- OPÇÃO DE PAGAMENTO VIA APLICATIVO
Toda a movimentação é feita pelo sistema que contabiliza o valor do serviço
a ser pago mediante ao valor da hora combinada entre ambas as partes.
Após a finalização do serviço o sistema calcula o valor a ser pago debita a
taxa de serviço do sistema e informa o valor total a ser pago, a plataforma vai
disponibilizar para o usuário contratante a opção de fazer o pagamento via cartão
de crédito.
.
3.8- AVALIAÇÃO DOS SERVIÇOS PRESTADOS
Após a finalização os usuários têm a opção de avaliar os serviços prestados
isso vai garantir qualidade os usuários no sistema.
Essa avaliação vai ser medida por pontuação de 0 a 10 e na medida que os
usuários são pontuados vão subindo em um ranking crescente ou decrescente de
acordo com a pontuação.
• Iniciante
• Expert
• Master
48
• Allstar
Após a finalização do serviço os usuários têm a opção de retirar suas
publicações se não acharem mais necessário.
3.9- FEEDS DE ATUALIÇÃO DE OPUTUNIDADES NO SISTEMA
Funcionalidade que permite que qualquer usuário cadastrado pode visualizar
quando uma oportunidade de negócios for inserida no aplicativo estando sempre
atualizada.
3.10- MAPA DE LOCALIZAÇÃO DE OPORTUNIDADES
Funcionalidade permite que qualquer usuário cadastrado possa visualizar de
acordo com sua localização todas as oportunidades disponíveis no sistema.
3.11-AVALIAÇÃO DO SISTEMA
Funcionalidade que permite que usuários cadastrados no sistema possam
avaliar o sistema para melhoria contínua.
3.12– MAPA MENTAL
Com intuito de apresentar um modelo visual para o melhor entendimento do
projeto e suas funcionalidades foi elaborado um diagrama utilizando os conceitos
de Mind Map. De acordo com Jhonson (2010) mapa mental é uma representação
em alto nível de compreensão de objetos e ações, portanto é um instrumento que
visa representar no papel o que se conhece sobre determinado assunto. A Figura
10 ilustra o contexto a ser explorado nesta pesquisa.
O mapa mental apresentado fornece uma análise logica sobre as
funcionalidades de seus respectivos atores do Aplicativo WorkIt.
49
3.13 – LISTA DE REQUISITOS
Entre diversas funcionalidades da aplicação WorkIt, destacam-se os
seguintes requisitos:
• Manter publicações;
• Manter localização;
• Manter perfil;
• Acessar mapas de publicações;
• Enviar mensagens;
• Avaliar sistema;
Figura 10: Mapa mental Aplicativo WorkIt
50
• Avaliar usuários;
• Efetuar pagamentos;
• Confirmar pagamentos;
• Emitir relatórios;
• Manter oportunidade no sistema;
• Se candidatar a uma publicação
• Controlar porcentagem do sistema;
• Controlar movimentação;
• Atualização de novas publicações.
3.14 – DIAGRAMA E ESPECIFICAÇÃO DE CASOS DE USO
Este diagrama contém relacionamentos de dependência e associação, são
basicamente usados para fazer a modelagem de visão estática do caso de uso do
sistema. Essa visão proporciona suporte principalmente para o comportamento do
sistema e seus serviços e funcionalidades. Pender (2004) relata que o objetivo do
diagrama de caso de uso é identificar todos os recursos que são dispostos ao
usuário, de modo que não revele os detalhes sobre o desenvolvimento desses
recursos. As Figuras 11,12 e 13 representam os diagramas de caso de uso de cada
ator que fará interação como o aplicativo sendo, “Usuários cadastrados,
Administrador e o próprio Sistema”.
51
Figura 11: Diagrama de Caso de Uso Usuário Cadastrados
Figura 12: Diagrama de Caso de Uso Usuário Administrador
53
UC 01- Criar conta
1- Finalidade/ Objetivo
Criação de conta no sistema.
2- Atores Usuários e administrador
3- Evento Inicial O ator seleciona a opção criar conta
4- Fluxo Principal a) O sistema oferece a interface para o usuário informar e-mail e senha para criação de conta;
b) Usuário infirma informa e-mail e senha (A1) c) O sistema envia e-mail de confirmação; d) O usuário confirma recebimento de e-mail;
5- Fluxo Alternativo A1 – O sistema mostra opções de forma pagamento via aplicativo a) O usuário seleciona a opção de pagamento via aplicativo. b) O sistema oferece a interface coma as opções de
pagamento. c) O Usuário seleciona a opção desejada. d) Volta para página inicial
Usuários e Administrador
Criar conta
Tabela 2: Caso de Uso Criar Conta
Figura 14: Caso de Uso Criar Conta
54
UC 02- Login no sistema
a) Finalidade/ Objetivo
Fazer o login no sistema.
b) Atores Usuários e administrador
c) Pré-requisito O usuário ter ciado uma conta
d) Evento Inicial O ator seleciona a opção fazer login
e) Fluxo Principal a) O sistema oferece a interface para o usuário informar e-mail e senha para efetuar o login;
b) O usuário informa e-mail e senha c) O sistema libera acesso do usuário.
Usuários e Administrador
Login no sistema
Tabela 3: Caso de Uso Fazer Login no Sistema
Figura 15: Caso de Uso Login no sistema
55
UC 03- Manter Perfil no Sistema
1- Finalidade/ Objetivo
Manter perfil no sistema.
2- Atores Usuários e administrador
3- Pré-requisito Usuário estar logado no sistema
4- Evento Inicial O usuário seleciona a opção editar perfil
5- Fluxo Principal a) O sistema oferece a interface para o usuário. b) O usuário seleciona editar perfil. (A1), (A2) c) O sistema mostra para o usuário as opções de alteração. d) O usuário edita as opções de deseja alterar e salva as
alterações. e) O sistema retorna para página inicial.
6- Fluxo Alternativo A1- Excluir Perfil do sistema. a) O usuário seleciona a opção excluir perfil. b) O sistema informa para o usuário deseja realmente excluir
seu perfil. c) O usuário aceita que deseja excluir o perfil d) O perfil e excluído do sistema. e) Volta para o fluxo principal (B). A2- Bloquear Perfil. f) O usuário seleciona a opção bloquear perfil. g) O sistema informa se o usuário realmente deseja bloquear o
perfil. h) O usuário aceita que deseja bloquear o perfil. i) Perfil é bloqueado no sistema. j) E volta para o fluxo principal (B).
Usuários e Administrador
Manter Perfil no
Sistema
Tabela 4: Caso de Uso Manter Perfil no Sistema
Figura 16: Caso de Uso Manter Perfil no Sistema
56
UC 04- Publicar Oportunidade
1- Finalidade/ Objetivo
Publicar Oportunidade
2- Atores Usuários
3- Pré-requisito Usuário estar logado no sistema
4- Evento Inicial O usuário seleciona a opção publicar
5- Fluxo Principal a) O sistema oferece a interface para o usuário. b) O usuário seleciona a opção publicar.
c) c) O sistema mostra a interface para editar sua Publicação. d) d) O usuário edita sua Publicação com segmento de trabalho sua
disponibilidade, tipo de publicação e salva os dados. e) e) O sistema publica sua disponibilidade no sistema.
Usuários
Publicar
Oportunidade
Figura 17: Caso de Uso Publicar Oportunidade
Tabela 5: Caso de Uso Publicar Oportunidade
57
UC 05- Manter oportunidade
1- Finalidade/ Objetivo
Manter Oportunidade no sistema.
2- Atores Usuários
3- Pré-requisito Usuário estar logado no sistema
4- Evento Inicial Manter Oportunidade
5- Fluxo Principal a) O sistema oferece a interface para o usuário. b) O usuário seleciona a opção publicar. (A1) c) O sistema mostra a interface para editar sua publicação. d) O usuário edita sua formação técnica, área de atuação,
segmento de trabalho e sua disponibilidade e salva os dados. e) O sistema salva sua publicação. f) O sistema volta para página inicial.
6- Fluxo Alternativo A1- Excluir publicação. a) O usuário seleciona a opção excluir publicação. b) O sistema informa para o usuário deseja realmente excluir
sua Disponibilidade. c) O usuário aceita que deseja excluir sua publicação d) A publicação é excluída do sistema. e) Volta para o fluxo principal (B).
Usuários
Manter
Oportunidade
Figura 18: Caso de Uso Manter Oportunidade
Tabela 6: Caso de Uso Manter Oportunidade
58
UC 06- Selecionar uma Oportunidade
1- Finalidade/ Objetivo
Selecionar uma Oportunidade.
2- Atores Usuários
3- Pré-requisito Usuário estar logado no sistema
4- Evento Inicial O usuário selecionar Oportunidades
5- Fluxo Principal a) O sistema oferece a interface para o usuário. b) O usuário seleciona a opção atualizações. c) O sistema mostra interface para selecionar a oportunidade
desejada. d) O usuário seleciona a Oportunidade desejada move ela para
seu painel e) O sistema salva a oportunidade selecionada no painel do
usuário.
Usuários
Selecionar uma
Oportunidade
Figura 19: Caso de Uso Selecionar uma Oportunidade
Tabela 7: Caso de Uso Selecionar uma Oportunidade
59
UC 07- Pesquisar por Oportunidade
1- Finalidade/ Objetivo
Pesquisar por Oportunidade.
2- Atores Usuários e Administrador
3- Pré-requisito Usuário estar logado no sistema
4- Evento Inicial O usuário seleciona a opção Pesquisar por Oportunidade.
5- Fluxo Principal a) O sistema oferece a interface para o usuário. b) O usuário seleciona Oportunidade. c) O sistema mostra a interface para o usuário com todas
oportunidades publicadas. d) O usuário seleciona as opções que mais se enquadra ao seu
perfil e seleciona pesquisar. e) Pode visualizar os detalhes de cada publicação
Usuários e Administrador
Pesquisar por
Oportunidade
Tabela 8: Caso de Uso Pesquisar por Oportunidade
Figura 20: Caso de Uso Pesquisar por Oportunidade
60
UC 08- Acessar o Mapa de Oportunidades
1- Finalidade/ Objetivo
Acessar o mapa de Oportunidades
2- Atores Usuários e Administrador
3- Pré-requisito Usuário estar logado no sistema
4- Evento Inicial O usuário acessa o mapa de oportunidades.
5- Fluxo Principal a- O sistema oferece a interface para o usuário. b- O usuário seleciona mapa de oportunidades. c- O sistema mostra a interface do mapa para o usuário e
localização das publicações feitas no sistema.
Usuários e Administrador
Acessar o mapa de
Oportunidades
Tabela 9: Caso de Uso Acessar Mapa de Oportunidades
Figura 21: Caso de Uso Acessar Mapa de Oportunidades
61
UC 09- Enviar Mensagens
1- Finalidade/ Objetivo
Enviar Mensagens
2- Atores Usuários e Administrador
3- Pré-requisito Usuário estar logado no sistema.
4- Evento Inicial O usuário seleciona a opção Enviar Mensagem
5- Fluxo Principal a) O sistema oferece a interface para o usuário. b) O usuário seleciona Enviar Mensagens. c) O sistema mostra interface de bate papo entre os usuários. d) O usuário seleciona o usuário para quem deseja enviar
mensagem. e) O sistema mostra para o usuário um chat box para o usuário
enviar suas mensagens.
Usuários e Administrador
Enviar
Mensagens
Tabela 10: Caso de Uso Enviar Mensagens
Figura 22: Caso de Uso Enviar Mensagens
62
UC 10-Fazer Pagamentos
1- Finalidade/ Objetivo
Fazer Pagamentos
2- Atores Usuários
3- Pré-requisito Usuário estar logado no sistema.
4- Evento Inicial O usuário seleciona a opção Fazer Pagamentos
5- Fluxo Principal a) O sistema oferece a interface para o usuário. b) O usuário seleciona Fazer Pagamento. (A1) c) O sistema mostra interface para o usuário com os valores dos
serviços prestados. d) O usuário seleciona a opção efetuar pagamento. e) O sistema processa o pedido de pagamento e mostra após
esse período não será possível realizar o cancelamento do pagamento.
6- Fluxo Alternativo A1- dados de pagamento não cadastrados. a- O usuário é direcionado para página de cadastro de cartão de
crédito b- O sistema mostra para o usuário os dados que devem ser
inseridos. c- O usuário informa os dados d- O sistema processa os dados e redireciona o usuário para a
página de pagamentos e- Volta para o fluxo principal (B).
Usuários
Fazer
Pagamentos
Figura 23: Caso de Uso Fazer Pagamentos
Tabela 11: Caso de Uso Fazer Pagamentos
63
UC 11-Avaliar Usuários
1- Finalidade/ Objetivo
Avaliar Usuários
2- Atores Usuários e Administrador
3- Pré-requisito Usuário estar logado no sistema.
4- Evento Inicial O usuário seleciona a opção avaliar Usuários
5- Fluxo Principal O sistema oferece a interface para o usuário. a- O usuário seleciona a opção avaliar usuários. b- O sistema mostra interface para o usuário escolher qual
usuário deseja avaliar. c- O usuário seleciona o perfil que deseja avaliar d- O sistema oferece uma interface para o ator avaliar o usuário. e- O ator faz a avaliação do usuário e salva. f- Volta para página inicial.
Usuários e Administrador
Avaliar usuários
Figura 24: Caso de Uso Avaliar Usuários
Tabela 12: Caso de Uso Avaliar usuários
64
UC 12-Avaliar Sistema
1- Finalidade/ Objetivo
Avaliar Sistema
2- Atores Usuários
3- Pré-requisito Usuário estar logado no sistema.
4- Evento Inicial O usuário seleciona a opção avaliar Sistema
5- Fluxo Principal O sistema oferece a interface para o usuário. a) O usuário seleciona a opção avaliar Sistema. b) O sistema mostra interface para o usuário fazer a avaliação. c) O ator faz a avaliação do usuário e salva. d) Volta para página inicial.
Usuários
Avaliar Sistema
Figura 25: Caso de Uso Avaliar Sistema
Tabela 13: Caso de Uso Avaliar Sistema
65
UC 13-Emitir Relatório Movimentação
1-Finalidade/ Objetivo
Emitir Relatório Movimentação
2-Atores Usuários
3-Pré-requisito Usuário estar logado no sistema.
4-Evento Inicial O usuário seleciona a opção Suas Movimentações
5- Fluxo Principal O sistema o oferece uma interface para o usuário. a- O usuário pode visualizar a quantidade de movimentações. b- Detalhes de cada movimentação realizada. c- Valor total de suas movimentações.
Usuarios
Emitir Relatório
Movimentação
Figura 26: Caso de Uso Emitir Relatório Movimentação
Tabela 14: Caso de Uso Emitir Relatório Movimentação
66
UC 14-Emitir Relatório Movimentação do Sistema
1-Finalidade/ Objetivo
Emitir Relatório Movimentação do Sistema
2-Atores Usuário Administrador
3-Pré-requisito Usuário estar logado no sistema.
4-Evento Inicial O usuário seleciona a opção Relatório Sistema
5- Fluxo Principal O sistema mostra interface para o usuário selecionar os relatórios que deseja visualizar. (A1), (A2), (A3) a- O usuário pode visualizar resumidamente algumas opções. b- Quantidade de usuários no sistema. c- Quantidade de publicações realizadas. d- Resumo das movimentações.
6-Fluxo Alternativo A1- Usuários no sistema a) o usuário seleciona a opção Usuários Sistema b) o sistema mostra ao usuário uma interface com algumas informações dos usuários cadastrados. A2- Publicações c) o usuário seleciona a opção publicações. d) o sistema mostra ao usuário uma interface todos as publicações realizadas. A3- Movimentações e) o usuário seleciona a opção movimentações. f) o sistema mostra ao usuário uma interface com todas as movimentações realizadas no sistema
Os diagramas de caso de uso apresentados representam as funcionalidades
e suas respectivas narrativas do Aplicativo WorkIt e seus Atores.
Usuários Administrador
Emitir Relatório Movimentação do
Sistema
Figura 27: Caso de Uso Emitir Relatório Movimentação Sistema
Tabela 15: Caso de Uso Emitir Relatório Movimentação
67
3.15 – DIAGRAMA DE ATIVIDADES
O Diagrama de Atividades é considerado uma variação do Diagrama de
Estados, muito parecido com um fluxograma e por este motivo é facilmente
entendido por pessoas sem muito conhecimento técnico. De maneira simples o
diagrama de atividades mostras a sequência do sistema (RAMOS, 2006).
Figura 28: Digrama de Atividade Publicar Oportunidade
69
Os diagramas de atividade apresentados ilustram o processo de cada
atividade em específico, mesmo que em alguns momentos elas se relacionem no
sistema.
3.16 – DIAGRAMA DE SEQUÊNCIAS
Segundo SILVA (2008), basicamente o diagrama de sequência ajuda a
definir a ordem temporal das trocas de mensagens entre os envolvidos em
determinado processo, ele é baseado no desenvolvimento do diagrama de Caso de
Uso, e também no diagrama de Classes, o diagrama de Sequência tem como seu
principal objetivo determinar como irão acontecer os eventos e como serão trocadas
as mensagens dentro do sistema.
Figura 30: Digrama de Atividade Efetuar Pagamento
71
Os diagramas de sequência apresentados ilustram a troca de mensagens
para a execução de uma determinada atividade solicitada pela entidade.
3.17 – DIAGRAMA DE CLASSE
Um diagrama de classes é um modelo fundamental de uma especificação
orientada a objetos representa a descrição mais próxima da estrutura do código de
um programa, ou seja, mostra o conjunto de classes com seus atributos e métodos
e os relacionamentos entre classes, (SILVA, 2007).
Para melhor visualização o diagrama de classes foi dividido em 3 partes nas
Figuras 33, 34 e 35.
Figura 32: Digrama de Sequência Efetuar Pagamento
74
O diagrama apresentado define todas as classes, atributos e
relacionamentos existentes do aplicativo WorkIt.
3.18 – MODELO ENTIDADE – RELACIONAMENTO
A modelagem de dados é uma parte importante da modelagem de sistemas
pois define a forma lógica dos dados processados. A técnica de modelagem de
dados mais utilizada é o modelo Entidade-Relacionamento exibe as entidades e
seus atributos associados com relacionamentos entre entidades.
Figura 35: Digrama de Classe aplicativo WorkIt parte 3
75
É interessante notar que a UML não define uma notação específica para essa
modelagem de banco de dados, já que ela assume que o processo de
desenvolvimento é orientado a objetos (SOMMERVILLE, 2007). As Figuras 36 e 37
a mostra o diagrama ER do aplicativo Workit.
O diagrama apresentado ilustra as tabelas e relacionamentos existentes no
aplicativo WORKIT.
Figura 36: Digrama ER aplicativo WorkIt parte 1
77
4 – ESTRUTURA DO PROJETO
O desenvolvimento da aplicação será dividido em fases e etapas. Para
exemplificá-las utilizou-se o diagrama de Estrutura Analítica de Projetos, (EAP) do
inglês Work Breakdown Structure ou (WBS). A EAP fornece uma visão estruturada
das entregas do projeto e é um ótimo instrumento para alinhar o entendimento do
projeto e integrar todas as áreas, normalmente é representada de forma gráfica que
visa facilitar o entendimento do projeto (MONTES, 2017).
.
4.1 – ESTRUTURA ANALITICA DO PROJETO
Para um melhor entendimento da estrutura de desenvolvimento seguindo os
padrões (EAP) optou-se por elaborar um diagrama de sequenciamento das
atividades que ocorreram durante o desenvolvimento do projeto. Esse
sequenciamento de atividade tem como objetivo estimar aproximadamente o tempo
de execução de cada atividade como vemos na Figura 38.
Figura 38: Estrutura Analítica aplicativo WorkIt
78
4.2 – SEQUENCIAMENTO DAS ATIVIDADES
O diagrama de sequenciamento de atividades apresentado da Figura 39
ilustra o tempo de duração para a realização de cada atividade do projeto em
desenvolvimento, tendo como objetivo definir de forma lógica de execução das
tarefas.
O diagrama apresentado ilustra o tempo necessário para conclusão de todas
as atividades do trabalho de conclusão de curso.
Figura 39: Sequenciamento de aplicativo WorkIt
79
4.3 – ORÇAMENTO
• Analista de Custos Baseado na Sequência de Atividades do aplicativo WORKIT
Análise de custos do desenvolvimento baseado as sequências de atividade
ATIVIDADES HORAS
Levantamento de Requisitos 20
Documentação 12
Validação 45
Diagrama de caso de uso 20
Especificação de caso de uso 20
Diagrama de atividades 16
Diagrama de classes 14
Diagrama de sequência 30
Diagrama ER 30
Criação da base de dados 24
Programação de cadastro 34
Programação de relatórios 40
Programação de movimentação 80
Teste de unidades 16
Teste de integração 12
Implantação 8
Treinamento 16
Análise dos dados 8
Amostra de resultados 6
Total de horas 441 Hrs
Tabela 16: Analista de Custos Baseado na Sequência de Atividades
80
• Análise de custos baseado nos recursos físicos, patrimonial e
desenvolvimento.
Análise de custos total para o desenvolvimento
ITENS
Quantidade de analista programadores 1
Quantidade de horas para o desenvolvimento o projeto 441 HRS
Valor das horas do analista programador 18
Custo da linguagem Free
Custo da base de dados Free
Custo do computador R$ 3,200,00
Água, luz e energia R$ 400,00
• Cálculo total do custo para o desenvolvimento do aplicativo WORKIT.
Análise de custos total para o desenvolvimento
1- Programador 15 reais horas X 441 horas de desenvolvimento R$ 6.615,00
2- Custo do computador R$ 3.200,00
Água, luz e energia R$ 400,00
Total 10.215.00
Tabela 17: Analise de custo total para o desenvolvimento
Tabela 18: Analise de custo total para desenvolvimento do aplicativo WORKIT
81
5 – IMPLEMENTAÇÃO DO APLICATIVO
Para implementação do sistema WorkIt foi utilizado o editor de texto Visual
Studio Code como podemos ver na Figura 40.
A Figura 40 ilustra como são organizadas as pastas e arquivos dentro do
projeto alguns arquivos são de suma importância para que o projeto seja executado
como:
• Nodes_modules: é uma pasta onde são alocados todos módulos e
dependências nodeJs
• Platforms: são organizados arquivos relacionados as plataformas de
execução do sistema.
Figura 40: Editor de texto para desenvolvimento do sistema
82
• Src: pasta raiz do sistema onde estão alocadas a principais pastas
de para execução da aplicação.
A base para o desenvolvimento do sistema foi o typeScrypt, angularJs e
Css para estilização de algumas telas e componentes.
5.1 – INTERFACES DO SISTEMA
Ao iniciar o sistema, os usuários devem se cadastrar para ter acesso as
funcionalidades da aplicação. O apêndice A da página de cadastros apresenta parte
do código de cadastro de usuários, a Figura 41 mostra a página de cadastro de
usuários.
Figura 41: Pagina de cadastro de usuários
83
Após cadastro o usuário é direcionado a página inicial do sistema sem a
necessidade de fazer login. A página inicial mostra algumas opções para o usuário
como editar o perfil no ícone da engrenagem, fazer publicações, navegar até o
painel do usuário, ver atualizações de novas publicações. Já na aba lateral
esquerda pode-se ver as opções de movimentações do sistema e do usuário logado
bem com o saldo e a opção de sair do sistema com o ilustrado na Figura 42.
Figura 42: Página inicial do sistema WorkIt
84
Na tela inicial do sistema o usuário deve completar seu perfil antes de realizar
uma publicação para começar a interagir com outros usuários no sistema na Figura
43 há a tela de editar perfil onde o usuário seleciona as opções como editar perfil
pessoal, editar perfil profissional, e dados financeiros.
Após ter finalizado o cadastro do perfil os usuários podem realizar
publicações informando o tipo de publicação, disponibilidade ou uma oportunidade,
valor do serviço em horas e uma breve descrição das suas qualificações ou o que
está procurando como podemos ver na Figura 44, e no apêndice B vemos uma parte
do código para gerar a publicação.
Figura 43: Pagina Editar Perfil do sistema WorkIt
85
Os usuários podem ver as publicações realizar na opção atualizações onde
poderão ver com mais detalhes todas as oportunidades disponíveis no sistema
como mostra a Figura 45.
Figura 44: Pagina Publicar Oportunidade sistema WorkIt
86
Nesse momento os usuários podem iniciar uma interação fazendo troca de
mensagens para poder fazer acertos de questões financeiras e detalhes sobre as
publicações feitas na Figura 46 pode-se observar uma interação entre os usuários
do aplicativo.
Figura 45: Página de Atualizações
87
Os usuários podem mover as publicações desejadas do seu painel onde
ocorre todo o gerenciamento das movimentações dos serviços prestados na
aplicação, a Figura 47 mostra o as publicações disponíveis no painel do usuário e
detalhes da movimentação dos serviços prestados. O apêndice C mostra uma parte
do código onde se dá início a movimentação do serviço entre os usuários.
Figura 46: Página de troca de Mensagens
88
Na aba na lateral esquerda do aplicativo temos a opção Suas Movimentações
onde os usuários podem consultar suas movimentações finalizadas no sistema
como mostra a Figura 48.
Figura 47: Página Painel usuário e Detalhes da movimentação
90
6 – CONCLUSÃO
Em tempos de crise, com a alta taxa de desemprego surge uma grande
oportunidade de geração de emprego e renda, partindo do conceito de trabalhos
informais, sendo assim a proposta do aplicativo WorkIt é permitir que empresas e
pessoas possam contratar serviços de forma esporádica sem vínculo trabalhista em
modalidade freelance.
O aplicativo WorkIt disponibilizou algumas funcionalidades como troca de
mensagens entre os usuários para facilitar a interação entre eles, após ambas as
partes estarem de acordo com os valores dos serviços prestados o sistema WorkIt
tem a capacidade de calcular e mostrar em tempo real o valor do serviço prestados.
Todos conceitos implementados no aplicativo foram voltados para
disponibilizar aos usuários uma plataforma de negócios de fácil acesso, apesar de
encontrar muita documentação e artigos sobre as tecnologias envolvidas houve
dificuldade para chegar aos resultados obtidos por falta de experiência em
desenvolvimento de software, porém como um todo, considera-se bem satisfatório
o resultado final do estudo.
6 .1– TRABALHOS FUTUROS
A partir do desenvolvimento desse projeto é possível dar continuidade ao
estudo implementando outros recursos como fazer cálculo de rotas entre os
usuários, e fazer a utilização do Google Analytics para analisar os dados dos
usuários do sistema e saber quais regiões tem mais movimentações de negócios.
E posteriormente após refatorar todo o código e ter uma plataforma estável gerar
um APK e disponibilizar na comunidade.
91
REFERÊNCIAS AMBROS, Luisa. Diferença entre aplicativos nativos, híbridos e mobile web apps. Disponível em: <http://www.luisaambros.com/blog/diferenca-entre-aplicativos-nativos-hibridos-e-mobile-web-apps/>. Acesso em: 20 dez. 2019.
ANDRADE, Tirso. Opa! NativeScript! Outra linguagem para aprender? Disponível em:< https://www.linkedin.com/pulse/opa-nativescript-outra-linguagem-para-aprender-tirso-andrade/>Acesso em 24 de fev de 2020.
APPLE INC. Apple Developer: Swift Overview. Disponível em:<https://developer.apple.com/library/archive/documentation/Miscellaneous/Conce>. Acesso em: 18 dez de 2019.
AUSTINS, Calvin.“Top 6 programming languages for mobile app development”. Disponível em:<https://dzone.com/articles/top-6-programming-languages-for-mobile-app-develop> Acesso em: 07 jan de 2020.
BELLO, Lívia. Você sabe se vender? Disponível em:< https://www.terra.com.br/economia/vida-de-empresario/blog-the-speaker/sabe-se-vender-2018-e-o-ano-da-autopromocao,103194a932025ce114ad0d36e0618ae92dwik4zj.html>. Acesso em:15 out 2019.
BEZERRA, P. T.; SCHIMIGUEL, J. Desenvolvimento de aplicaçõeses mobile crossplatform utilizando phonegap. Disponível em:<http://eumed.net/cursecon/ecolat/br/16/phonegap.html>. Acesso em: 06 de jan de 2020.
CAFÉ, A. A. Desenvolvimento de Cross-Platform Mobile Apps Utilizando o Titanium Mobile. Disponível em:<http://adrielcafe.com/images/adrielcafe/artigos/2012/12/tcc/adriel-tcc.pdf> . Acesso em: 21 fev de 2020.
CANTELON, M., Harter, M., HOLOWAYCHUCK, T. J., RAJLICH, N. Node.js in Action. Shelter Island- NY Manning Publications Co, 2014.
CHENG, Fu. Build Mobile Apps with Ionic 2 and Firebase: Hybrid Mobile App Development. 1. Ed. Editora Apress Media LLC,2017.
92
COLETA, A. d. S. M. D.; COLETA, M. F. D.; GUIMARÃES, J. L. O amor pode ser virtual? O relacionamento amoroso pela internet. PSICOLOGIA EM ESTUDO, 13. 2 Maringá -PR 2008, p.277 - 285.
COLISSON, Simon. Desenvolvendo CSS na Web. Rio de Janeiro: Alta Books, 2008.
COOPER, Peter. SQLite Resources For Iphone Developers. Disponível em:<
https://www.mobileorchard.com/iphone-sqlite-tutorials-and-libraries/> Acesso em: 07 fev. 2020.
CORDOVA. Overview. Disponível em:< https://cordova.apache.org/docs/en/9.x/guide/overview/>. Acesso em 24 fev de 2020.
CROCKFORD, Douglas. JavaScript: The Good Parts. Editora "O'Reilly Media, Inc. 2010.
DAVIDOVICH, Luís. As vantagens de contratar um freelancers a uma agencia. Disponível em:<https://www.workana.com/blog/pt/emprendimientopt/contratar-um-profissional-freelancer-uma-agencia/>. Acesso em: 26 dez 2019.
DIONISIO, Jose Edson. Introdução ao Visual Studio Code. Disponível em:< https://www.devmedia.com.br/introducao-ao-visual-studio-code/34418>. Acesso em: 05 mar. 2020.
DRIFTY. Ionic: Advanced HTML5 Hybrid Mobile App Framework. Disponível em:<http://ionicframework.com/>. Acesso em: 24 de jan de 2020.
FAN, Alex. HOW Using Firebase Can Help You Earn More. Disponível em:<https://admob.googleblog.com/2016/11/how-using-Ąrebase-can-help-you-earnmore.html.>. Acesso em: 19 jan 2020.
FROMMER, D. 10 Ways The iPhone Changed Smartphones Forever. Disponível em:< https://www.businessinsider.com/10-ways-the-iphone-changed-smartphones-forever-2009-6?op=1>. Acesso em: 18 dez de 2019.
GASPARINI, Claudia. O que (e porque) você de escrever no linkedin. Disponível em:<https://exame.abril.com.br/carreira/o-que-e-por-que-voce-deveria-escrever-no-linkedin/>. Acesso em: 25 dez 2019.
93
GOOGLE. Android. Disponível em:<https://www.android.com/what-is-android/>. Acesso em: Acesso em: 18 dez. 2019.
GOOGLE. Google Maps. Disponível em:< https://www.google.com/intl/pt-BR/maps/about/>. Acesso em: 18 jan. 2017.
GOOGLE. O que é o Firebase? Disponível em:< https://www.meetup.com/pt-BR/Google-Developer-Group-Belfast/events/263578624/> Acesso em: 07 mar 2020.
GOUVÊA, Tiago. Aplicativos mobile híbridos e nativos – qual a diferença? Disponível em:<https://www.tiagogouvea.com.br/profissional/diferenca-entre-aplicativos-mobile-hibridos-e-nativos/>. Acesso em 24 de jan de 2020.
HAMMERSCHMIDT, Roberto. Linha do tempo: por dentro da evolução do Android. Disponível em:<https://www.tecmundo.com.br/android/82344-linha-tempo-dentro-evolucao-do-sistema-android.htm >Acesso em: 13 fev 2020.
HARRIS, Andy. HTML5 For Dummies. Indianapolis, Indiana: Wiley Publishing, Inc., 2011.
HARTMAN, Gustavo; STEAD, Geoff; DEGANI, Asi. Cross-platform mobile development. Disponível em:< https://wss.apan.org/jko/mole/Shared%20Documents/CrossPlatform%20Mobile%20Development.pdf>. Acesso em:13 fev 2020.
IONIKFRAMEWORK. Geolocation. Disponível em:<https://ionicframework.com/docs/native/geolocation>. Acessado em 18 fev 2020.
JOHNSON.L. P. The mental models perspective. In: UNFYING CONCEPT IN SOCIAL PSYCHOLOGY. 2010 Princeton University, New Jersey.
JUNTUNEN, Antero; JALONEN, Eetu; LUUKKAINEN, Sakari. HTML 5 in Mobile Devices – Drivers and Restraints. in 46th Hawaii International Conference on System Sciences, 2013.
KALIN, M. Java Web Services. 1. ed. Rio de Janeiro: Alta Books, 2010.
94
LEAVITT, N. Will nosql databases live up to their promise. Disponível em:< http://leavcom.com/pdf/NoSQL.pdf>. Acesso em: 10 jan 2020.
MARIA, Rafaela. Desenvolvimento de Aplicativos para Dispositivos Móveis. Disponível em:<http://fateczl.edu.br/TCC/2010-2/TCC-009.pdf>. Acesso em: 30 jan. 2020.
MARTINS, M. P. do E. S. RESTful Web Services e a API JAX-RS. Disponível em: <http://www.ricardoluis.com/wp-content/uploads/2015/08/Artigo-WebServices-em-REST.pdf>. Acesso em: 02 mar 2020.
MONTES, Eduardo. Introdução ao Gerenciamento de Projetos. 1. ed. São Paulo; Editora CreateSpace Independent Publishing Platform 2017. NEAL, R. W. - Apple iPhone to iPhone 6: The 7-Year Evolution Of A Game-Changing Smartphone. Disponível em:< https://www.ibtimes.com/apple-iphone-iphone-6-7-year-evolution-game-changing-smartphone-photos-1533776> Acesso em: 18 dez de 2019.
NEKA, Evelyn. Geolocalização no desenvolvimento de aplicativos mobile é importante? Disponível em: <https://pt.yeeply.com/blog/geolocalizacao-nodesenvolvimento-de-aplicativos-mobile-e-importante/>. Acesso em: 02 mar. 2020.
NODE.JS. About. Disponível em:<https://nodejs.org/en/about/>. Acesso em: 31 jan 2020.
OGLIARI, Ricardo da Silva; BRITO, Robison Cris. Android - do básico ao avançado. Rio de Janeiro: Editora Ciência Moderna Ltda., 2014.
PENDER, Tom. UML, a Bíblia, Tradução Daniel Vieira- Rio de Janeiro: Editora Campus, 2004.
PIRES, Jackson. O que é API? REST e RESTful? Conheça as definições e diferenças! 2017. Disponível em:< https://becode.com.br/o-que-e-api-rest-e-restful/>. Acesso em: 10 dez. 2019.
PREZOTTO, E, D; BONIATI, B, B. Estudo de Frameworks Multiplataforma para Desenvolvimento de Aplicações Mobile Híbridas. In: ENCONTRO ANUAL DE
95
TECNOLOGIA DA INFORMAÇÃO E SEMANA ACADEMICA DE TECNOLOGIA DA INFORMAÇÃO,1, 4, Frederico Westphalen – RS 2014, página 72 - 79. PROJECT, A. O. S. Android open source. Disponível em:< https://source.android.com/>. Acesso em: 18 fev 2019.
RAMOS, Ricardo Argenton. Treinamento prático em UML: desenvolva e gerencie seus projetos com essa sensacional ferramenta. São Paulo: Digerati Books. 2006.
RAY, John. Sams. Teach Yourself iPhone Application Development in 24 Hours. 2. Ed. Editora Pearson Education, Inc. 2011.
RODRIGUES, Murilo. FireStone: Banco de Dados NOSQL do Google. Disponível em:<https://www.nerdin.com.br/blog?conteudo=firestore_banco_de_dados_nosql_do_google> Acesso em: 18 jan 2019.
SALDALAGE, Pramod. Nosql databases: An overview. Disponível em:< https://www.thoughtworks.com/insights/blog/nosql-databases-overview>. Acesso em: 11 dez 2020.
SAMY, Silva, Maurício. JavaScript, guia do programador. - 1. Ed. Editora Novatec, 2010.
SCUSSEL, Alexandre. Por dentro do Google Maps. Disponível em:<https://mundogeo.com/2013/07/01/artigo-por-dentro-do-google-maps/> Acesso em: 10 jan. 2020.
SHANKLAND, S. Google's Android parts ways with Java industry group. Disponível em: <https://www.cnet.com/news/googles-android-parts-ways-with-java-industry-group/>. Acesso em: 20 fev 2020.
SILVA, Leandro Luquetti B. dá, Pires, DANIEL, Facciolo e NETO, Silvio Carvalho (Desenvolvimento de Aplicações para Dispositivos Móveis: Tipos e Exemplo de Aplicação na plataforma iOS Alternative Title: Application Development for Mobile Devices: Types and Application Example on the iOS platform. In: WORKSHOP DE INICIAÇÃO CIENTIFICA EM SISTEMAS DE INFORMAÇÃO. 2015 Goiânia – GO.
96
SILVA, M. M. DA. S; SANTOS, M. T. P. Os Paradigmas de Desenvolvimento de Aplicativos para Aparelhos Celulares. In: TECNOLOGIA, INFRAESTRUTURA E SOFTWARE – UFSCAR, ,1, 4, São Carlos -SP 2014, página 162 -170.
SILVA, Patrícia Gomes dos Santos. Aplicativos móveis híbridos com ionic framework. Disponível em:< http://www.matera.com/blog/post/aplicativos-moveis-hibridos-com-ionic-framework> Acesso em 24 de jan de 2020.
SILVA, P. C. B. Utilizando UML: Diagrama de Sequência, São Paulo. 64. Ed. 2008.
SILVA, R. P. e. UML 2 em Modelagem Orientada a Objetos. Florianópolis-SC: Visual Books, 2007.
SQLITE. AboutSQLite. Disponível em:<https://www.sqlite.org/about.html>. Acesso em: 18 dez 2019.
SMTNY, Pavel. Mobile development tools and cross-platform solutions. in 13th International Carpathian Control Conference (ICCC), 2012.
SOMMERVILLE, I. Engenharia de Software. São Paulo. 8. Ed. Editora Pearson Addison Wesley, 2007.
STACK OVERFLOW. Developer Survey Results 2017. Disponível em: <https://insights.stackoverflow.com/survey/2017>. Acesso em: 23 nov. 2019.
TAVARES, Henrique Leal. Introdução a Desenvolvimento de Aplicações Híbridas. Disponível em:< http://revista.fatecgarca.edu.br/index.php/efatec/article/view/113/109>. Acesso 07 dez de 2019.
TECMUNDO. Google Maps: faça download no celular ou acesso mapas online no seu computador. Disponível em:<https://www.techtudo.com.br/tudo-sobre/google-maps.html> . Acesso em: 09 mar 2020.
TERRA. TOP 5 – Cinco sistemas operacionais para celular. Disponível em:<http://noticias.terra.com.br/ciencia/top-5-cinco-sistemas-operacionais-para-celular,1e40d2b834bdd310VgnCLD2000000dc6eb0aRCRD.html>.Acesso em: 18 dez. 2019.
97
VIEBRANTZ, A. F. P. M.; CAMPOS, G. F. Construindo aplicativos hibridos com ionic framework. Tendencias e Tecnicas em Sistemas Computacionais, 2.ed. Editora Pearson Education, 2015.
VISUAL STUDIO CODE. O que é o VS Code. Disponível em: <https://azure.microsoft.com/pt-br/products/visual-studio-code/> Acesso em: 23 fev. 2019.
WAHLSTRÖM, Mikael. Exploring progressive web applications for health care: Developing a PWA to gather patients’ self-assessments. Disponível em:< http://umu.diva-portal.org/smash/get/diva2:1143994/FULLTEXT01.pdf>. Acesso em: 9 de dez de 2019.
YOUNG, A; Harter, M. Node.js in Practice. Nova Iorque - NY: Manning Publications
Co. 2015.
98
APÊNDICE - A
Parte do código responsável por cadastrar dos usuários no sistema.
Figura 49: Código responsável por cadastrar usuários no sistema
99
APÊNDICE – B Parte do código responsável por publicar oportunidades no sistema.
Figura 50: Código responsável por fazer publicação no sistema