100
LAURO HENRIQUE DE ALMEIDA FERREIRA PLATAFORMA PARA GESTÃO DE SERVIÇOS EM MODALIDADE FREELANCER E AUTOPROMOÇÃO ONLINE Assis/SP 2020

PLATAFORMA PARA GESTÃO DE SERVIÇOS EM MODALIDADE

  • 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

52

Figura 13: Diagrama de Caso de Uso Sistema WorkIt

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

68

Figura 29: Digrama de Atividade Movimentação do Sistema Fechamento de Serviço

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

70

Figura 31: Digrama de Sequência Candidatura a uma Oportunidade

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

72

Figura 33: Digrama de Classe aplicativo WorkIt parte 1

73

Figura 34: Digrama de Classe aplicativo WorkIt parte 2

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

76

Figura 37: Digrama ER aplicativo WorkIt parte 2

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

89

Figura 48: Página Movimentações do usuário

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

100

APÊNDICE – C

Parte do código responsável por iniciar a movimentação no Sistema.

Figura 51: Código responsável por iniciar a movimentação no sistema