Você está na página 1de 104

CENTRO UNIVERSITÁRIO ANHANGUERA

CURSO DE TEC. EM ANÁLISE E DESENV. DE SIST. – 5º Sem


PROJETO INTER. APL. A TEC. EM ANÁLISE E DESENV. DE SIST. V

BRENO VIEIRA – TADS 5º


IGOR CESAR – TADS 5º
MAILANE FERNANDES – TADS 5º
WALLACE VIEIRA – TADS 5º

DESENVOLVIMENTO DE UM APLICATIVO DE PEDIDOS PARA


UMA PIZZARIA

SÃO PAULO-SP
2016
BRENO VIEIRA - TADS RA: 8410119227
IGOR CESAR – TADS RA: 9902005834
MAILANE FERNANDES - TADS RA: 1299274012
WALLACE VIEIRA – TADS RA: 8409152923

DESENVOLVIMENTO DE UM APLICATIVO DE PEDIDOS PARA


UMA PIZZARIA

Trabalho apresentado ao Centro Universitário Anhanguera de


São Paulo, como requisito para avaliação bimestral da disciplina
de Projeto Inter. Apl. a Tec. em Análise e Desenv. de Sist. V do
5º sem., período Noturno do curso de TADS.

Orientador: Fernanda Pereira Caetano

SÃO PAULO-SP
2016
RESUMO

Este projeto teve como objetivo a implantação de dois aplicativos um sendo de realização de
pedidos e outro para gerenciar pedidos e cardápio de uma determinada pizzaria. Para conhecer
a fundo este “universo”, este projeto mostra como se deu o surgimento da pizza e das pizzarias.
Foram realizadas entrevistas com estabelecimentos para conhecer o funcionamento de uma
pizzaria. Para a documentação do projeto, envolveu-se a utilização de técnicas de análise
estruturada, como: fluxogramas, casos de uso e diagrama de classes. Ainda na documentação
desse projeto será mostrado parte dos códigos criado dos aplicativos utilizando a linguagem
mobile Android.

Palavras Chave: Pizzaria, Análise, Aplicativo, Requisitos.


ABSTRACT

This project aimed at the implementation of two applications: one of them is to make orders
and the other is to manage orders and menu of a particular pizzeria. To fully understand the
background of this "universe", this design shows how the emergence of pizza and pizzerias
ocurred. Interviews were conducted with some establishments in order to comprehend the
functioning of a pizzeria. For the project documentation, it was involved the use of structured
analysis techniques, such as flow charts, use cases and class diagram. In the same
documentation of this project it will be shown some part of the codes of the applications created
using the Android mobile language.

Keywords: Pizzeria, Analysis, Application, Requirements.


LISTA DE ILUSTRAÇÕES

Figura 1 - Fluxograma Delivery: cadastro de endereço ........................................................... 26


Figura 2 - Fluxograma Delivery: editar endereço .................................................................... 27
Figura 3 - Fluxograma Delivery: excluir endereço .................................................................. 28
Figura 4 - Fluxograma Delivery: realizar pedido ..................................................................... 29
Figura 5 - Fluxograma Gerencia: efetuando login.................................................................... 30
Figura 6 - Fluxograma Gerencia: Cadastrando item (produto) ................................................ 31
Figura 7 - Fluxograma Gerencia: Status de funcionamento ..................................................... 32
Figura 8 - Fluxograma Gerencia: Alterar status de pedido ...................................................... 33
Figura 9 - Caso de uso Delivery: cadastro de endereço ........................................................... 34
Figura 10 - Caso de uso delivery: Cadastro Geral .................................................................... 35
Figura 11 - Caso de suo delivery: Efetuando pedido ............................................................... 35
Figura 12 - Caso de uso gerencia: Logando no aplicativo ....................................................... 36
Figura 13 - Caso de uso gerencia: Cardápio e pedidos ............................................................ 36
Figura 14 - Caso de uso geral ................................................................................................... 37
Figura 15 - Modelo lógico ........................................................................................................ 40
Figura 16 - Aplicativo de pedidos: tela inicial ......................................................................... 47
Figura 17 - Aplicativo de pedidos: inserir nome e telefone ..................................................... 48
Figura 18 - Aplicativo de pedidos: Tela de endereço ............................................................... 48
Figura 19 - Aplicativo de pedidos: Iniciando um novo pedido ................................................ 49
Figura 20 - Aplicativo de pedidos: vendo pedidos anteriormente efetuados ........................... 50
Figura 21 - Aplicativo de gerência: Tela inicial ....................................................................... 51
Figura 22 - Aplicativo de gerência: Tela do cardápio .............................................................. 52
Figura 23 - Aplicativo de gerência: Gerencia de pedidos ........................................................ 53
Figura 24 - Aplicativo de gerência: Detalhes de um pedido .................................................... 54
LISTA DE TABELAS

Tabela 1 - Lista de requisitos funcionais .................................................................................. 23


Tabela 2 - Lista de requisitos Não funcionais .......................................................................... 24
Tabela 3 – Banco interno: Tabela Interna Usuário ................................................................... 41
Tabela 4 - Banco interno: tabela endereço ............................................................................... 42
Tabela 5 - Banco interno: tabela HistPedidos .......................................................................... 42
Tabela 6 - Banco externo: tabela cardápio ............................................................................... 43
Tabela 7 - Banco externo: tabela pedido .................................................................................. 43
Tabela 8 - Banco externo: tabela item ...................................................................................... 44
Tabela 9 - Banco externo - tabela login .................................................................................... 44
Tabela 10 - Script para conexão com o banco via webService ................................................ 45
Tabela 11 - Script de manipulação da tabela cardápio ............................................................. 45
Tabela 12 - Script de manipulação da tabela pedido ................................................................ 46
Tabela 13 - Script de manipulação da tabela item .................................................................... 46
Tabela 14 - Script de manipulação da tabela login ................................................................... 46
Tabela 15 - Aplicativo de pedidos: Código XML tela principal .............................................. 55
Tabela 16 - Aplicativo de pedidos: Código java da tela inicial ................................................ 56
Tabela 17 - Aplicativo de pedidos: Código XML Meus endereços ......................................... 60
Tabela 18 - Aplicativo de pedidos: Código java Meus endereços ........................................... 61
Tabela 19 - Aplicativo de gerência Código XML tela de login ............................................... 63
Tabela 20 - Aplicativo de gerência Código java tela de login.................................................. 65
Tabela 21 - Aplicativo de gerencia: Código XML tela de gerencia de cardápio ..................... 66
Tabela 22 - Aplicativo de gerencia: Código java tela de gerencia de cardápio........................ 67
LISTA DE ABREVIATURAS E SIGLAS

BD – Banco de dados

CEP – Código e endereçamento postal

CPF – Cadastro de pessoa física

HQ – História em quadrinhos

ID – Identificação

JVM - Java Virtual Machine

RF – Requisito funcional

RNF – Requisito não funcional

UML - Unified Modeling Language


SUMÁRIO

1. INTRODUÇÃO ................................................................................................................ 10
1.1. Tema .......................................................................................................................... 10
1.2. Problemática .............................................................................................................. 11
1.3. Hipóteses .................................................................................................................... 11
1.4. Objetivo do Projeto .................................................................................................... 12
1.4.1. Objetivo específicos do Projeto .......................................................................... 12
1.5. Justificativa e Relevância ........................................................................................... 13
1.6. Metodologia ............................................................................................................... 13
2. REFERENCIAL TEÓRICO ............................................................................................. 14
2.1. Conhecendo o ramo de pizzaria ................................................................................. 14
2.2. Sobre Pizza e Pizzarias .............................................................................................. 15
2.2.1. Como surgiu a pizza e de onde ela vem ............................................................. 15
2.2.2. O porquê do significado do nome ‘pizza’ .......................................................... 16
2.2.3. Como surgiram as pizzarias................................................................................ 17
2.2.4. Curiosidades sobre pizza/pizzarias ..................................................................... 17
2.3. Definição da linguagem de programação .................................................................. 18
3. DESENVOLVIMENTO ................................................................................................... 20
3.1. Análise ....................................................................................................................... 20
3.1.1. Entrevista ............................................................................................................ 20
3.1.2. Descrição da necessidade do cliente ................................................................... 22
3.1.3. Levantamento de requisitos ................................................................................ 22
3.1.3.1. Requisitos Funcionais ................................................................................. 23
3.1.3.2. Requisitos não funcionais............................................................................ 24
3.2. Desenho do sistema ................................................................................................... 25
3.2.1. Divisão em dois aplicativos ................................................................................ 25
3.2.2. Fluxogramas ....................................................................................................... 25
3.2.2.1. Fluxogramas do aplicativo de pedidos ........................................................ 26
3.2.2.2. Fluxograma do aplicativo de Gerencia do estabelecimento ........................ 30
3.2.3. Diagramas de caso de uso................................................................................... 34
3.2.3.1. Casos de uso do aplicativo de pedidos ........................................................ 34
3.2.3.2. Casos de uso do aplicativo de gerência ....................................................... 36
3.2.3.3. Caso de uso geral......................................................................................... 37
3.2.4. Diagrama de classes............................................................................................ 38
3.2.4.1. Diagrama aplicativo de pedidos .................................................................. 39
3.2.4.2. Diagrama aplicativo de gerencia ................................................................. 39
3.3. Banco de dados .......................................................................................................... 39
3.3.1. Modelo lógico de dados ...................................................................................... 40
3.3.2. Criação do banco de dados e suas tabelas .......................................................... 41
3.3.2.1. Banco de dados interno (aplicativo de pedidos).......................................... 41
3.3.2.2. Banco de dados externo (ambos os aplicativos).......................................... 43
3.4. Modelagem da arquitetura do sistema ....................................................................... 44
3.4.1. Conexão com o banco de dados ......................................................................... 44
3.4.2. Desenvolvimento da interface ............................................................................ 46
3.4.2.1. Interface: Aplicativo de pedidos ................................................................. 47
3.4.2.2. Interface: Aplicativo de gerência ................................................................ 50
3.4.3. Desenvolvimento do sistema .............................................................................. 54
3.4.3.1. Códigos Java e XML: Aplicativo de pedidos.............................................. 55
3.4.3.2. Códigos Java e XML: Aplicativo de gerência ............................................ 63
4. CONCLUSÃO .................................................................................................................. 68
4.1. Respostas das hipóteses ............................................................................................. 68
4.2. Considerações finais .................................................................................................. 69
4.3. Trabalhos futuros ....................................................................................................... 69
REFERÊNCIAS BIBLIOGRÁFICAS ..................................................................................... 70
APÊNDICE A – Aplicativo de gerencia .................................................................................. 71
APÊNDICE B – Diagrama de classe Aplicativo pedidos ........................................................ 73
APÊNDICE C – Diagrama de classe Aplicativo de gerência .................................................. 74
APÊNDICE D – Guia de funcionamento Aplicativo de pedidos (Delivery) ........................... 75
APÊNDICE E – Guia de funcionamento aplicativo de gerência ............................................. 91
10

1. INTRODUÇÃO

Este projeto contém 4 capítulos. O primeiro capítulo irá abordar escolha do tema, a
problemática, objetivo principal e específicos, bem como demonstrar a metodologia que será
utilizada para a resolução do problema. O segundo é referente a abordar o ambiente de uma
pizzaria, seu funcionamento baseado em pesquisas com diversos estabelecimentos. Também
abordará as origens das pizzas e pizzarias, sobre como se originou esse termo “pizza” e da
linguagem de programação utilizada para a criação do aplicativo de pedidos. O terceiro capítulo
se refere ao desenvolvimento prático, isto é, as técnicas para se fazer a análise estruturada,
enfim, todo o levantamento da documentação e o desenvolvimento do aplicativo em si. O quarto
e último capítulo se referem a verificar se as hipóteses de certa foram de certa forma,
respondidas. Também possuindo as considerações finais e os trabalhos futuros que serão
desenvolvidos.

1.1. Tema

O projeto terá como base o estudo de um ou mais estabelecimentos através de


entrevistas e, em partes, algumas observações sob a perspectiva de um cliente/consumidor de
uma pizzaria em particular, em que se tinha a visão de muitos de seus processos, em especial o
de expedição de pedidos.

O estudo visa estabelecimentos do tipo delivery ou quem deseja entrar no ramo de


comercio de pizzarias, sejam eles de pequeno, médio ou grande porte. Onde que há justificativa
para informatização do processo de pedidos e permitir que o consumidor possa fazer pedidos
de onde ele estiver.
11

Após os estudos a franquia PizzaWay LTDA. Contratou os nossos serviços para a


criação de um aplicativo que realiza pedidos para seu estabelecimento a partir de agora será
mostrado como se dará o resultado de criação, desenvolvimento e a conclusão do aplicativo.

1.2. Problemática

A necessidade de informatização de pedidos se dá exclusivamente pela forma


arcaica de se anotá-los. A pizzaria em questão utiliza papeis/post its para anotá-los. Dependendo
do grau de demanda desses pedidos, pode haver sobrecarga de tarefas e possíveis problemas
administrativos. Outra questão a ressaltar é que a pizzaria deseja aderir a tendência dos
smartphones e com isso depender menos do delivery via telefone fixo e ganhar agilidade com
o serviço de aplicativo.

1.3. Hipóteses

A hipótese diz respeito, especificamente a optimização do entendimento,


melhorando tanto de parte do estabelecimento como da parte do consumidor. O estabelecimento
que atua exclusivamente na parte delivery, teria uma redução de seu quadro de funcionários,
uma vez que não seriam necessários atendentes, pois na pizzaria PizzaWay muitas vezes o
proprietário atende os clientes. O consumidor por sua vez faria o pedido em seu dispositivo
móvel sem se deparar com linhas ocupadas e etc.
12

1.4. Objetivo do Projeto

Informatizar o processo de pedidos de uma pizzaria. Sendo que esse objetivo será
atingindo através dos específicos a seguir.

1.4.1. Objetivo específicos do Projeto

Eliminar a figura do atendente: Este objetivo, visa a economia em despesas com salários e/ou
acumulo de funções, eliminar o atendente pode ser uma boa economia. Em estabelecimentos
que não são exclusivamente delivery, o responsável pelo atendimento muitas vezes tinha outras
funções além desta. Enfim, eliminação de cargos, e por consequência economia.

O cliente ser responsável pelos dados de entrega (endereço): O cliente irá definir os produtos,
endereço de entrega. Eventuais erros e equívocos, serão unicamente erro dele, eximindo o
estabelecimento.

O cliente ter acesso ao cardápio atualizado (os panfletos não seriam mais tão necessários): Hoje
em dia não adianta guardar panfletos e ligar, sendo que valores e produtos mudam,
constantemente. O cardápio será acessado pelo app e o cliente terá acesso a valores e produtos
atualizados.
13

1.5. Justificativa e Relevância

O estudo desse trabalho tem como proposta ajudar um empreendedor, dono de uma
pizzaria, a trazer eficácia para seu comércio a fim de melhorar o atendimento para sua clientela,
através de dispositivos móveis. Com o estudo de mercado, observou-se o quão importante é ter
o cliente satisfeito com o produto e saber da qualidade do mesmo. Confiamos neste projeto
porque, primeiramente, também somos clientes e podemos notar quando algo possui qualidade.
Sempre estaremos receptivos a novos produtos de determinado comércio.

Por mais que a criação de apenas um novo software possa não ser algo visto como
novidades pelos clientes, sabemos que isso dará qualidade e agilidade aos olhos do proprietário
da pizzaria. Com isso, a demanda de pedidos pode aumentar e isso poderá trazer bons frutos
para ele e gratificação ao cliente em ser mais bem atendido e ter a qualidade de ter seu produto
entregue com muita confiança. (JOBS, 2005) “A única forma de estar verdadeiramente
satisfeito é fazer o que você acredita que seja um bom trabalho”.

1.6. Metodologia

Serão utilizados técnicas de análise estruturada, oriundos da UML: casos de uso,


diagrama de classes, além de, fluxogramas. O desenvolvimento do aplicativo, passará por
desenho de telas (interface) e a programação propriamente dita.
14

2. REFERENCIAL TEÓRICO

Neste capítulo será relatado sobre o funcionamento de uma pizzaria, relativamente


sobre a rotina das mesmas. Será relatado sobre as origens da pizza e das pizzarias, como se deu
o seu surgimento e o porquê de possuir este nome. Referente às pizzarias, serão mostradas
também como se deu a origem das mesmas, além de algumas curiosidades. E referente as
linguagens de programação que foram consideradas e a escolhida para a implementação deste
projeto.

2.1. Conhecendo o ramo de pizzaria

Uma pesquisa de mercado tem como objetivo prover uma base para ajudar na
tomada de decisões de um empreendedor, que anseia abrir seu negócio. Isto significa que a
pesquisa deve ser aplicada somente quando os seus resultados contribuírem para diminuir a
incerteza e/ou influenciar decisões.

Neste projeto o empreendimento já existe, o que facilita essa pesquisa. No caso,


necessita-se que a mesma ajude o cliente a encontrar maneiras de elevar a venda de seus
produtos, e saber a qualidade do produto que ele vende, pensando de acordo com os “olhos” do
cliente no estabelecimento. Houve estudos com uma série de pizzarias, visando saber o quanto
elas necessitam de mudanças no que se refere ao negócio em si, o que elas precisam mudar para
contornar as críticas dos atuais clientes e/ou aqueles que já frequentaram o estabelecimento.

Baseando-se nos estudos dos estabelecimentos, percebeu-se que certos comércios,


um ao lado do outro, podem de fato causar algum tipo de desconforto por conta da conduta do
concorrente, no que diz respeito à intenção de prejudicar o estabelecimento, com trotes
telefônicos, fingindo ser cliente do estabelecimento, a fim de depreciar o atendimento/qualidade
dos produtos. Porém, nem todos tem essa atitude, sendo que muitos se unem em prol da
categoria.
15

Todas as pizzarias possuem um frigorifico e um estoque para estocar os produtos


comprados para o preparo das pizzas. Esta preparação precisa ser vista pelo público porque com
isso mostra a qualidade do serviço, e não abre dúvidas sobre questões sobre determinada falta
de higiene. Geralmente, os principais funcionários da pizzaria ganham em torno de R$1000,00
até R$1500,00. Uma pizzaria de pequeno porte possui em média cinco funcionários, na medida
em que modificações forem feitas, sempre é bom estar contratando ou valorizando aqueles que
já trabalham na pizzaria. Aos olhos da clientela, eles desejam um serviço de qualidade, em que
se saiba o que vai gastar e que irá sair satisfeito com o produto.

Geralmente, começar no ramo de pizzaria se gasta em torno de R$150.000,00 se


todos os equipamentos forem de alta qualidade. Infelizmente, hoje em dia, não compensa abrir
uma pizzaria porque a falta de informações no ramo fez muitos dos estabelecimentos nos
últimos anos a desistirem do negócio. Isso se dá pelo simples fato de ter alguma renda extra e
quererem adentrar no ramo achando que um estabelecimento vai dar lucros de imediato. Antes
de qualquer coisa, as pessoas precisam realizar esse estudo de mercado, peça fundamental em
qualquer ramo comercial, porque se não será um desperdício de dinheiro, além de ser tempo
perdido.

2.2. Sobre Pizza e Pizzarias

Neste tópico será abordado a origem das pizzas e pizzarias, como surgiu o termo
“pizza”, além de curiosidades diversas sobre a mesma.

2.2.1. Como surgiu a pizza e de onde ela vem


16

Segundo a autora Carol Helstosky, em seu livro “Pizza: A Global History


(HELSTOSKY, 2008, p. 20) a pizza teve sua origem no século 18 na cidade de Napoli, mas
que ela só foi descoberta no resto do mundo depois da Segunda Guerra Mundial, em que os
americanos experimentaram a sua receita durante a guerra e levaram ao seu território, onde é
considerado o segundo país a saber da existência da pizza. Os italianos proclamam que foram
os inventores da pizza, utilizando uma combinação misturando água, farinha constituída por
grãos de cereais moídos, e em seguida, assar essa massa sobre uma pedra, resultando em um
alimento a qual seria capaz de saciar a fome e proporcionar ao homem bastante energia

A difusão da pizza ocorreu na Itália, onde ela foi acrescida com outros ingredientes,
como o tomate, em que sua base na Itália a autora Carol Helstosky (HELSTOSKY, 2008, p.
22) reitera que na antiga Roma, onde era somente uma fruta simples pouca usada em seus
alimentos, alguns vendedores experimentaram colocar queijo em cima da massa e do molho
feito da base de tomate. Com isso, surgiu a tradicional pizza de mussarela, bastante conhecida
ao redor do mundo. Grande parte do sucesso da pizza hoje se deve aos povos mais necessitados
da Itália no século 18, onde era uma receita simples e que muitas famílias necessitadas comiam
para se alimentar de algo durante os dias. Em suma, podemos dizer que a pizza ganhou destaque
na Itália. Entretanto, ideias de povos distintos contribuíram para o surgimento desse alimento
tão conhecido e apreciado hoje em dia.

2.2.2. O porquê do significado do nome ‘pizza’

Ainda segundo a autora (HELSTOSKY, 2008, p. 20), o termo pizza vem de um


termo similar de “torta”. Em italiano, “picea”, pela primeira vez esse termo foi ouvido na
capital, Roma. Outra palavra que influenciou a escrita e o jeito como se pronuncia foi a palavra
“pitta”, palavra já existente desde o século 16 na Itália. Com isso, hoje possuímos a palavra
pizza e sabemos como nós a pronunciamos.
17

Há ainda outras definições para esse termo. Alguns afirmam que vem do grego
“pita” (pão achatado). Outros dizem que veio da antiga palavra alemã “bizzopizzo”, que no
alemão de hoje seria “bissen”, de onde é derivado um dos verbos em inglês “to bite” (morder).

Já na cidade de Gaeta, a palavra “pizzo” referia-se ao pão pita. Enfim, são muitas
as definições, o que não se sabe ao certo qual delas está correta. O que sabemos é que hoje a
chamamos de pizza napolitana.

2.2.3. Como surgiram as pizzarias

Ainda de acordo com a autora (HELSTOSKY, 2008, p. 22), as primeiras


“pizzarias” de fato eram ambulantes que vendiam seu produto aos trabalhadores no século 18,
junto com outros alimentos, como a fogazza, por exemplo. Vários estabelecimentos que já
existiam na Itália antiga se adaptaram para tornar a pizza mais famosa e entrar no paladar dos
povos que possuíam uma condição financeira melhor. Mas segundo pesquisadores, a primeira
pizzaria surgiu na Itália no ano de 1780, criada por Pietro Colicchio em Salita S. Anna di
Palazzo, próximo do palácio de Nápoles. Esta pizzaria era mais conhecida como “Pietro e Basta
Cosi”. Ela surgiu basicamente em virtude de a pizza ser muito apreciada pelos napolitanos e,
inclusive, por povos com baixo poder aquisitivo. Anos depois, a pizzaria passou a se chamar de
Enrico Brandi.

2.2.4. Curiosidades sobre pizza/pizzarias


18

A publicação da autora (HELSTOSKY, 2008, p. 91 e 92) exibe vários tipos de


curiosidades envolvendo a pizza, não necessariamente ao seu processo de criação, mas alguns
fatos curiosos sobre como ela se encaixa perfeitamente em determinadas situações. Por
exemplo, o fundador do vídeo game Atari, Nolan K. Bushnell, oferecia pizza aos seus
desenvolvedores e seus clientes para recepcioná-los caso ele estivesse em reunião.

Em 1954 foi aberta a primeira rede da famosa pizzaria que hoje tem milhares de
franquias no mundo inteiro, a “Pizza Hut”, fundada pelos irmãos Kansas, Dan e Frank Caney.

Pizza também faz parte da infância de muita gente, não só por ser extremamente
saborosa, mas por poder ser apreciada com a leitura e outras formas de entretenimento, como
jogos e filmes. “As tartarugas ninjas”, nas histórias em quadrinhos, suas aventuras se passam
em Nova York, onde é a cidade em que mais se aprecia pizza ao redor do mundo.

Pizza tem costumes diferentes ao redor do mundo. A pizza mexicana, por exemplo;
em algumas localidades do país é feita em cima da famosa “tortilha”. Na Turquia e na Armênia,
ela tem um nome totalmente diferente: “lahmacun”, e no Japão ela é denominada como um tipo
de panqueca chamada “Okonomiyaki”.

2.3. Definição da linguagem de programação

Em 2005, a Google desejava lançar serviços de localização para usuários das suas
tecnologias, entretanto em virtude de não ter plataforma para isso adquiriu em julho do mesmo
ano uma empresa da Califórnia a Android Inc que já possuía o sistema operacional também
chamado Android, porém em fase de desenvolvimento.

Segundo (PAUL DEITEL, 2012, p. 4), em 2007 a Google articulou uma aliança
comercial “a Open Handset Alliance - um consórcio composto inicialmente de 34 empresas e
agora contando com 81 “. O objetivo da união dessas grandes empresas era utilizar essa
plataforma em dispositivos móveis para melhorar a experiência com os usuários e reduzir custos
impulsionando a inovação da tecnologia.
19

No ano seguinte a mesma plataforma transformou-se na Open-Source, ou seja,


qualquer pessoa conhecedora da linguagem poderá programar em tal plataforma (PAUL
DEITEL, 2012, p. 4).

O Android é um sistema operacional para dispositivos móveis baseado em um outro


S.O o Linux composto por diversas funções, como GPS, musicas, jogos, acesso à internet,
dentre outras (LECHETTA, 2013, p. 22, 23).

Uma das grandes vantagens do Android é possuir plataforma livre e código aberto,
possibilitando que cada fabricante realize suas próprias alterações no código-fonte para
personalizar os seus produtos e ainda sem a necessidade de compartilhar tais informações. Além
disso, a plataforma Android é totalmente gratuita, o que torna um sistema amplamente acessível
a diversas classes sociais (LECHETTA, 2013, p. 24).

A vantagem de possuir código aberto contribui ainda para que tal plataforma seja
aperfeiçoada, pois vários desenvolvedores podem inserir novas funcionalidades e até mesmo
corrigir falhas. É de conhecimento geral que o Android se tornou uma das plataformas mais
usadas no mundo, e que suas funcionalidades são aperfeiçoadas constantemente.
20

3. DESENVOLVIMENTO

O presente capítulo mostrará os passos para o desenvolvimento do aplicativo de


pedidos, passando pelo estágio inicial (documentação) até o desenvolvimento e implementação
do mesmo.

3.1. Análise

Os passos de desenvolvimento abordarão entrevistas, levantamento de requisitos.


Análise estruturada, com a utilização de diagramas de caso de uso, classes e fluxogramas,
passando por definição de banco de dados, scripts e etc. Também haverá desenho de telas do
aplicativo, e o desenvolvimento em android.

3.1.1. Entrevista

Uma pesquisa de mercado tem como objetivo prover uma base para ajudar na
tomada de decisões de um empreendedor, que anseia abrir seu negócio. Isto significa que a
pesquisa deve ser aplicada somente quando os seus resultados contribuírem para diminuir a
incerteza e/ou influenciar decisões. Com isso fizemos algumas entrevistas com vários
estabelecimentos do ramo e consultamos os criadores do site “Fórum de Pizzas” em prol de
sanar algumas dúvidas sobre pizzarias e saber a necessidade tecnologia que esses
estabelecimentos necessitam.
21

Neste projeto o tipo de empreendedorismo já existe, o que facilita essa pesquisa.


No caso, necessita-se que a mesma ajude o cliente a encontrar maneiras de elevar a venda de
seus produtos, e saber a qualidade do produto que ele vende, pensando de acordo com os
“olhos” do cliente no estabelecimento. Houve estudos com uma série de pizzarias, visando
saber o quanto elas necessitam de mudanças no que se refere ao negócio em si, o que elas
precisam mudar para contornar as críticas dos atuais clientes e/ou aqueles que já frequentaram
o estabelecimento.

Baseando-se nos estudos dos estabelecimentos, percebeu-se que certos comércios,


um ao lado do outro, podem de fato causar algum tipo de desconforto por conta da conduta do
concorrente, no que diz respeito à intenção de prejudicar o estabelecimento, com trotes
telefônicos, fingindo ser cliente do estabelecimento, com a intenção de depreciar o
atendimento/qualidade dos produtos. Porém, nem todos tem essa atitude, sendo que muitos se
unem em prol da categoria.

Todas as pizzarias possuem um frigorífico e um estoque para estocar os produtos


comprados para o preparo das pizzas. Esta preparação precisa ser vista pelo público porque,
com isso, mostra a qualidade do serviço e não abre dúvidas sobre questões sobre suposta falta
de higiene. Geralmente, os principais funcionários da pizzaria ganham em torno de R$1000,00
até R$1500,00. Uma pizzaria de pequeno porte possui em média cinco funcionários, na medida
em que modificações forem feitas, sempre é bom estar contratando ou valorizando aqueles que
já trabalham na pizzaria. Aos olhos da clientela, eles desejam um serviço de qualidade, em que
se saiba o que vai gastar e que irá sair satisfeito com o produto.

Geralmente, começar no ramo de pizzaria se gasta em torno de R$150.000,00 se


todos os equipamentos forem de alta qualidade. Infelizmente, hoje em dia, não compensa abrir
uma pizzaria porque a falta de informações no ramo fez muitos dos estabelecimentos nos
últimos anos a desistirem do negócio. Isso se dá pelo simples fato de ter alguma renda extra e
quererem adentrar no ramo achando que um estabelecimento vai dar lucros de imediato. Antes
de qualquer coisa, as pessoas precisam realizar esse estudo de mercado, peça fundamental em
qualquer ramo comercial, porque se não será um desperdício de dinheiro, além de ser tempo
perdido.
22

3.1.2. Descrição da necessidade do cliente

Através de uma pesquisa de negócio pode-se verificar a grande necessidade de


criação de um aplicativo voltado para cadastro de pedidos, visto que a pizzaria se encontra com
diversos problemas, levando em conta que os principais são o excesso de funções e a demora
no atendimento, visto que o último utiliza papel para realização do cadastro, o que acarreta uma
série de imperfeições, uma das mais comuns é a falta de controle de qual cliente fez o pedido
primeiro. Entende-se que a criação desse sistema pode gerar soluções eficazes para problemas
encontrados nesse ramo de negócio.

Por meio desse estudo foi notado que a pizzaria não possuía sequer um sistema.
Assim, para sanar tais problemas, houve a necessidade da criação de um software capaz de
elaborar o cadastro de pedidos com eficiência, onde o cliente terá total controle do seu pedido.

Compreende-se então que o projeto apresenta alta possibilidade de um bom


funcionamento. Uma das maiores vantagens do projeto é que o gasto feito para a implementação
será rapidamente revertido, incluindo a geração de grandes lucros, pois um sistema como este
irá trazer uma gama de benefícios essenciais para o funcionamento e crescimento econômico
da pizzaria.

3.1.3. Levantamento de requisitos

Nesta seção serão mostrados os requisitos levantados e validados para


desenvolvimento do aplicativo, incluem os Funcionais e não funcionais
23

3.1.3.1. Requisitos Funcionais

Requisitos funcionais têm como características declarar as funções de como um


sistema deverá reagir com suas especificações completa e consistente com as entradas de
informações, na sua maneira de se comportar entre o sistema e seu ambiente. Com base no
estudo acima, realizamos o levantamento de requisitos funcionais do sistema.

Tabela 1 - Lista de requisitos funcionais

Nome Confirmar pedido RF


É necessária a confirmação do cliente que os dados do pedido são
Descrição corretos

Nome Verificar status RF


Antes de se fazer um pedido, é necessário verificar se a pizzaria
Descrição encontra se em funcionamento.
Nome Acompanhar pedido RF
O sistema deve possibilitar que o cliente possa verificar o status de do
Descrição seu pedido.

Nome Efetuar cadastro RF


O sistema tem de solicitar ao cliente que efetue o devido cadastro com
nome telefone e no mínimo um endereço.
Descrição

Nome Efetuar pedido RF


O sistema tem que possibilitar acesso ao cardápio do estabelecimento.
Possibilitando o acesso ao produtos para a realização do pedido
Descrição

Fonte: Acervo próprio (2016).


24

3.1.3.2. Requisitos não funcionais

Refere-se à política e procedimentos entre cliente e desenvolvedor a fatores


externos do sistema e seu processo de criação e no comportamento do produto. Com base nos
estudos acima, realizamos o processo de requisitos não funcionais de nosso futuro sistema.

Tabela 2 - Lista de requisitos Não funcionais

Nome Armazenar dados de cadastro RNF


O estabelecimento tem de armazenar os dados do cadastro dos clientes
Descrição

Nome O cadastro deve utilizar senhas RNF


Os pedidos só devem ser efetuados utilizando senha fornecida pelo
usuário.
Descrição

Nome Gerenciar cadastro RNF


O estabelecimento só poderá inserir, editar excluir itens do cardápio,
quando o estabelecimento não estiver em funcionamento.
Descrição

Fonte: Acervo próprio (2016).


25

3.2. Desenho do sistema

Nesta seção serão mostrado os passos do desenho do sistema, por meio da utilização
de diagramas de caso de uso, de classe e fluxogramas.

3.2.1. Divisão em dois aplicativos

Durante a análise (documentação) do aplicativo de pedidos, o estabelecimento viu


a necessidade de utilizar um aplicativo para gerenciar as atividades do estabelecimento tanto
quando no que diz respeito aos pedidos e cardápio. Esse aplicativo será responsável por
verificar e alterar o status dos pedidos, gerenciar o cardápio, adicionando, excluindo e editando
os itens. Além de “abrir/fechar” o estabelecimento. Para visualização dos requisitos e mais
detalhes, consultar o apêndice A.

3.2.2. Fluxogramas

Fluxograma tem como base uma representação de um processo que utiliza símbolos
gráficos para descrever passo a passo a natureza e o fluxo deste processo. Será mostrado como
ambos os aplicativos funcionarão, com base nos fluxogramas criados.
26

3.2.2.1. Fluxogramas do aplicativo de pedidos

Serão mostrados os fluxogramas do aplicativo de pedidos (Delivery)

Figura 1 - Fluxograma Delivery: cadastro de endereço

Fonte: Acervo próprio (2016)


27

Figura 2 - Fluxograma Delivery: editar endereço

Fonte: Acervo próprio (2016)


28

Figura 3 - Fluxograma Delivery: excluir endereço

Fonte: Acervo próprio (2016)


29

Figura 4 - Fluxograma Delivery: realizar pedido

Fonte: Acervo próprio (2016)


30

3.2.2.2. Fluxograma do aplicativo de Gerencia do estabelecimento

Serão mostrados os fluxogramas do aplicativo de Gerência

Figura 5 - Fluxograma Gerencia: efetuando login


31

Fonte: Acervo próprio (2016)

Figura 6 - Fluxograma Gerencia: Cadastrando item (produto)

Fonte: Acervo próprio (2016)


32

Figura 7 - Fluxograma Gerencia: Status de funcionamento

Fonte: Acervo próprio (2016)


33

Figura 8 - Fluxograma Gerencia: Alterar status de pedido


34

3.2.3. Diagramas de caso de uso

O Diagrama de Casos de Uso tem o objetivo de auxiliar a comunicação entre os


analistas e o cliente. Serão mostrados os casos de uso de ambos os aplicativos, demonstrando
as interações entre os atores cliente e o aplicação de pedidos, e também, o estabelecimento com
o aplicativo de gerência.

3.2.3.1. Casos de uso do aplicativo de pedidos

Serão mostrados os casos de uso do aplicativo de pedidos (Delivery).

Figura 9 - Caso de uso Delivery: cadastro de endereço

Fonte: Acervo próprio (2016)


35

Figura 10 - Caso de uso delivery: Cadastro Geral

Fonte: Acervo próprio (2016)

Figura 11 - Caso de suo delivery: Efetuando pedido

Fonte: Acervo próprio (2016).


36

3.2.3.2. Casos de uso do aplicativo de gerência

Figura 12 - Caso de uso gerencia: Logando no aplicativo

Fonte: Acervo próprio (2016).

Figura 13 - Caso de uso gerencia: Cardápio e pedidos

Fonte: Acervo próprio (2016).


37

3.2.3.3. Caso de uso geral

Caso de uso mostrando as ações dos dois aplicativos

Figura 14 - Caso de uso geral

Fonte: Acervo próprio (2016).


38

3.2.4. Diagrama de classes

Um diagrama de classe UML descreve o objeto e informações de estruturas usadas


pelo seu aplicativo, seu interior e a comunicação com seus usuários. Ele descreve as
informações sem referência a qualquer implementação específica. Suas classes e relações
podem ser implementadas de várias maneiras, como tabelas de banco de dados, nós XML ou
composições de objetos de software. O projeto possuirá dois digramas: um focado para o
aplicativo disponível ao público (Delivery) e o outro referente ao uso interno da pizzaria
(Gerência/CardapioAdmin).
39

3.2.4.1. Diagrama aplicativo de pedidos

Para visualização do diagrama consultar o Apêndice B

3.2.4.2. Diagrama aplicativo de gerencia

Para visualização do diagrama consultar o Apêndice C

3.3. Banco de dados

Nesta seção será mostrado a definição dos bancos de dados a serem utilizados nas
duas aplicações. Modelo lógico, criação do banco. Haverá banco de dados externos e interno
(armazenado no aparelho).
40

3.3.1. Modelo lógico de dados

Um modelo de dados lógico é uma representação lógica das informações da área de


negócios, não é um banco de dados e é independente do modelo físico. Este é o conceito chave
da modelagem de dados lógica. Ele deve ser independente da tecnologia implementada devido
a constante mudança dos produtos tecnológicos.

A seguir, será mostrado o modelo lógico do banco de dados dos aplicativos,


exibindo sua funcionalidade desde a chamada do cliente a finalização de seu processo.

Figura 15 - Modelo lógico

Fonte: Acervo próprio (2016).


41

3.3.2. Criação do banco de dados e suas tabelas

A presente seção apresenta a estrutura de criação das tabelas do banco de dados,


ambas as aplicações acessarão o banco de dados externo, porém a aplicação de pedidos
necessitará de um banco interno.

3.3.2.1. Banco de dados interno (aplicativo de pedidos)

Tabela 3 – Banco interno: Tabela Interna Usuário


CREATE TABLE IF NOT EXISTS tbl_nome (
_id_nm INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
nome_user VARCHAR(32),
telefone VARCHAR(12)
);
Fonte: Acervo próprio (2016).

A tabela acima é destinada a armazenar nome e telefone do usuário do aplicativo,


ou seja, um único registro que pode ser modificado. Sendo que sempre que acessar o aplicativo
o registro estará disponível sem ter que digita-lo novamente.
42

Tabela 4 - Banco interno: tabela endereço


CREATE TABLE IF NOT EXISTS tbl_endereco (
_id_end INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
nome_logradouro VARCHAR(32),
numero INTEGER,
complemento VARCHAR(24),
cep VARCHAR(8),
bairro VARCHAR(32),
cidade VARCHAR(32)
);
Fonte: Acervo próprio (2016).

A tabela endereço será utilizada para armazenamento dos 5 endereços que o cliente
poderá utilizar, e que, deverá ser escolhido apenas um deles para um eventual pedido.

Tabela 5 - Banco interno: tabela HistPedidos


CREATE TABLE IF NOT EXISTS tbl_hist (
_id_hist INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
id_pedido INTEGER,
val_total DOUBLE,
nome_cliente VARCHAR(32),
tel_cliente VARCHAR(12)
);
Fonte: Acervo próprio (2016).

A tabela ‘histPedidos’ serve para o cliente verificar o status de seu pedido, com o
registro dessa tabela, o mesmo poderá verificar o status do pedido efetuado. |uma vez que a
aplicação não fará cadastro em locais externos
43

3.3.2.2. Banco de dados externo (ambos os aplicativos)

Nesta seção será mostrado as tabelas do banco de dados externo, que, será utilizado
pelas duas aplicações.

Tabela 6 - Banco externo: tabela cardápio


CREATE TABLE tbl_cardapio(
id INT PRIMARY KEY AUTO_INCREMENT,
categoria VARCHAR(16),
produto VARCHAR(32),
descricao VARCHAR(128),
preco_unit DOUBLE
);
Fonte: Acervo próprio (2016).

A tabela cardápio armazenará todos os produtos, da pizzaria, desde pizzas, parrando


por bebidas, sobremesas e etc.

Tabela 7 - Banco externo: tabela pedido


CREATE TABLE tbl_pedido(
id_pedido INT PRIMARY KEY AUTO_INCREMENT,
nm_cliente VARCHAR(32),
tel_clienteVARCHAR(11),
end_cliente VARCHAR(160),
qtd_itens INT,
valor_total DOUBLE,
forma_pagto VARCHAR(24),
obs_pedido VARCHAR(120),
sttatus_pedido VARCHAR(24),
);
Fonte: Acervo próprio (2016).

A tabela pedidos, armazena os pedidos feitos, por todos que possuem a aplicação
instalada no dispositivo móvel. A aplicação so busca o pedido registrado no Banco histPedidos
44

Tabela 8 - Banco externo: tabela item


CREATE TABLE tbl_item(
id_item INT PRIMARY KEY AUTO_INCREMENT,
id_pedido_item INT,
nm_produto VARCHAR(24),
qtd_item INT,
preco_unit double
);
Fonte: Acervo próprio (2016).

Tabela 9 - Banco externo - tabela login


CREATE TABLE tbl_login(
id_login INT PRIMARY KEY AUTO_INCREMENT,
login_usuario VARCHAR(10),
senha_usuario VARCHAR(10),
tipo_usuario VARCHAR(16),
nome_usuario VARCHAR(24),
cpf_usuario VARCHAR(11)
);
Fonte: Acervo próprio (2016).

Será utilizada para manipular as informações de acesso dos funcionários do


estabelecimento

3.4. Modelagem da arquitetura do sistema

Neste capítulo, será mostrado a modelagem da arquitetura de sistema envolvendo


os aplicativos PizzaWay, começando pela interface e, por fim, mostrando trechos do código de
ambos os aplicativo.

3.4.1. Conexão com o banco de dados


45

As duas aplicações acessarão um banco de dados externo, para tanto, é necessário utilizar
webservice. WebServices são muito utilizados para integrar aplicações, porém, não possui uma
api nativa para o android, sendo necessário, a utilização de uma biblioteca ksoap2, no caso é
bastante leve para utilização em dispositivos móveis para consumir webservices. (LECHETTA,
2013, p. 599). Neste webservice foi utilizado a seguinte conexão com o banco.

Tabela 10 - Script para conexão com o banco via webService


package webServiceNms;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class ConectaBdBggimw {


private static final String END_BD =
"jdbc:mysql://localhost/bd_bggimw";
private static final String USUARIO = "root";
private static final String SENHA = "";
private static final String DRIVER = "com.mysql.jdbc.Driver";

public static Connection obtemConexao() throws SQLException {


try{
Class.forName(DRIVER);
}catch (ClassNotFoundException e){
System.out.println("Driver não encontrado!");
}

return DriverManager.getConnection(END_BD, USUARIO, SENHA);


}
}
Fonte: Acervo próprio (2016).

Agora o script para manipulação de dados das tabelas do banco externo

Tabela 11 - Script de manipulação da tabela cardápio


//Inserindo um registro
INSERT INTO tbl_cardapio (id, categoria, produto, descricao, preco_unit)
VALUES(null, ?, ?, ?, ?)
46

//Atualizando um registro
UPDATE tbl_cardapio SET categoria = ?, produto = ?, descricao = ?,
preco_unit = ? WHERE id = ?
//Buscando um registro por id
SELECT * FROM tbl_cardapio WHERE id = ?
//Excluindo um registro por id
DELETE FROM tbl_cardapio WHERE id = ?
//Excluindo um registro por id

Fonte: Acervo próprio (2016).

Tabela 12 - Script de manipulação da tabela pedido


//Inserindo um registro
INSERT INTO tbl_pedido VALUES (null, ?, ?, ?, ?, ?, ?, ?, ?)
//Alterando o status do pedido
UPDATE tbl_pedido SET status_pedido = ? WHERE id_pedido = ?
//Buscando vários pedidos e ordenando por id
SELECT * FROM tbl_pedido ORDER BY id_pedido
//Buscando um especifico por id
SELECT * FROM tbl_pedido WHERE id_pedido=?

Fonte: Acervo próprio (2016).

Tabela 13 - Script de manipulação da tabela item


//Inserindo um item
INSERT INTO tbl_item VALUES (null, ?, ?, ?, ?)
//Buscando itens com um id de pedido especifico
SELECT * FROM tbl_item WHERE id_pedido_item=?
Fonte: Acervo próprio (2016).

Tabela 14 - Script de manipulação da tabela login


//Validando o login
SELECT * from tbl_login WHERE login_usuario=? AND senha_usuario=? AND
tipo_usuario=?
//Atualizando senha
UPDATE tbl_login SET senha_usuario = ? WHERE login_usuario=? AND
senha_usuario=? AND tipo_usuario=?
Fonte: Acervo próprio (2016).

3.4.2. Desenvolvimento da interface


47

Nesta seção serão mostradas as telas dos futuros aplicativos. As telas são dos
layouts finalizados.

3.4.2.1. Interface: Aplicativo de pedidos

Serão mostrados as telas finalizados do aplicativo delivery, destinado ao público,


para efetuar pedidos no estabelecimento.

Figura 16 - Aplicativo de pedidos: tela inicial

Fonte: Acervo próprio (2016).


48

Figura 17 - Aplicativo de pedidos: inserir nome e telefone

Fonte: Acervo próprio (2016).

Figura 18 - Aplicativo de pedidos: Tela de endereço

Fonte: Acervo próprio (2016).


49

Figura 19 - Aplicativo de pedidos: Iniciando um novo pedido

Fonte: Acervo próprio (2016).


50

Figura 20 - Aplicativo de pedidos: vendo pedidos anteriormente efetuados

Fonte: Acervo próprio (2016).

3.4.2.2. Interface: Aplicativo de gerência

Serão mostrados as telas finalizados do aplicativo de gerência, utilizado


exclusivamente pelo estabelecimento para gerenciar pedidos, cardápio e alterar o status de
funcionamento (Aberta ou fechada).
51

Figura 21 - Aplicativo de gerência: Tela inicial

Fonte: Acervo próprio (2016).


52

Figura 22 - Aplicativo de gerência: Tela do cardápio

Fonte: Acervo próprio (2016).


53

Figura 23 - Aplicativo de gerência: Gerencia de pedidos

Fonte: Acervo próprio (2016).


54

Figura 24 - Aplicativo de gerência: Detalhes de um pedido

Fonte: Acervo próprio (2016).

Para mais telas, e detalhes de funcionamento das interfaces dos dois aplicativos,
verificar o apêndice D e E.

3.4.3. Desenvolvimento do sistema

Nesta seção, serão mostradas algumas das principais telas do aplicativo em sua
codificação em linguagem Android. Entretanto, como a aplicação tem inúmeras linhas de
código, grande parte do código será disponibilizado em CD e disponibilizado no encarte desse
documento.
55

3.4.3.1. Códigos Java e XML: Aplicativo de pedidos

Serão mostrados nesta seção, algumas das respectivas codificações das telas
mostradas na seção anterior, sendo que, serão mostrados o código xml do layout e o código
java.

Tabela 15 - Aplicativo de pedidos: Código XML tela principal


<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="br.com.bggimw.delivery.TelaMenuDelivery" >

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:text="@string/lbl_main_projeto"
android:paddingTop="25sp"
android:paddingBottom="25sp"
android:id="@+id/textView24"
android:layout_gravity="center_horizontal" />

<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/lbl_main_meu_cadastro"
android:id="@+id/btnMeuCadastro" />

<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/lbl_main_meus_ends"
android:id="@+id/btnMeusEnderecos"
android:layout_gravity="center_horizontal" />

<Button
android:id="@+id/btnNovoPedido"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/lbl_main_novo_pedido" />

<Button
56

android:id="@+id/btnMeusPedidos"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/lbl_main_meus_pedidos" />

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceMedium"
android:text="@string/lbl_main_nm_projeto"
android:paddingTop="30sp"
android:id="@+id/textView26"
android:layout_gravity="center_horizontal" />

</LinearLayout>

Fonte: Acervo próprio (2016).

Tabela 16 - Aplicativo de pedidos: Código java da tela inicial


package br.com.bggimw.delivery;

import android.app.Activity;
import android.app.AlertDialog;
import android.content.ClipData;
import android.content.Context;
import android.content.Intent;
import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase;
import android.net.ConnectivityManager;
import android.os.Bundle;
import android.os.StrictMode;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.Toast;

import java.util.ArrayList;

import br.com.bggimw.delivery.dominio.RepositorioEndereco;
import br.com.bggimw.delivery.dominio.RepositorioUsuario;
import br.com.bggimw.delivery.entidades.ItemPedido;
import br.com.bggimw.delivery.entidades.Pedido;
import br.com.bggimw.delivery.localdb.BdDelivery;
import br.com.bggimw.delivery.util.AlertDialogUtil;
import br.com.bggimw.delivery.webservice.CardapioDAO;

public class TelaMenuDelivery extends Activity implements


OnClickListener{
57

public static final String BGGIMW="BGGIMW";


public static ArrayList<ItemPedido> listaItens = new
ArrayList<ItemPedido>();
public static Pedido pedido = new Pedido();
private Button btnMeusEnderecos;
private Button btnNovoPedido;
private Button btnMeuCadastro;
private Button btnMeusPedidos;
private BdDelivery bdDelivery;
private SQLiteDatabase conn;
private RepositorioEndereco repositorioEndereco;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.tela_menu_delivery);

btnMeusEnderecos = (Button) findViewById(R.id.btnMeusEnderecos);


btnNovoPedido = (Button) findViewById(R.id.btnNovoPedido);
btnMeusPedidos = (Button) findViewById(R.id.btnMeusPedidos);
btnMeuCadastro = (Button) findViewById(R.id.btnMeuCadastro);

btnMeuCadastro.setOnClickListener(this);
btnMeusEnderecos.setOnClickListener(this);
btnNovoPedido.setOnClickListener(this);
btnMeusPedidos.setOnClickListener(this);

try{
bdDelivery = new BdDelivery(this);
conn = bdDelivery.getWritableDatabase();
repositorioEndereco = new RepositorioEndereco(conn);
}catch (SQLException ex){
AlertDialogUtil.show(this, "ERRO", "Erro ao criar o banco");
ex.printStackTrace();
}

if(android.os.Build.VERSION.SDK_INT > 9){


StrictMode.ThreadPolicy policy = new
StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(policy);
}

boolean resposta = verificarConexaoInternet();


if(resposta){
//Só verificou
}else{
btnNovoPedido.setEnabled(false);
btnMeusPedidos.setEnabled(false);
AlertDialogUtil.show(this,"ATENÇÃO","Você não está conectado
a internet, não será possível utilizar as funções");
}

boolean teste = verificaWebService();


if(teste){
Toast.makeText(this, "WebService funcionando",
Toast.LENGTH_SHORT).show();
}
else {
btnNovoPedido.setEnabled(false);
btnMeusPedidos.setEnabled(false);
AlertDialogUtil.show(this,"ATENCÃO","Web Service não está
58

funcionando, não será possivel efetuar pedidos, vizualizar o cardapio");


}
}

@Override
protected void onDestroy() {
super.onDestroy();
if(conn != null){
conn.close();
}
}

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if( v == btnMeuCadastro){
Intent it = new Intent(TelaMenuDelivery.this,
TelaCadastroNome.class);
startActivity(it);
}
else if(v == btnMeusEnderecos){
Intent it = new Intent(TelaMenuDelivery.this,
TelaMeusEnderecos.class);
startActivity(it);
}
else if(v==btnNovoPedido){
if(repositorioEndereco.pegaNumeroDeLinhas() > 0) {
CardapioDAO dao = new CardapioDAO();
String status = dao.verificarStatus();
if (status.equals("Aberta")) {
Intent it = new Intent(TelaMenuDelivery.this,
TelaPedido_01.class);
startActivity(it);
} else {
AlertDialogUtil.show(this, "ATENÇÃO", "O
estabelecimento encontra-se fechado!");
}
}
else{
AlertDialogUtil.show(this,"ALerta","Cadastre ao menos um
endereço.");
}
}
else if(v==btnMeusPedidos){
Intent it = new Intent(TelaMenuDelivery.this,
TelaHistoricoPedidos.class);
startActivity(it);
}
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is
present.
getMenuInflater().inflate(R.menu.main_menu_delivery, menu);
return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
59

// automatically handle clicks on the Home/Up button, so long


// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
if (id == R.id.mn1_main_sobre) {
return true;
}
else if (id == R.id.mn2_main_encerrar_app){
finish();
return true;
}
return super.onOptionsItemSelected(item);
}

public boolean verificarConexaoInternet(){


boolean conectado;
Log.i(BGGIMW, "Verificando conexão com a internet");
ConnectivityManager conectividade = (ConnectivityManager)
getSystemService(Context.CONNECTIVITY_SERVICE);
if(conectividade.getActiveNetworkInfo() != null
&& conectividade.getActiveNetworkInfo().isAvailable()
&& conectividade.getActiveNetworkInfo().isConnected()){
//codigo do metodo aqui
Log.i(BGGIMW, "Verdadeiro, há conexão");
conectado = true;
}
else{
Log.i(BGGIMW, "Falso, não há conexão");
conectado = false;
}
Log.i(BGGIMW, "Retorna o resultado booleano");
return conectado;
}

public boolean verificaWebService(){


CardapioDAO dao = new CardapioDAO();
try{
String teste = dao.verificarWebService();
if(teste.equals("Hi - the Axis2 version is 1.6.2")){
return true;
}
else{
return false;
}
}catch(Exception e){
e.printStackTrace();
return false;
}
}
}//fecha classe MenuTelaDelivery

Fonte: Acervo próprio (2016).


60

Tabela 17 - Aplicativo de pedidos: Código XML Meus endereços


<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="br.com.bggimw.delivery.TelaMeusEnderecos"
android:weightSum="1">

<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content">

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:text="@string/lbl_listaend_meus_ends"
android:id="@+id/textView7"
android:layout_weight="1" />

<ImageButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/ibtnAddEnd"
android:layout_weight="1"
android:src="@android:drawable/ic_input_add" />

</LinearLayout>

<ListView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/lstMeusEnderecos"
android:dividerHeight="1sp"
android:divider="#0000ff"
android:layout_gravity="center_horizontal" />

</LinearLayout>

Fonte: Acervo próprio (2016).


61

Tabela 18 - Aplicativo de pedidos: Código java Meus endereços


package br.com.bggimw.delivery;

import android.app.Activity;
import android.app.AlertDialog;
import android.content.Intent;
import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.*;

import br.com.bggimw.delivery.customadapters.AdapterEnderecoLst;
import br.com.bggimw.delivery.dominio.RepositorioEndereco;
import br.com.bggimw.delivery.entidades.Endereco;
import br.com.bggimw.delivery.localdb.BdDelivery;

public class TelaMeusEnderecos extends Activity implements


AdapterView.OnItemClickListener{
public static final String PAR_ENDERECO="key_endereco";
private ImageButton ibtnAddEnd;
private ListView lstMeusEnderecos;
private AdapterEnderecoLst adpEnderecos;
private BdDelivery bdDelivery;
private SQLiteDatabase conn;
private RepositorioEndereco repositorioEndereco;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.tela_meus_enderecos);
ibtnAddEnd = (ImageButton) findViewById(R.id.ibtnAddEnd);
lstMeusEnderecos = (ListView)
findViewById(R.id.lstMeusEnderecos);

try{
bdDelivery = new BdDelivery(this);
conn = bdDelivery.getWritableDatabase();

repositorioEndereco = new RepositorioEndereco(conn);


adpEnderecos = repositorioEndereco.buscaEnderecos(this);

lstMeusEnderecos.setOnItemClickListener(this);
lstMeusEnderecos.setAdapter(adpEnderecos);
Log.i(TelaMenuDelivery.BGGIMW,"Exibiu corretamente");
}catch(SQLException ex){
AlertDialog.Builder dlg = new AlertDialog.Builder(this);
dlg.setMessage("Erro ao criar o banco");
dlg.setNeutralButton("OK", null);
dlg.show();
ex.printStackTrace();
}

ibtnAddEnd.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(repositorioEndereco.pegaNumeroDeLinhas() <5) {
62

Intent it = new Intent(TelaMeusEnderecos.this,


TelaCadastroEndereco.class);
startActivityForResult(it, 0);
}
else{
AlertDialog.Builder dlg = new
AlertDialog.Builder(TelaMeusEnderecos.this);
dlg.setTitle("Alerta");
dlg.setMessage("O número máximo de endereços é 5");
dlg.setNeutralButton("Entendi", null);
dlg.show();
}
}
});
}

@Override
protected void onDestroy() {
super.onDestroy();
if(conn != null){
conn.close();
}
}

@Override
protected void onActivityResult(int requestCode, int resultCode,
Intent data) {
adpEnderecos = repositorioEndereco.buscaEnderecos(this);
lstMeusEnderecos.setAdapter(adpEnderecos);
Log.i(TelaMenuDelivery.BGGIMW,"Atualizado corretamente -
activityForResult");
}

@Override
public void onItemClick(AdapterView<?> parent, View view, int
position, long id) {
Endereco endereco = adpEnderecos.getItem(position);

Intent it = new Intent(TelaMeusEnderecos.this,


TelaCadastroEndereco.class);
it.putExtra(PAR_ENDERECO, endereco);
startActivityForResult(it, 0);
}
}

Fonte: Acervo próprio (2016).


63

3.4.3.2. Códigos Java e XML: Aplicativo de gerência

Assim como na seção anterior será mostrada, código xml do layout e código java,
de algumas das telas exibidas na seção anterior.

Tabela 19 - Aplicativo de gerência Código XML tela de login


<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="br.com.bggimw.cardapioadmin.TelaLoginCardapioAdmin">

<!-- Login progress -->

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="15sp"
android:textAppearance="?android:attr/textAppearanceMedium"
android:text="@string/lbl_tela_login_usuario"
android:id="@+id/textView23" />

<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="textPersonName"
android:background="@drawable/styles_edit_text"
android:ems="10"
android:id="@+id/edtLoginUser"
android:hint="Maximo de 10 caracteres" />

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="15sp"
android:textAppearance="?android:attr/textAppearanceMedium"
android:text="@string/lbl_tela_login_senha"
android:id="@+id/textView25" />

<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="textPassword"
64

android:background="@drawable/styles_edit_text"
android:ems="10"
android:id="@+id/edtLoginSenha"
android:hint="Maximo de 10 caracteres" />

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="15sp"
android:textAppearance="?android:attr/textAppearanceMedium"
android:text="@string/lbl_tela_login_tipo"
android:id="@+id/textView490" />

<Spinner
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/spnNivelAcesso" />

<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="25sp">

<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/lbl_tela_login_logar"
android:id="@+id/btnLoginSistema"
android:layout_weight="1" />

<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/lbl_tela_login_alterar"
android:id="@+id/btnAlterarSenha"
android:layout_weight="1" />
</LinearLayout>

</LinearLayout>

Fonte: Acervo próprio (2016).


65

Tabela 20 - Aplicativo de gerência Código java tela de login


package br.com.bggimw.cardapioadmin;

import android.app.Activity;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.*;

import br.com.bggimw.cardapioadmin.webservice.LoginDAO;

public class TelaLoginCardapioAdmin extends Activity implements


View.OnClickListener,AdapterView.OnItemSelectedListener{
private EditText edtLoginUser;
private EditText edtLoginSenha;
private Spinner spnNivelAcesso;
private Button btnLoginSistema;
private Button btnAlterarSenha;
private ArrayAdapter<CharSequence> adpNivelAcesso;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.tela_login_cardapio_admin);

edtLoginUser = (EditText) findViewById(R.id.edtLoginUser);


edtLoginSenha = (EditText) findViewById(R.id.edtLoginSenha);
spnNivelAcesso = (Spinner) findViewById(R.id.spnNivelAcesso);
btnLoginSistema = (Button) findViewById(R.id.btnLoginSistema);
btnAlterarSenha = (Button) findViewById(R.id.btnAlterarSenha);
btnLoginSistema.setOnClickListener(this);
btnAlterarSenha.setOnClickListener(this);
adpNivelAcesso = ArrayAdapter.createFromResource(this,
R.array.lst_nivel_acesso, android.R.layout.simple_list_item_checked);
spnNivelAcesso.setAdapter(adpNivelAcesso);
}

@Override
protected void onActivityResult(int requestCode, int resultCode,
Intent data) {
edtLoginUser.setText("");
edtLoginSenha.setText("");
Log.i(TelaCardapioAdmin.BGGIMW,"campos limpos,
activityForResult");
}

@Override
public void onClick(View v) {
if(v==btnLoginSistema) {
String user, pass, nivel;
user = edtLoginUser.getText().toString();
pass = edtLoginSenha.getText().toString();
nivel = spnNivelAcesso.getSelectedItem().toString();
LoginDAO dao = new LoginDAO();
TelaCardapioAdmin.tipoUser = nivel;
TelaCardapioAdmin.b = dao.logarSistema(user, pass, nivel);
if (TelaCardapioAdmin.b) {
66

finish();
} else {
Toast.makeText(this, "Erro no login",
Toast.LENGTH_SHORT).show();
}
}
else if(v==btnAlterarSenha){
Intent it = new Intent(TelaLoginCardapioAdmin.this,
TelaLoginAlterarSenha.class);
startActivityForResult(it, 0);
}
}

@Override
public void onItemSelected(AdapterView<?> parent, View view, int
position, long id) {

@Override
public void onNothingSelected(AdapterView<?> parent) {

}
}

Fonte: Acervo próprio (2016).

Tabela 21 - Aplicativo de gerencia: Código XML tela de gerencia de cardápio


<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="br.com.bggimw.cardapioadmin.TelaGerenciaCardapio" >

<ListView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/lstCardapio"
android:layout_gravity="end" />
</LinearLayout>

Fonte: Acervo próprio (2016).


67

Tabela 22 - Aplicativo de gerencia: Código java tela de gerencia de cardápio


package br.com.bggimw.cardapioadmin;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;

import br.com.bggimw.cardapioadmin.customadapters.AdapterCardapioLst;
import br.com.bggimw.cardapioadmin.webservice.CardapioDAO;
import br.com.bggimw.cardapioadmin.entidades.Cardapio;

public class TelaGerenciaCardapio extends Activity implements


AdapterView.OnItemClickListener{
public static final String PAR_VIS_PROD="key_ver_um_prod";
private ListView lstCardapio;
private AdapterCardapioLst adpCdp;
private CardapioDAO cardapioDAO;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.tela_gerencia_cardapio);
lstCardapio = (ListView) findViewById(R.id.lstCardapio);
cardapioDAO = new CardapioDAO();
adpCdp = cardapioDAO.buscarListaCardapio(this);
lstCardapio.setAdapter(adpCdp);
lstCardapio.setOnItemClickListener(this);
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is
present.
getMenuInflater().inflate(R.menu.menu_tela_gerencia_cardapio,
menu);
return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
if (id == R.id.mn_gerencia_cardapio_add) {
Intent it = new Intent (TelaGerenciaCardapio.this,
TelaInserirProduto.class);
startActivityForResult(it, 0);
return true;
}
return super.onOptionsItemSelected(item);
}
68

@Override
protected void onActivityResult(int requestCode, int resultCode,
Intent data) {
adpCdp = cardapioDAO.buscarListaCardapio(this);
lstCardapio.setAdapter(adpCdp);
Log.i(TelaCardapioAdmin.BGGIMW,"Atualizado corretamente -
activityForResult");
}

@Override
public void onItemClick(AdapterView<?> parent, View view, int
position, long id) {
Cardapio cardapio = adpCdp.getItem(position);
Log.i(TelaCardapioAdmin.BGGIMW, "Objeto: "+cardapio.toString()+"
este id ->"+cardapio.get_id());

Intent it = new Intent(TelaGerenciaCardapio.this,


TelaDetalheProduto.class);
it.putExtra(PAR_VIS_PROD, cardapio.get_id());
startActivityForResult(it, 0);
}
}

Fonte: Acervo próprio (2016).

4. CONCLUSÃO

Este capítulo visa responder as hipóteses levantadas ao longo deste projeto, a parte
disso, temos as considerações finais acerca do projeto. E os seus trabalhos futuros, que deverão
ser executados, para se chegar nos objetivos relatados na introdução deste projeto. No momento
este projeto se encontra em desenvolvimento.

4.1. Respostas das hipóteses


69

Conforme o resultado apresentado no final do projeto, o tempo médio entre cliente


e estabelecimento ficou menor, com o aplicativo funcionando e elogiado por alguns clientes
pelo fato de não se utilizar o telefone fixo, pois se perde tempo ligando à pizzaria e, na maioria
das vezes, tem-se o telefone caindo na caixa postal e dando ocupado. Com o aplicativo, a pessoa
com apenas alguns cliques e em qualquer lugar onde quer que o cliente esteja poderá realizar o
seu pedido em questão de segundos.

4.2. Considerações finais

Produto entregue e pronto para o uso. Aguardando feedback para futuras


atualizações do aplicativo.

4.3. Trabalhos futuros

Portar o aplicativo para outras linguagens, como Windows Phone e Iphone. Há


planos de estender a aplicação para outros estabelecimentos.
70

REFERÊNCIAS BIBLIOGRÁFICAS

HELSTOSKY, C. Pizza - A Global History. 1a. ed. Londres: Reaktion Books Ltd, 2008.

JOBS, S. Frases e Pensamentos. Pensador, 2005. Disponivel em:


<http://pensador.uol.com.br/frase/NTYzODMy/>. Acesso em: 21 ago. 2015.

LECHETTA, R. R. Google Android. 3ª. ed. São Paulo: Novatec, 2013.

PAUL DEITEL, A. D. H. D. M. M. Android para Progrmadores. Porto Alegre: Bookman,


2012.
71

APÊNDICE A – Aplicativo de gerencia

Durante o desenvolvimento da documentação, o proprietário achou interessante gerenciar os


pedidos e itens do cardápio através de um aplicativo, portanto, o aplicativo de gerencia
também foi desenvolvido junto com o de pedidos, ambos compartilharão recursos e parte do

Os requisitos são os seguintes:

Requisitos funcionais

Nome Alterar status do pedido RF


O aplicativo tem de permitir alterar status dos pedidos recebidos,
Descrição conforme a situação

Nome Alterar status de funcionamento RF


O aplicativo tem de permitir que se altere o status da pizzaria de aberto
Descrição para fechada, e vice e versa.
Nome Gerenciar cardápio RF
O aplicativo tem que permitir a inserção, alteração e exclusão de itens
Descrição do cardápio.

Nome Autenticar usuário RF


O sistema somente poderá prover acesso a usuários autenticados
Descrição

Nome Efetuar pedido RF


O sistema tem que possibilitar acesso ao cardápio do estabelecimento.
Possibilitando o acesso ao produtos para a realização do pedido
Descrição

Fonte: Acervo próprio (2016).


72

Requisitos não funcionais

Nome Criar login RF


O sistema pode permitir que se criem logins de acesso além dos
Descrição previamente criados

Nome Envio de sms a cada status RF


O sistema pode enviar mensagens sms a cada mudança de status do
Descrição pedido
73

APÊNDICE B – Diagrama de classe Aplicativo pedidos

Diagrama de classes aplicativo pedidos

Figura 25 - Diagrama de classes aplicativo pedidos

Fonte: Acervo próprio (2016).


74

APÊNDICE C – Diagrama de classe Aplicativo de gerência

Diagrama de classes aplicativo gerencia

Figura 26 - Diagrama de classes aplicativo gerencia

Fonte: Acervo próprio(2016).


75

APÊNDICE D – Guia de funcionamento Aplicativo de pedidos (Delivery)

Figura 27 - Tela Menu principal

Fonte: Acervo próprio (2016).

A figura 27 mostra o menu principal da aplicação, nela pode se acessar o cadastro de


endereço, a realização de novos pedidos e visualização de pedidos anteriores, meu cadastro,
se refere ao nome e telefone que serão armazenados nos pedidos.

O botão “Meu cadastro” direciona pra tela em que se insere o nome e telefone. O botão
“Meus endereços” direciona para a tela de endereços cadastrados; o ‘Novo pedido” vai para a
tela onde o cliente vai inserir nome, telefone e um endereço previamente cadastrado para que
76

seja realizado um novo pedido já o “Meus pedidos” direciona para a tela de visualização de
todos os pedidos realizados.

Na opção “Sobre o app” do menu terá informações do aplicativo, como desenvolvedores,


dentre outros, já o ‘Encerrar app” encerra a aplicação.

Caso a aplicação não consiga se conectar ao webservice, somente as opções “Meu cadastro” e
“Meus endereços” ficarão disponíveis no menu.

Figura 28 - Tela de cadastro Nome e telefone

Fonte: Acervo próprio (2016).


77

A figura 28 exibe a tela de cadastro, no caso de ser a primeira vez que o usuário acessa, o
botão “Inserir novo” estará disponível e o botão “alterar existente” está inativo. Havendo
cadastro existente a situação se inverte e só é possível modificar o existente, bastando editar
os dois campos e tocar no botão “Alterar existente”.

Figura 29 - Tela de endereços

Fonte: Acervo próprio (2016).

A figura 29 mostra todos os endereços cadastrados. Tocando em um item irá para outra tela de
edição de endereço.
78

O botão com o símbolo de “+” em verde serve que um novo endereço seja adicionado.

Figura 30 - Tela Cadastro de endereço

Fonte: Acervo próprio (2016).

A figura 30 refere-se a tela inicial de cadastro de endereço. A opção “excluir” presente no


menu só vai estar visível quando for editado um endereço já existente.
79

Figura 31 - Tela Cadastro de endereço

Fonte: Acervo próprio (2016).

A figura 31 é destinada a exclusão ou edição de um endereço já existente.

Para salvar ou excluir utiliza-se o menu superior da tela.


80

Figura 32 - Tela Seus dados

Fonte: Acervo próprio (2016).

A figura 32 mostra a tela para cadastro de pedidos, onde o usuário deverá selecionar um
endereço, nome e telefone já são preenchidos automaticamente e não podem ser alterados por
esta tela e sim “meu cadastro”.

No botão “Acessar cardápio” vai para a lista do cardápio contendo todos os produtos
disponíveis.

A opção “Sair do cadastro” presente no menu do canto superior da tela irá sair do cadastro e
assim, irá aparecer uma janela de diálogo perguntando se o usuário deseja ou não cancelar o
pedido. No caso positivo o pedido será cancelado.
81

Figura 33 - Tela de Cardápio

Fonte: Acervo próprio (2016).

A figura 33 mostra os itens cadastrados no cardápio, o filtrar será usado para exibir na tela
somente o sabor de pizza que contenha o nome digitado.

Exemplo: digitando a palavra “Atum” serão exibidos somente os itens iniciados com a
respectiva palavra.

A opção “Ver meus itens” do menu servirá para mostrar todos os itens escolhidos; a
“Retornar pro cadastro” será utilizada para retornar ao cadastro e editar dados desejados, já a
“Cancelar pedido” apagará todos os dados do pedido.
82

Figura 34 - Adicionar itens

Fonte: Acervo próprio (2016).

A figura 34 mostra a tela que será exibida quando se toca um ícone do cardápio, além de pedir
a quantidade de itens a serem comprados.
83

Figura 35 - Tela Lista de itens

Fonte: Acervo próprio (2016).

A figura 35 mostra a quantidade de itens escolhidos, assim como o valor total do pedido.

No menu do canto superior da tela a opção “Ir para conclusão do pedido” será utilizada para
visualizar o valor total da compra, assim como, escolher a forma de pagamento e adicionar
observações sobre o pedido.

Exemplo: Troco para 50.


84

Figura 36 - Tela Alterar item

Fonte: Acervo próprio (2016).

A figura 36 exibe a tela para alterar o valor da quantidade de itens ou remover.


85

Figura 37 - Tela Confirmar compra

Fonte: Acervo próprio (2016).

A figura 37 demostra a confirmação da compra, onde o usuário poderá visualizar o valor total
do pedido, escolher a forma de pagamento e confirmar a compra.

No menu do canto superior da tela a opção” voltar para os meus itens” servirá para retornar a
tela dos itens do cardápio.
86

Figura 38 - Meus pedidos

Fonte: Acervo próprio (2016).

A figura 38 exibe os pedidos efetuados pelo usuário e pode se filtrar um pedido especifico
através do id.
87

Figura 39 - Tela Meu pedido Detalhes

Fonte: Acervo próprio (2016).

A figura 39 mostra todos os dados do pedido, como o status (efetuado, cancelado, etc.) além
do endereço para entrega e valor total da compra.

A opção “Mais detalhes” presente no menu direciona para a tela de visualização de alguns
dados do cliente e pedido. Já a segunda opção “Itens desse pedido” servirá para visualizar os
itens escolhidos.
88

Figura 40 - Tela Mais infos

Fonte: Acervo próprio (2016).

A figura 40 mostra o nome e telefone do cliente, além da quantidade de itens escolhidos,


forma de pagamento e observações do pedido se houver.
89

Figura 41 - Itens do pedido

Fonte: Acervo próprio (2016).

A figura 41 refere-se a todos os itens escolhidos no pedido.


90

Figura 42 - Cancelando o pedido

Fonte: Acervo próprio (2016).

A figura 42 exibe uma alerta ao usuário perguntando se ele deseja prosseguir com o
cancelamento do pedido.
91

APÊNDICE E – Guia de funcionamento aplicativo de gerência

Figura 43 - Tela Principal

Fonte: Acervo próprio (2016)


92

Figura 44 - Logado como Admin

Fonte: Acervo próprio (2016)


93

Figura 45 - Logado como Comum

Fonte: Acervo próprio (2016)

A figura 43 refere-se ao menu do aplicativo de gerenciamento ele possui três botões “Efetuar
login”, “Gerenciar Cardápio” e “Gerenciar Pedidos”. Estes dois últimos ficarão inativos
enquanto não houver login no sistema.
Na parte inferior da figura, poderá ser visualizado o status de funcionamento da pizzaria.
No menu do canto superior da tela encontra-se a opção “Encerrar App”, ela encerrará a
aplicação.

Assim que o usuário admin realizar login, serão ativados os botões “Gerenciar Cardápio onde
itens poderão ser exclusos, inclusos e ditados, e o “Gerenciar Pedido”, que será utilizado para
alterar o status do pedido, como mostra a figura 44.
A figura 45 mostra o login de um funcionário comum. Para esse tipo de acesso, apenas umbotão
estará disponibilizado, o “Gerenciar pedidos”, para que o status do pedido seja alterado.
94

Figura 46 - Login no sistema

Fonte: Acervo próprio (2016)

A figura 46 mostra os campos a serem preenchidos para login, nome e senha com limite de 10
caracteres, o nível de acesso e os botões de logar e alterar a senha da aplicação.
95

Figura 47 - Alteração de senha

Fonte: Acervo próprio (2016)

A figura 47 mostra a função de alterar a senha do aplicativo onde primeiro deverá ser inserido
o tipo de login do usuário (administrador ou comum) em seguida a senha atual e por fim inserir
a senha ela poderá alterar para a nova senha que ela deseja colocar.
96

Figura 48 - Tela Adicionar item

Fonte: Acervo próprio (2016)

A figura 48 mostra todos os itens cadastrados. No menu está presente a opção “Adicionar item”,
que direciona para a tela de adição de novos itens.
97

Figura 49 - Tela Novo Produto

Fonte: Acervo próprio (2016)

A figura 49 mostra a adição de determinado produto ao menu da pizzaria contendo seu nome,
o tipo de produto, ingredientes e valor.
Após a inclusão do item ele será salvo através da opção “Salvar produto” presente no menu.
98

Figura 50 - Tela Editar/Excluir item

Fonte: Acervo próprio (2016)

Ao clicar em um produto do cardápio o usuário será direcionado para a tela de edição e exclusão
de itens, como mostra a figura 50. Assim a função” Editar produto” serve para edição e a
“Excluir este produto” para exclusão do item selecionado, caso o usuário escolha excluir,
receberá um alerta de que tal item será descartado.
99

Figura 51 - Editando item

Fonte: Acervo próprio (2016)

A figura 51 mostra como um item do cardápio poderá ser alterado, com os campos editáveis
preço, escolha da categoria, nome do produto e descrição.
100

Figura 52 - Salvar/ Cancelar

Fonte: Acervo próprio (2016)

A figura 52 mostra os dados já alterados e ao clicar na opção do menu “Salvar produto” o item
editado poderá ser salvo. Há ainda a opção “Cancelar edição” para que a alteração feita seja
cancelada.
101

Figura 53 - Tela Gerencia Pedidos

Fonte: Acervo próprio (2016)

A figura 53 mostra a lista de pedidos já efetuados. Os mesmos poderão ser pesquisados através
do ID.
102

Figura 54 - Tela Detalhes do pedido

Fonte: Acervo próprio (2016)

A figura 54 mostra os dados da compra contendo nome, telefone e endereço do cliente, assim
como o ID e status do pedido. O status informa se o pedido foi recusado (pizzaria não entrega
em determinados endereços), recebido, está em processo ou partiu para entrega.
No menu do canto superior a opção, “Mais informações” possibilita a visualização de mais
detalhes referentes ao pedido, a “Ver itens” demostra os itens solicitados na compra, e por fim,
a opção “Fechar esta tela” que finaliza a gerencia do pedido.
103

Figura 55 - Tela Valores

Fonte: Acervo próprio (2016)

A figura 55 mostra a quantidade de itens e o valor total da compra, a forma de pagamento e


observações.
104

Figura 56 - Itens do pedido

Fonte: Acervo próprio (2016)

A figura 56 mostra todos os itens escolhidos na compra.

Você também pode gostar