SlideShare une entreprise Scribd logo
1  sur  16
Télécharger pour lire hors ligne
Desenvolvimento de Aplicações para Ambientes Móveis 2010 / 2011

                           Mestrado em Engenharia Informática

                                Quinta-feira, 2 de Junho de 2011




Professor: Carlos Serrão
Autor: Vasco Manuel Antunes da Silva Nº 11782
Desenvolvimento de Aplicações em Ambientes Móveis



Índice de conteúdos
1 Introdução.........................................................................................................................................3
2 Tema da aplicação.............................................................................................................................4
   2.1 Tema..........................................................................................................................................4
   2.2 Razão da escolha do tema.........................................................................................................4
3 Levantamento de requisitos..............................................................................................................5
   3.1 Requisitos funcionais................................................................................................................5
      3.1.1 Gestão de pedidos.............................................................................................................5
      3.1.2 Gestão de pagamentos.......................................................................................................5
      3.1.3 Gestão de abertura e fecho de mesa..................................................................................5
      3.1.4 Gestão de produtos consumidos por mesa........................................................................5
      3.1.5 Gestão de preços...............................................................................................................5
      3.1.6 Flexibilidade da configuração da aplicação......................................................................5
   3.2 Requisitos não funcionais.........................................................................................................6
      3.2.1 Acesso simultâneo ............................................................................................................6
      3.2.2 Actualização de informação..............................................................................................6
      3.2.3 Acesso à rede.....................................................................................................................6
4 Especificação detalhada da solução..................................................................................................7
   4.1 Nome da aplicação....................................................................................................................7
   4.2 Arquitectura..............................................................................................................................7
   4.3 Modelo de dados.......................................................................................................................8
   4.4 Modelos de Implementação da infraestrutura...........................................................................9
      4.4.1 Modelo tradicional............................................................................................................9
      4.4.2 Modelo Cloud SaaS..........................................................................................................9
5 Manual de Instalação......................................................................................................................10
   5.1 Instalação da Aplicação AndRest – Client-side......................................................................10
      5.1.1 Instalação off-line............................................................................................................10
      5.1.2 Instalação on-line utilizando a aplicação aptoide............................................................10
   5.2 Instalação da Aplicação AndRest – Server-side.....................................................................10
      5.2.1 Pré-requisitos...................................................................................................................11
      5.2.2 Criação da base de dados................................................................................................11
      5.2.3 Instalação e configuração dos Web-services...................................................................11
6 Manual de Utilização......................................................................................................................12
   6.1 Primeira utilização..................................................................................................................12
   6.2 Ecrã principal da aplicação.....................................................................................................13
   6.3 Ecrã Add Product....................................................................................................................14
   6.4 Ecrã Pay.................................................................................................................................15
7 Conclusões......................................................................................................................................16




                                                                         2
Desenvolvimento de Aplicações em Ambientes Móveis



1 Introdução
Este trabalho enquadra-se no âmbito da cadeira de Desenvolvimento de Aplicações em Ambientes
Móveis.
Esta tem trabalho tem como objectivo dotar os alunos da cadeira de conhecimentos em arquitecturas
e tecnologias em ambientes aplicacionais móveis.
Das várias tecnologias possíveis para a realização deste trabalho, a tecnologia escolhida foi
Android, utilizando uma arquitectura cliente servidor, utilizando web-services como comunicação.
A aplicação desenvolvida, trata-se de um sistema de POS, direccionado ao mercado da restauração




                                                 3
Desenvolvimento de Aplicações em Ambientes Móveis



2 Tema da aplicação

2.1 Tema
A aplicação desenvolvida consiste num sistema POS (point of sale) direccionado ao mercado de
bares e restaurantes. Esta aplicação terá as funcionalidades simples de adição de produtos às mesas,
e a sua respectiva liquidação.



2.2 Razão da escolha do tema
Nos dias que decorrem, cada vez mais estão presentes em bares e restaurantes, sistemas de POS.
Estes, por norma, são da marca Winrest . Este são compostos por Hardware próprio e dispendioso.
Com este trabalho, pretendi desenvolver um pequeno protótipo do que pode ser uma aplicação
alternativa à referida acima. O Factor de diferenciação da aplicação desenvolvida, é a possibilidade
da execução da mesma em terminais móveis, que corram a plataforma Android, e o facto da
aplicação permitir toda a informação num servidor central.
Na perspectiva de negócio, este servidor, poderá ser um servidor na Cloud, sendo assim o serviço
oferecido aos potenciais clientes no modelo SaaS, ou, conforme o modelo tradicional, a instalação
de um servidor local nas instalações do Cliente.
Assim, numa eventual situação em que o cliente já possuísse os terminais Android necessários, e
optasse por utilizar a aplicação no modelo SaaS, o custo inicial de implementação da solução, seria
mínimo.




                                                  4
Desenvolvimento de Aplicações em Ambientes Móveis



3 Levantamento de requisitos
A aplicação AndRest deverá respeitar os seguintes requisitos funcionais e não funcionais descritos
de seguida.

3.1 Requisitos funcionais

3.1.1         Gestão de pedidos
A aplicação deverá permitir a adição de produtos da ementa a determinada mesa. Caso ainda não
hajam quaisquer produtos associados a determinada mesa, a aplicação deverá “Abrir a mesa” (ver
ponto 3.1.3).

3.1.2         Gestão de pagamentos
A aplicação deverá permitir o pagamento dos itens associados a determinada mesa. Este pagamento
deverá poder ser total, ou parcial, havendo a possibilidade de selecção dos elementos a serem pagos.
Após o pagamento, os elementos deverão sair da respectiva conta. Quando todos os elementos
forem pagos, a aplicação deverá assim “Fechar a mesa” (ver ponto 3.1.3).

3.1.3         Gestão de abertura e fecho de mesa
As acções de abertura e fecho de mesa, consistem em guardar a data/hora da abertura ou fecho da
mesa, respectivamente. Esta acção deverá ser gerida de forma “automática” pela aplicação. Através
deste requisito, poderão ser efectuadas análises de afluência ao estabelecimento.

3.1.4         Gestão de produtos consumidos por mesa
A aplicação deverá guardar o historial de produtos consumidos por cada mesa, sendo este historial
associado à hora de abertura e fecho da mesa.

3.1.5         Gestão de preços
Deverá ser possível a introdução de dois preços por cada produto. O preço a aplicar ao produto
deverá variar consoante a hora de aquisição. Até determinada hora, será aplicado o Preço1, após
essa hora, será aplicado o Preço2. A aplicação do respectivo preço, deverá ser gerido de forma
“automática” pela aplicação. A hora deverá poder ser configurada na aplicação.

3.1.6         Flexibilidade da configuração da aplicação
A aplicação deverá ter o máximo de configurações possíveis, permitindo assim a máxima adaptação
possível às necessidades dos clientes. Assim, a aplicação deverá permitir a configuração dos
seguintes parâmetros:
   •    Número de mesas existente no estabelecimento;
   •    Hora da mudança da aplicação do preço (preço1/preço2);


                                                  5
Desenvolvimento de Aplicações em Ambientes Móveis

   •    Gestão dos produtos (descrição, preço1, preço2, categoria);
   •    etc.


Dos requisitos acima definidos, apenas os requisitos R3.1.1 Gestão de pedidos e R3.1.2 Gestão de
pagamentos, deverão ser efectuados nos terminais móveis Android. Os restantes requisitos deverão
ser assegurados através do back-office da aplicação em plataforma WEB.

3.2 Requisitos não funcionais

3.2.1          Acesso simultâneo
O sistema deverá permitir a utilização simultânea de diversos terminais móveis.

3.2.2          Actualização de informação
A informação deverá estar sempre actualizada para que possa ser devidamente utilizada pelos
terminais em acessos concorrentes.

3.2.3          Acesso à rede
Será necessária a ligação entre os terminais móveis e o servidor central da aplicação. Assim, caso
toda a infraestrutura seja instalada localmente, será necessária apenas ligação local, caso a
instalação seja configurada de forma a correr na cloud, será necessária ligação à internet.




                                                  6
Desenvolvimento de Aplicações em Ambientes Móveis



4 Especificação detalhada da solução

4.1 Nome da aplicação
O nome da aplicação a desenvolver será AndRest. Este nome resulta do nome da plataforma em
que será desenvolvido(Android), em conjunto com o target da mesma – o mercado da Restauração.

4.2 Arquitectura
A arquitectura implementada nesta aplicação, será uma arquitectura de Cliente-Servidor.
Contextualizando a arquitectura a implementar com o modelo Model-View-Controller, os
componentes de Model e Controller serão implementados no servidor, ficando apenas a componente
de View no lado dos terminais móveis.




                     View                               Controller              Model



             Terminais Android                                    Servidor


As tecnologias utilizadas nesta arquitectura serão:
    •   Na componente do servidor: MySql para a gestão de Base de dados, e PHP para o
        desenvolvimento da camada de controlo de dados e de disponibilização de Web-Services;
    •   Na componente de Cliente será utilizado o SDK Android para a concepção da aplicação;
    •   A comunicação entre estes será feita através de Web-services standard utilizando o formato
        Rest + Json.
O diagrama seguinte, ilustra as tecnologia a utilizar em cada uma das componentes:




                                         Web-services
                                        <Rest> + <Json>
                  Client                                                   Servidor



                                                   7
Desenvolvimento de Aplicações em Ambientes Móveis

4.3 Modelo de dados
O seguinte diagrama ilustra o modelo de dados a ser implementdo.

                                                                               Tables

               Consumed                                                Id               int

       Id                   int
       TableID              int                                      ConsumedItems
       OpenDate             int
       CloseDate            decimal                            Id                       int
       Total                boolean                            ConsumedID               int
                                                               ProductID                int
                                                               Price                    decimal
                                                               Pay                      boolean
                Products

       Id                   int
                                                                            Category
       Price1               decimal
       Price2               decimal
                                                                 Id                       int
       Description          text
                                                                 Description              text
       CategoryID           int



Do diagrama acima, salienta-se as seguintes particularidades:
   •    Cada entrada na tabela Consumed representa uma abertura de mesa;
   •    Cada entrada na tabela ConsumedItems representa o pedido de um determinado produto
        para uma mesa;
   •    O campo Price na tabela ConsumedItems, permite a inserção de diferentes preços, consoante
        a hora a que o produto foi inserido (Requisito referido no ponto 3.1.5).




                                                  8
Desenvolvimento de Aplicações em Ambientes Móveis



4.4 Modelos de Implementação da infraestrutura
Em termos de infraestrutura e modelo de negócio, esta aplicação poderá ser instalada segundo o
modelo tradicional, em que todos os componentes ficam nas instalações do cliente, ou num modelo
SaaS (Software as a service), em que apenas o cliente apenas necessitaria dos terminais móveis
Android, e toda a componente de servidor, seria disponibilizada na Cloud.

4.4.1          Modelo tradicional




             AndRest Client                                     AndRest Server

                                 Instalações do Cliente

No modelo tradicional, é o cliente adquire toda a infraestrutura.

4.4.2          Modelo Cloud SaaS




              AndRest Client                                          AndRest Server

      Instalações do Cliente                                AndRest Services Provider

Neste modelo de SaaS toda a infraestrutura de servidor é gerida por uma entidade responsável.
AndRest Services Provider. Esta entidade cobraria ao cliente, na modalidade “pay-as-you-use”.


                                                   9
Desenvolvimento de Aplicações em Ambientes Móveis



5 Manual de Instalação
Neste capítulo são descritas as instruções de instalação das componentes client-side e server-side.

5.1 Instalação da Aplicação AndRest – Client-side
A componente client-side, poderá ser instalada de duas formas. Poderá ser instalada de forma off-
line, instalando o ficheiro apk entregue no dispositivo Android, através do aplicativo adb,
distribuído no SDK Android, ou de forma on-line recorrendo à aplicação aptoide.

5.1.1          Instalação off-line
Para instalar a aplicação de forma offline, execute o seguinte comando, após ter o dispositivo
Android devidamente conectado ao computador:
./adb install $deliverable/andrest/Andrest.apk
nota: a variável $deliverable deverá ser substituída pelo caminho para o entregável do presente
trabalho.

5.1.2          Instalação on-line utilizando a aplicação aptoide
Para instalar a aplicação de forma offline poderá utilizar a aplicação aptoide. Esta é uma aplicação
para download de aplicações, que permite ao utilizador configurar a lista de repositórios a utilizar.
Esta aplicação poderá ser instalada a partir do market android ou a partir do URL http://aptoide.com


Para a aplicação AndRest, estar disponível para download, teve que ser anteriormente submetida
para a plataforma bazaar. A aplicação AndRest no bazaar, poderá ser vista no URL:
http://vsilva.bazaarandroid.com/app/pt.iscte.daam/1/12142


Os passos de instalação a partir do Aptoide são:
   •    Abrir a aplicação Aptoide;
   •    Clicar no botão menu e escolher a opção Manage Repo do menu de contexto;
   •    Adicionar o repositório http://vsilva.bazaarandroid.com
   •    Procurar a aplicação AndRest e selecionar para instalação;
   •    De seguida, o download e a instalação serão feitos automaticamente.



5.2 Instalação da Aplicação AndRest – Server-side
A componente Server-side não é necessária, caso se pretenda executar a aplicação com ligação à
cloud. Esta componente apenas é necessária, caso se pretenda instalar toda a infraestrutura Andrest



                                                   10
Desenvolvimento de Aplicações em Ambientes Móveis

5.2.1          Pré-requisitos
Os seguintes componentes são pré-requisitos desta componente:
   •    Software web-server com interpretador de PHP activo;
   •    MySql;
É aconselhada para a instalação dos pré-requisitos acima, a instalação do meta pacote LAMP(Linux
Apache MySql PHP) ou WAMP(Windows Apache Mysql PHP), consoante o sistema operativo a ser
utilizado.

5.2.2          Criação da base de dados
Criar uma base de dados em MySql com o nome “Andrest”.
De seguida, selecionar a base de dados criada anteriormente e correr o script de SQL:
mysql -u root -p andrest <<
$deliverable/andrest/serverside/database/andrest.sql
nota: a variável $deliverable deverá ser substituída pelo caminho para o entregável do presente
trabalho.

5.2.3          Instalação e configuração dos Web-services
Copiar a directoria deliverable/andrest/serverside/webservices/andrest para a path WWWRoot/
cp -r $deliverable/andrest/serverside/webservices/andrest
/var/www/
nota1: a variável $deliverable deverá ser substituída pelo caminho para o entregável do presente
trabalho.
nota2: o caminho /var/www deverá ser substituído pelo devido caminho WWWRoot do servidor
em causa.


Após a cópia dos ficheiros, será necessário configurar os valores de acesso à Base de dados. Para
isso é necessário abrir o ficheiro em /WWWRoot/andrest/connectionDB.php e editar os valores:
        $dbuser = 'definir o username de acesso à BD';
        $dbpass = 'definir o password de acesso à BD';




                                                  11
Desenvolvimento de Aplicações em Ambientes Móveis



6 Manual de Utilização
Neste capítulo são descritas as instruções de utilização da componente client-side.

6.1 Primeira utilização
Após a instalação da aplicação, serão necessários definir alguns parâmetros da aplicação. Estes
parâmetros serão configurados na primeira utilização. Assim o utilizador irá ver o seguinte
mensagem na primeira utilização:




O utilizador deverá clicar sobre Yes, para abrir o ecrã de configurações:




Neste ecrã o utilizador deverá configurar o endereço do servidor e o caminho relativo para os web-
services do mesmo. Os valores por omissão neste ecrã, permitem que a aplicação funcione
imediatamente funcionando no modo Cloud.
Caso o utilizador pretenda utilizar um servidor próprio, é neste menu que deve definir o endereço
desse mesmo servidor. Este menu pode ser acedido também, clicando no botão opções no menu
inicial da aplicação.

                                                  12
Desenvolvimento de Aplicações em Ambientes Móveis

Após o utilizador definir os valores pretendidos, deverá fazer SAVE, e irá de seguida para o menu
principal da aplicação.

6.2 Ecrã principal da aplicação
O primeiro ecrã a ser apresentado ao utilizador, assim que este abre a aplicação é o ecrã com a lista
das mesas disponíveis (o número de mesas apresentadas, depende da configuração do servidor):




É neste ecrã que o utilizador clica na mesa em que pretende intervir, e irá surgir o seguinte ecrã:




Neste menu o utilizador deverá escolher a opção “Add Product” ou “Pay”. (A opção View Details
não foi implementada. Esta iria apresentar ao utilizador os dados da mesa, nomeadamente data de
abertura de mesa, ou data de fecho, caso essa estivesse fechada.




                                                   13
Desenvolvimento de Aplicações em Ambientes Móveis

6.3 Ecrã Add Product
Neste ecrã o utilizador terá a possibilidade de adicionar produtos à respectiva mesa, anteriormente
seleccionada.




Os produtos estão divididos em quatro categorias: Snack, Drink, Food e Desert. O utilizador deverá
selecionar a categoria, e de seguida o produto.
O interface permite adicionar elemenentos clicando no botão com o nome do elemento a adicionar,
e removê-los clicando no respectivo botão à direita “REM”. O número de itens já selecionados
aparece entre parêntesis antes do nome do produto. Após o pedido estar finalizado, basta clicar no
botão do topo do ecrã “Confirm Products”, e a aplicação voltará ao ecrã principal.




                                                  14
Desenvolvimento de Aplicações em Ambientes Móveis

6.4 Ecrã Pay
Neste ecrã o utilizador poderá pagar os produtos anteriormente adquiridos, liquidando assim a conta
da mesa.




Neste ecrã o utilizador poderá seleccionar os produtos a serem pagos, individualmente. No início do
ecrã, aprace o valor total de itens por pagar da mesa, e o total dos itens seleccionados. Caso o
utilizador pretenda seleccionar todos itens, basta fazer um “clique longo” sobre o botão “Pay
Selected Items” e todos os itens serão selecionados.
Após o utilizador seleccionar os itens a serem pagos, deverá clicar sobre “Pay Selected Items”. Este
menu, exige a confirmação do utilizador:




Após esta confirmação, caso ainda existam itens a serem pagos, a aplicação ficará no ecrã de
pagamentos, caso contrário, irá voltará para o ecrã principal.




                                                  15
Desenvolvimento de Aplicações em Ambientes Móveis



7 Conclusões
De um modo geral, os objectivos, tanto da cadeira, como do presente trabalho foram cumpridos.
Com esta cadeira, adquiri novos conhecimentos ao nível da tecnologia Android que me permitirão
de realizar o presente trabalho.
A aplicação, cumpre os objectivos inicialmente definidos, e foi realmente interessante e motivante o
desenvolvimento desta. Com o decorrer da aplicação, foram surgindo novas ideias, que com
algumas melhorias, poderão até fazer deste “pequeno” projecto académico, um possível negócio.
Claro que para isso será necessário bastante trabalho, novas funcionalidades e uma melhori de
backoffice, mas como proof-of-concept, a aplicação superou todas as dificuldades e demonstra um
bom desempenho.




                                                  16

Contenu connexe

En vedette

O que é o Office 365? Webcast
O que é o Office 365? WebcastO que é o Office 365? Webcast
O que é o Office 365? WebcastErnesto Morais
 
Apresentação Office 365 evento 06.11
Apresentação  Office 365 evento 06.11Apresentação  Office 365 evento 06.11
Apresentação Office 365 evento 06.11Allen Informática
 
Microsoft Office 365 Presentation
Microsoft Office 365 PresentationMicrosoft Office 365 Presentation
Microsoft Office 365 PresentationBlueChipICT
 
What is Office 365? A Simple Answer
What is Office 365? A Simple AnswerWhat is Office 365? A Simple Answer
What is Office 365? A Simple AnswerAptera Inc
 
Melhores Negócios com o Office365
Melhores Negócios com o Office365Melhores Negócios com o Office365
Melhores Negócios com o Office365Fabio Bonifacio
 
Conheça o Office365 da Microsoft
Conheça o Office365 da MicrosoftConheça o Office365 da Microsoft
Conheça o Office365 da MicrosoftWebCarioca
 
2015 Upload Campaigns Calendar - SlideShare
2015 Upload Campaigns Calendar - SlideShare2015 Upload Campaigns Calendar - SlideShare
2015 Upload Campaigns Calendar - SlideShareSlideShare
 
What to Upload to SlideShare
What to Upload to SlideShareWhat to Upload to SlideShare
What to Upload to SlideShareSlideShare
 
Getting Started With SlideShare
Getting Started With SlideShareGetting Started With SlideShare
Getting Started With SlideShareSlideShare
 

En vedette (9)

O que é o Office 365? Webcast
O que é o Office 365? WebcastO que é o Office 365? Webcast
O que é o Office 365? Webcast
 
Apresentação Office 365 evento 06.11
Apresentação  Office 365 evento 06.11Apresentação  Office 365 evento 06.11
Apresentação Office 365 evento 06.11
 
Microsoft Office 365 Presentation
Microsoft Office 365 PresentationMicrosoft Office 365 Presentation
Microsoft Office 365 Presentation
 
What is Office 365? A Simple Answer
What is Office 365? A Simple AnswerWhat is Office 365? A Simple Answer
What is Office 365? A Simple Answer
 
Melhores Negócios com o Office365
Melhores Negócios com o Office365Melhores Negócios com o Office365
Melhores Negócios com o Office365
 
Conheça o Office365 da Microsoft
Conheça o Office365 da MicrosoftConheça o Office365 da Microsoft
Conheça o Office365 da Microsoft
 
2015 Upload Campaigns Calendar - SlideShare
2015 Upload Campaigns Calendar - SlideShare2015 Upload Campaigns Calendar - SlideShare
2015 Upload Campaigns Calendar - SlideShare
 
What to Upload to SlideShare
What to Upload to SlideShareWhat to Upload to SlideShare
What to Upload to SlideShare
 
Getting Started With SlideShare
Getting Started With SlideShareGetting Started With SlideShare
Getting Started With SlideShare
 

Similaire à Relatorio andrest

Proposta de Projeto de Pesquisa - CEFET - 2014
Proposta de Projeto de Pesquisa - CEFET - 2014Proposta de Projeto de Pesquisa - CEFET - 2014
Proposta de Projeto de Pesquisa - CEFET - 2014Waldir R. Pires Jr
 
plano_de_projeto_controlart_final
plano_de_projeto_controlart_finalplano_de_projeto_controlart_final
plano_de_projeto_controlart_finaluserrx
 
Relatorio de estagio tecnico em informatica
Relatorio de estagio tecnico em informaticaRelatorio de estagio tecnico em informatica
Relatorio de estagio tecnico em informaticaLucianaFerreira163
 
Plano do projeto de software SIGEM - Sistema de gestão de materiais
Plano do projeto de software SIGEM - Sistema de gestão de materiaisPlano do projeto de software SIGEM - Sistema de gestão de materiais
Plano do projeto de software SIGEM - Sistema de gestão de materiaisMarcos Pessoa
 
Plano de Projeto de Software para produtos da Lacertae SW
Plano de Projeto de Software para produtos da Lacertae SWPlano de Projeto de Software para produtos da Lacertae SW
Plano de Projeto de Software para produtos da Lacertae SWrafahreis
 
Trabalho final(25 03 2013)
Trabalho final(25 03 2013)Trabalho final(25 03 2013)
Trabalho final(25 03 2013)Augusto Arruda
 
(2) apostila clp completa
(2) apostila clp completa(2) apostila clp completa
(2) apostila clp completaMarcus Paiva
 
Pim ii virtualização de servidores e computadores na univen petróleo rev. final
Pim ii virtualização de servidores e computadores na univen petróleo rev. finalPim ii virtualização de servidores e computadores na univen petróleo rev. final
Pim ii virtualização de servidores e computadores na univen petróleo rev. finalCesar Jardim
 
Tecnologias da Informação no Chão de Fábrica
Tecnologias da Informação no Chão de FábricaTecnologias da Informação no Chão de Fábrica
Tecnologias da Informação no Chão de FábricaDaniel Pettini
 
Projeto de sw revisado
Projeto de sw revisadoProjeto de sw revisado
Projeto de sw revisadoJorge Barreto
 
ThingProvider-Proposal
ThingProvider-ProposalThingProvider-Proposal
ThingProvider-ProposalKevin Martins
 
Plano de projeto: Bichos do Campus na Web
Plano de projeto: Bichos do Campus na WebPlano de projeto: Bichos do Campus na Web
Plano de projeto: Bichos do Campus na WebJorge Roberto
 
Software para Gerência de Projetos baseado em Metodologias Ágeis [Relatório T...
Software para Gerência de Projetos baseado em Metodologias Ágeis [Relatório T...Software para Gerência de Projetos baseado em Metodologias Ágeis [Relatório T...
Software para Gerência de Projetos baseado em Metodologias Ágeis [Relatório T...Anderson Kanegae Soares Rocha
 
Software Integrado de Gestão do Município
Software Integrado de Gestão do MunicípioSoftware Integrado de Gestão do Município
Software Integrado de Gestão do MunicípioEditais Software
 
plano_de_projeto_controlart_rascunho
plano_de_projeto_controlart_rascunhoplano_de_projeto_controlart_rascunho
plano_de_projeto_controlart_rascunhouserrx
 

Similaire à Relatorio andrest (20)

Proposta de Projeto de Pesquisa - CEFET - 2014
Proposta de Projeto de Pesquisa - CEFET - 2014Proposta de Projeto de Pesquisa - CEFET - 2014
Proposta de Projeto de Pesquisa - CEFET - 2014
 
plano_de_projeto_controlart_final
plano_de_projeto_controlart_finalplano_de_projeto_controlart_final
plano_de_projeto_controlart_final
 
Relatorio de estagio tecnico em informatica
Relatorio de estagio tecnico em informaticaRelatorio de estagio tecnico em informatica
Relatorio de estagio tecnico em informatica
 
Plano do projeto de software SIGEM - Sistema de gestão de materiais
Plano do projeto de software SIGEM - Sistema de gestão de materiaisPlano do projeto de software SIGEM - Sistema de gestão de materiais
Plano do projeto de software SIGEM - Sistema de gestão de materiais
 
Plano de Projeto de Software para produtos da Lacertae SW
Plano de Projeto de Software para produtos da Lacertae SWPlano de Projeto de Software para produtos da Lacertae SW
Plano de Projeto de Software para produtos da Lacertae SW
 
Trabalho final(25 03 2013)
Trabalho final(25 03 2013)Trabalho final(25 03 2013)
Trabalho final(25 03 2013)
 
(2) apostila clp completa
(2) apostila clp completa(2) apostila clp completa
(2) apostila clp completa
 
Tcc plataforma telemedicina de baixo custo
Tcc plataforma telemedicina de baixo custoTcc plataforma telemedicina de baixo custo
Tcc plataforma telemedicina de baixo custo
 
NFC
NFCNFC
NFC
 
Pim ii virtualização de servidores e computadores na univen petróleo rev. final
Pim ii virtualização de servidores e computadores na univen petróleo rev. finalPim ii virtualização de servidores e computadores na univen petróleo rev. final
Pim ii virtualização de servidores e computadores na univen petróleo rev. final
 
Tecnologias da Informação no Chão de Fábrica
Tecnologias da Informação no Chão de FábricaTecnologias da Informação no Chão de Fábrica
Tecnologias da Informação no Chão de Fábrica
 
Projeto de sw revisado
Projeto de sw revisadoProjeto de sw revisado
Projeto de sw revisado
 
Douglasbentoscriptoretcc 130423092544-phpapp01 (1)
Douglasbentoscriptoretcc 130423092544-phpapp01 (1)Douglasbentoscriptoretcc 130423092544-phpapp01 (1)
Douglasbentoscriptoretcc 130423092544-phpapp01 (1)
 
ThingProvider-Proposal
ThingProvider-ProposalThingProvider-Proposal
ThingProvider-Proposal
 
Plano de projeto: Bichos do Campus na Web
Plano de projeto: Bichos do Campus na WebPlano de projeto: Bichos do Campus na Web
Plano de projeto: Bichos do Campus na Web
 
Software para Gerência de Projetos baseado em Metodologias Ágeis [Relatório T...
Software para Gerência de Projetos baseado em Metodologias Ágeis [Relatório T...Software para Gerência de Projetos baseado em Metodologias Ágeis [Relatório T...
Software para Gerência de Projetos baseado em Metodologias Ágeis [Relatório T...
 
Software Integrado de Gestão do Município
Software Integrado de Gestão do MunicípioSoftware Integrado de Gestão do Município
Software Integrado de Gestão do Município
 
Article
ArticleArticle
Article
 
It
ItIt
It
 
plano_de_projeto_controlart_rascunho
plano_de_projeto_controlart_rascunhoplano_de_projeto_controlart_rascunho
plano_de_projeto_controlart_rascunho
 

Relatorio andrest

  • 1. Desenvolvimento de Aplicações para Ambientes Móveis 2010 / 2011 Mestrado em Engenharia Informática Quinta-feira, 2 de Junho de 2011 Professor: Carlos Serrão Autor: Vasco Manuel Antunes da Silva Nº 11782
  • 2. Desenvolvimento de Aplicações em Ambientes Móveis Índice de conteúdos 1 Introdução.........................................................................................................................................3 2 Tema da aplicação.............................................................................................................................4 2.1 Tema..........................................................................................................................................4 2.2 Razão da escolha do tema.........................................................................................................4 3 Levantamento de requisitos..............................................................................................................5 3.1 Requisitos funcionais................................................................................................................5 3.1.1 Gestão de pedidos.............................................................................................................5 3.1.2 Gestão de pagamentos.......................................................................................................5 3.1.3 Gestão de abertura e fecho de mesa..................................................................................5 3.1.4 Gestão de produtos consumidos por mesa........................................................................5 3.1.5 Gestão de preços...............................................................................................................5 3.1.6 Flexibilidade da configuração da aplicação......................................................................5 3.2 Requisitos não funcionais.........................................................................................................6 3.2.1 Acesso simultâneo ............................................................................................................6 3.2.2 Actualização de informação..............................................................................................6 3.2.3 Acesso à rede.....................................................................................................................6 4 Especificação detalhada da solução..................................................................................................7 4.1 Nome da aplicação....................................................................................................................7 4.2 Arquitectura..............................................................................................................................7 4.3 Modelo de dados.......................................................................................................................8 4.4 Modelos de Implementação da infraestrutura...........................................................................9 4.4.1 Modelo tradicional............................................................................................................9 4.4.2 Modelo Cloud SaaS..........................................................................................................9 5 Manual de Instalação......................................................................................................................10 5.1 Instalação da Aplicação AndRest – Client-side......................................................................10 5.1.1 Instalação off-line............................................................................................................10 5.1.2 Instalação on-line utilizando a aplicação aptoide............................................................10 5.2 Instalação da Aplicação AndRest – Server-side.....................................................................10 5.2.1 Pré-requisitos...................................................................................................................11 5.2.2 Criação da base de dados................................................................................................11 5.2.3 Instalação e configuração dos Web-services...................................................................11 6 Manual de Utilização......................................................................................................................12 6.1 Primeira utilização..................................................................................................................12 6.2 Ecrã principal da aplicação.....................................................................................................13 6.3 Ecrã Add Product....................................................................................................................14 6.4 Ecrã Pay.................................................................................................................................15 7 Conclusões......................................................................................................................................16 2
  • 3. Desenvolvimento de Aplicações em Ambientes Móveis 1 Introdução Este trabalho enquadra-se no âmbito da cadeira de Desenvolvimento de Aplicações em Ambientes Móveis. Esta tem trabalho tem como objectivo dotar os alunos da cadeira de conhecimentos em arquitecturas e tecnologias em ambientes aplicacionais móveis. Das várias tecnologias possíveis para a realização deste trabalho, a tecnologia escolhida foi Android, utilizando uma arquitectura cliente servidor, utilizando web-services como comunicação. A aplicação desenvolvida, trata-se de um sistema de POS, direccionado ao mercado da restauração 3
  • 4. Desenvolvimento de Aplicações em Ambientes Móveis 2 Tema da aplicação 2.1 Tema A aplicação desenvolvida consiste num sistema POS (point of sale) direccionado ao mercado de bares e restaurantes. Esta aplicação terá as funcionalidades simples de adição de produtos às mesas, e a sua respectiva liquidação. 2.2 Razão da escolha do tema Nos dias que decorrem, cada vez mais estão presentes em bares e restaurantes, sistemas de POS. Estes, por norma, são da marca Winrest . Este são compostos por Hardware próprio e dispendioso. Com este trabalho, pretendi desenvolver um pequeno protótipo do que pode ser uma aplicação alternativa à referida acima. O Factor de diferenciação da aplicação desenvolvida, é a possibilidade da execução da mesma em terminais móveis, que corram a plataforma Android, e o facto da aplicação permitir toda a informação num servidor central. Na perspectiva de negócio, este servidor, poderá ser um servidor na Cloud, sendo assim o serviço oferecido aos potenciais clientes no modelo SaaS, ou, conforme o modelo tradicional, a instalação de um servidor local nas instalações do Cliente. Assim, numa eventual situação em que o cliente já possuísse os terminais Android necessários, e optasse por utilizar a aplicação no modelo SaaS, o custo inicial de implementação da solução, seria mínimo. 4
  • 5. Desenvolvimento de Aplicações em Ambientes Móveis 3 Levantamento de requisitos A aplicação AndRest deverá respeitar os seguintes requisitos funcionais e não funcionais descritos de seguida. 3.1 Requisitos funcionais 3.1.1 Gestão de pedidos A aplicação deverá permitir a adição de produtos da ementa a determinada mesa. Caso ainda não hajam quaisquer produtos associados a determinada mesa, a aplicação deverá “Abrir a mesa” (ver ponto 3.1.3). 3.1.2 Gestão de pagamentos A aplicação deverá permitir o pagamento dos itens associados a determinada mesa. Este pagamento deverá poder ser total, ou parcial, havendo a possibilidade de selecção dos elementos a serem pagos. Após o pagamento, os elementos deverão sair da respectiva conta. Quando todos os elementos forem pagos, a aplicação deverá assim “Fechar a mesa” (ver ponto 3.1.3). 3.1.3 Gestão de abertura e fecho de mesa As acções de abertura e fecho de mesa, consistem em guardar a data/hora da abertura ou fecho da mesa, respectivamente. Esta acção deverá ser gerida de forma “automática” pela aplicação. Através deste requisito, poderão ser efectuadas análises de afluência ao estabelecimento. 3.1.4 Gestão de produtos consumidos por mesa A aplicação deverá guardar o historial de produtos consumidos por cada mesa, sendo este historial associado à hora de abertura e fecho da mesa. 3.1.5 Gestão de preços Deverá ser possível a introdução de dois preços por cada produto. O preço a aplicar ao produto deverá variar consoante a hora de aquisição. Até determinada hora, será aplicado o Preço1, após essa hora, será aplicado o Preço2. A aplicação do respectivo preço, deverá ser gerido de forma “automática” pela aplicação. A hora deverá poder ser configurada na aplicação. 3.1.6 Flexibilidade da configuração da aplicação A aplicação deverá ter o máximo de configurações possíveis, permitindo assim a máxima adaptação possível às necessidades dos clientes. Assim, a aplicação deverá permitir a configuração dos seguintes parâmetros: • Número de mesas existente no estabelecimento; • Hora da mudança da aplicação do preço (preço1/preço2); 5
  • 6. Desenvolvimento de Aplicações em Ambientes Móveis • Gestão dos produtos (descrição, preço1, preço2, categoria); • etc. Dos requisitos acima definidos, apenas os requisitos R3.1.1 Gestão de pedidos e R3.1.2 Gestão de pagamentos, deverão ser efectuados nos terminais móveis Android. Os restantes requisitos deverão ser assegurados através do back-office da aplicação em plataforma WEB. 3.2 Requisitos não funcionais 3.2.1 Acesso simultâneo O sistema deverá permitir a utilização simultânea de diversos terminais móveis. 3.2.2 Actualização de informação A informação deverá estar sempre actualizada para que possa ser devidamente utilizada pelos terminais em acessos concorrentes. 3.2.3 Acesso à rede Será necessária a ligação entre os terminais móveis e o servidor central da aplicação. Assim, caso toda a infraestrutura seja instalada localmente, será necessária apenas ligação local, caso a instalação seja configurada de forma a correr na cloud, será necessária ligação à internet. 6
  • 7. Desenvolvimento de Aplicações em Ambientes Móveis 4 Especificação detalhada da solução 4.1 Nome da aplicação O nome da aplicação a desenvolver será AndRest. Este nome resulta do nome da plataforma em que será desenvolvido(Android), em conjunto com o target da mesma – o mercado da Restauração. 4.2 Arquitectura A arquitectura implementada nesta aplicação, será uma arquitectura de Cliente-Servidor. Contextualizando a arquitectura a implementar com o modelo Model-View-Controller, os componentes de Model e Controller serão implementados no servidor, ficando apenas a componente de View no lado dos terminais móveis. View Controller Model Terminais Android Servidor As tecnologias utilizadas nesta arquitectura serão: • Na componente do servidor: MySql para a gestão de Base de dados, e PHP para o desenvolvimento da camada de controlo de dados e de disponibilização de Web-Services; • Na componente de Cliente será utilizado o SDK Android para a concepção da aplicação; • A comunicação entre estes será feita através de Web-services standard utilizando o formato Rest + Json. O diagrama seguinte, ilustra as tecnologia a utilizar em cada uma das componentes: Web-services <Rest> + <Json> Client Servidor 7
  • 8. Desenvolvimento de Aplicações em Ambientes Móveis 4.3 Modelo de dados O seguinte diagrama ilustra o modelo de dados a ser implementdo. Tables Consumed Id int Id int TableID int ConsumedItems OpenDate int CloseDate decimal Id int Total boolean ConsumedID int ProductID int Price decimal Pay boolean Products Id int Category Price1 decimal Price2 decimal Id int Description text Description text CategoryID int Do diagrama acima, salienta-se as seguintes particularidades: • Cada entrada na tabela Consumed representa uma abertura de mesa; • Cada entrada na tabela ConsumedItems representa o pedido de um determinado produto para uma mesa; • O campo Price na tabela ConsumedItems, permite a inserção de diferentes preços, consoante a hora a que o produto foi inserido (Requisito referido no ponto 3.1.5). 8
  • 9. Desenvolvimento de Aplicações em Ambientes Móveis 4.4 Modelos de Implementação da infraestrutura Em termos de infraestrutura e modelo de negócio, esta aplicação poderá ser instalada segundo o modelo tradicional, em que todos os componentes ficam nas instalações do cliente, ou num modelo SaaS (Software as a service), em que apenas o cliente apenas necessitaria dos terminais móveis Android, e toda a componente de servidor, seria disponibilizada na Cloud. 4.4.1 Modelo tradicional AndRest Client AndRest Server Instalações do Cliente No modelo tradicional, é o cliente adquire toda a infraestrutura. 4.4.2 Modelo Cloud SaaS AndRest Client AndRest Server Instalações do Cliente AndRest Services Provider Neste modelo de SaaS toda a infraestrutura de servidor é gerida por uma entidade responsável. AndRest Services Provider. Esta entidade cobraria ao cliente, na modalidade “pay-as-you-use”. 9
  • 10. Desenvolvimento de Aplicações em Ambientes Móveis 5 Manual de Instalação Neste capítulo são descritas as instruções de instalação das componentes client-side e server-side. 5.1 Instalação da Aplicação AndRest – Client-side A componente client-side, poderá ser instalada de duas formas. Poderá ser instalada de forma off- line, instalando o ficheiro apk entregue no dispositivo Android, através do aplicativo adb, distribuído no SDK Android, ou de forma on-line recorrendo à aplicação aptoide. 5.1.1 Instalação off-line Para instalar a aplicação de forma offline, execute o seguinte comando, após ter o dispositivo Android devidamente conectado ao computador: ./adb install $deliverable/andrest/Andrest.apk nota: a variável $deliverable deverá ser substituída pelo caminho para o entregável do presente trabalho. 5.1.2 Instalação on-line utilizando a aplicação aptoide Para instalar a aplicação de forma offline poderá utilizar a aplicação aptoide. Esta é uma aplicação para download de aplicações, que permite ao utilizador configurar a lista de repositórios a utilizar. Esta aplicação poderá ser instalada a partir do market android ou a partir do URL http://aptoide.com Para a aplicação AndRest, estar disponível para download, teve que ser anteriormente submetida para a plataforma bazaar. A aplicação AndRest no bazaar, poderá ser vista no URL: http://vsilva.bazaarandroid.com/app/pt.iscte.daam/1/12142 Os passos de instalação a partir do Aptoide são: • Abrir a aplicação Aptoide; • Clicar no botão menu e escolher a opção Manage Repo do menu de contexto; • Adicionar o repositório http://vsilva.bazaarandroid.com • Procurar a aplicação AndRest e selecionar para instalação; • De seguida, o download e a instalação serão feitos automaticamente. 5.2 Instalação da Aplicação AndRest – Server-side A componente Server-side não é necessária, caso se pretenda executar a aplicação com ligação à cloud. Esta componente apenas é necessária, caso se pretenda instalar toda a infraestrutura Andrest 10
  • 11. Desenvolvimento de Aplicações em Ambientes Móveis 5.2.1 Pré-requisitos Os seguintes componentes são pré-requisitos desta componente: • Software web-server com interpretador de PHP activo; • MySql; É aconselhada para a instalação dos pré-requisitos acima, a instalação do meta pacote LAMP(Linux Apache MySql PHP) ou WAMP(Windows Apache Mysql PHP), consoante o sistema operativo a ser utilizado. 5.2.2 Criação da base de dados Criar uma base de dados em MySql com o nome “Andrest”. De seguida, selecionar a base de dados criada anteriormente e correr o script de SQL: mysql -u root -p andrest << $deliverable/andrest/serverside/database/andrest.sql nota: a variável $deliverable deverá ser substituída pelo caminho para o entregável do presente trabalho. 5.2.3 Instalação e configuração dos Web-services Copiar a directoria deliverable/andrest/serverside/webservices/andrest para a path WWWRoot/ cp -r $deliverable/andrest/serverside/webservices/andrest /var/www/ nota1: a variável $deliverable deverá ser substituída pelo caminho para o entregável do presente trabalho. nota2: o caminho /var/www deverá ser substituído pelo devido caminho WWWRoot do servidor em causa. Após a cópia dos ficheiros, será necessário configurar os valores de acesso à Base de dados. Para isso é necessário abrir o ficheiro em /WWWRoot/andrest/connectionDB.php e editar os valores: $dbuser = 'definir o username de acesso à BD'; $dbpass = 'definir o password de acesso à BD'; 11
  • 12. Desenvolvimento de Aplicações em Ambientes Móveis 6 Manual de Utilização Neste capítulo são descritas as instruções de utilização da componente client-side. 6.1 Primeira utilização Após a instalação da aplicação, serão necessários definir alguns parâmetros da aplicação. Estes parâmetros serão configurados na primeira utilização. Assim o utilizador irá ver o seguinte mensagem na primeira utilização: O utilizador deverá clicar sobre Yes, para abrir o ecrã de configurações: Neste ecrã o utilizador deverá configurar o endereço do servidor e o caminho relativo para os web- services do mesmo. Os valores por omissão neste ecrã, permitem que a aplicação funcione imediatamente funcionando no modo Cloud. Caso o utilizador pretenda utilizar um servidor próprio, é neste menu que deve definir o endereço desse mesmo servidor. Este menu pode ser acedido também, clicando no botão opções no menu inicial da aplicação. 12
  • 13. Desenvolvimento de Aplicações em Ambientes Móveis Após o utilizador definir os valores pretendidos, deverá fazer SAVE, e irá de seguida para o menu principal da aplicação. 6.2 Ecrã principal da aplicação O primeiro ecrã a ser apresentado ao utilizador, assim que este abre a aplicação é o ecrã com a lista das mesas disponíveis (o número de mesas apresentadas, depende da configuração do servidor): É neste ecrã que o utilizador clica na mesa em que pretende intervir, e irá surgir o seguinte ecrã: Neste menu o utilizador deverá escolher a opção “Add Product” ou “Pay”. (A opção View Details não foi implementada. Esta iria apresentar ao utilizador os dados da mesa, nomeadamente data de abertura de mesa, ou data de fecho, caso essa estivesse fechada. 13
  • 14. Desenvolvimento de Aplicações em Ambientes Móveis 6.3 Ecrã Add Product Neste ecrã o utilizador terá a possibilidade de adicionar produtos à respectiva mesa, anteriormente seleccionada. Os produtos estão divididos em quatro categorias: Snack, Drink, Food e Desert. O utilizador deverá selecionar a categoria, e de seguida o produto. O interface permite adicionar elemenentos clicando no botão com o nome do elemento a adicionar, e removê-los clicando no respectivo botão à direita “REM”. O número de itens já selecionados aparece entre parêntesis antes do nome do produto. Após o pedido estar finalizado, basta clicar no botão do topo do ecrã “Confirm Products”, e a aplicação voltará ao ecrã principal. 14
  • 15. Desenvolvimento de Aplicações em Ambientes Móveis 6.4 Ecrã Pay Neste ecrã o utilizador poderá pagar os produtos anteriormente adquiridos, liquidando assim a conta da mesa. Neste ecrã o utilizador poderá seleccionar os produtos a serem pagos, individualmente. No início do ecrã, aprace o valor total de itens por pagar da mesa, e o total dos itens seleccionados. Caso o utilizador pretenda seleccionar todos itens, basta fazer um “clique longo” sobre o botão “Pay Selected Items” e todos os itens serão selecionados. Após o utilizador seleccionar os itens a serem pagos, deverá clicar sobre “Pay Selected Items”. Este menu, exige a confirmação do utilizador: Após esta confirmação, caso ainda existam itens a serem pagos, a aplicação ficará no ecrã de pagamentos, caso contrário, irá voltará para o ecrã principal. 15
  • 16. Desenvolvimento de Aplicações em Ambientes Móveis 7 Conclusões De um modo geral, os objectivos, tanto da cadeira, como do presente trabalho foram cumpridos. Com esta cadeira, adquiri novos conhecimentos ao nível da tecnologia Android que me permitirão de realizar o presente trabalho. A aplicação, cumpre os objectivos inicialmente definidos, e foi realmente interessante e motivante o desenvolvimento desta. Com o decorrer da aplicação, foram surgindo novas ideias, que com algumas melhorias, poderão até fazer deste “pequeno” projecto académico, um possível negócio. Claro que para isso será necessário bastante trabalho, novas funcionalidades e uma melhori de backoffice, mas como proof-of-concept, a aplicação superou todas as dificuldades e demonstra um bom desempenho. 16