Relatorio andrest

499 visualizações

Publicada em

0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
499
No SlideShare
0
A partir de incorporações
0
Número de incorporações
3
Ações
Compartilhamentos
0
Downloads
6
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Relatorio andrest

  1. 1. Desenvolvimento de Aplicações para Ambientes Móveis 2010 / 2011 Mestrado em Engenharia Informática Quinta-feira, 2 de Junho de 2011Professor: Carlos SerrãoAutor: Vasco Manuel Antunes da Silva Nº 11782
  2. 2. Desenvolvimento de Aplicações em Ambientes MóveisÍndice de conteúdos1 Introdução.........................................................................................................................................32 Tema da aplicação.............................................................................................................................4 2.1 Tema..........................................................................................................................................4 2.2 Razão da escolha do tema.........................................................................................................43 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.....................................................................................................................64 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..........................................................................................................95 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...................................................................116 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.................................................................................................................................157 Conclusões......................................................................................................................................16 2
  3. 3. Desenvolvimento de Aplicações em Ambientes Móveis1 IntroduçãoEste trabalho enquadra-se no âmbito da cadeira de Desenvolvimento de Aplicações em AmbientesMóveis.Esta tem trabalho tem como objectivo dotar os alunos da cadeira de conhecimentos em arquitecturase tecnologias em ambientes aplicacionais móveis.Das várias tecnologias possíveis para a realização deste trabalho, a tecnologia escolhida foiAndroid, 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. 4. Desenvolvimento de Aplicações em Ambientes Móveis2 Tema da aplicação2.1 TemaA aplicação desenvolvida consiste num sistema POS (point of sale) direccionado ao mercado debares 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 temaNos 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çãoalternativa à referida acima. O Factor de diferenciação da aplicação desenvolvida, é a possibilidadeda execução da mesma em terminais móveis, que corram a plataforma Android, e o facto daaplicaçã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çooferecido aos potenciais clientes no modelo SaaS, ou, conforme o modelo tradicional, a instalaçãode 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, eoptasse por utilizar a aplicação no modelo SaaS, o custo inicial de implementação da solução, seriamínimo. 4
  5. 5. Desenvolvimento de Aplicações em Ambientes Móveis3 Levantamento de requisitosA aplicação AndRest deverá respeitar os seguintes requisitos funcionais e não funcionais descritosde seguida.3.1 Requisitos funcionais3.1.1 Gestão de pedidosA aplicação deverá permitir a adição de produtos da ementa a determinada mesa. Caso ainda nãohajam quaisquer produtos associados a determinada mesa, a aplicação deverá “Abrir a mesa” (verponto 3.1.3).3.1.2 Gestão de pagamentosA aplicação deverá permitir o pagamento dos itens associados a determinada mesa. Este pagamentodeverá 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 elementosforem pagos, a aplicação deverá assim “Fechar a mesa” (ver ponto 3.1.3).3.1.3 Gestão de abertura e fecho de mesaAs acções de abertura e fecho de mesa, consistem em guardar a data/hora da abertura ou fecho damesa, respectivamente. Esta acção deverá ser gerida de forma “automática” pela aplicação. Atravésdeste requisito, poderão ser efectuadas análises de afluência ao estabelecimento.3.1.4 Gestão de produtos consumidos por mesaA aplicação deverá guardar o historial de produtos consumidos por cada mesa, sendo este historialassociado à hora de abertura e fecho da mesa.3.1.5 Gestão de preçosDeverá ser possível a introdução de dois preços por cada produto. O preço a aplicar ao produtodeverá variar consoante a hora de aquisição. Até determinada hora, será aplicado o Preço1, apósessa 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çãoA aplicação deverá ter o máximo de configurações possíveis, permitindo assim a máxima adaptaçãopossível às necessidades dos clientes. Assim, a aplicação deverá permitir a configuração dosseguintes 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. 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 depagamentos, deverão ser efectuados nos terminais móveis Android. Os restantes requisitos deverãoser assegurados através do back-office da aplicação em plataforma WEB.3.2 Requisitos não funcionais3.2.1 Acesso simultâneoO sistema deverá permitir a utilização simultânea de diversos terminais móveis.3.2.2 Actualização de informaçãoA informação deverá estar sempre actualizada para que possa ser devidamente utilizada pelosterminais em acessos concorrentes.3.2.3 Acesso à redeSerá necessária a ligação entre os terminais móveis e o servidor central da aplicação. Assim, casotoda a infraestrutura seja instalada localmente, será necessária apenas ligação local, caso ainstalação seja configurada de forma a correr na cloud, será necessária ligação à internet. 6
  7. 7. Desenvolvimento de Aplicações em Ambientes Móveis4 Especificação detalhada da solução4.1 Nome da aplicaçãoO nome da aplicação a desenvolver será AndRest. Este nome resulta do nome da plataforma emque será desenvolvido(Android), em conjunto com o target da mesma – o mercado da Restauração.4.2 ArquitecturaA arquitectura implementada nesta aplicação, será uma arquitectura de Cliente-Servidor.Contextualizando a arquitectura a implementar com o modelo Model-View-Controller, oscomponentes de Model e Controller serão implementados no servidor, ficando apenas a componentede View no lado dos terminais móveis. View Controller Model Terminais Android ServidorAs 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. 8. Desenvolvimento de Aplicações em Ambientes Móveis4.3 Modelo de dadosO 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 intDo 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. 9. Desenvolvimento de Aplicações em Ambientes Móveis4.4 Modelos de Implementação da infraestruturaEm termos de infraestrutura e modelo de negócio, esta aplicação poderá ser instalada segundo omodelo tradicional, em que todos os componentes ficam nas instalações do cliente, ou num modeloSaaS (Software as a service), em que apenas o cliente apenas necessitaria dos terminais móveisAndroid, e toda a componente de servidor, seria disponibilizada na Cloud.4.4.1 Modelo tradicional AndRest Client AndRest Server Instalações do ClienteNo modelo tradicional, é o cliente adquire toda a infraestrutura.4.4.2 Modelo Cloud SaaS AndRest Client AndRest Server Instalações do Cliente AndRest Services ProviderNeste 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. 10. Desenvolvimento de Aplicações em Ambientes Móveis5 Manual de InstalaçãoNeste 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-sideA 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-linePara instalar a aplicação de forma offline, execute o seguinte comando, após ter o dispositivoAndroid devidamente conectado ao computador:./adb install $deliverable/andrest/Andrest.apknota: a variável $deliverable deverá ser substituída pelo caminho para o entregável do presentetrabalho.5.1.2 Instalação on-line utilizando a aplicação aptoidePara instalar a aplicação de forma offline poderá utilizar a aplicação aptoide. Esta é uma aplicaçãopara 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.comPara a aplicação AndRest, estar disponível para download, teve que ser anteriormente submetidapara a plataforma bazaar. A aplicação AndRest no bazaar, poderá ser vista no URL:http://vsilva.bazaarandroid.com/app/pt.iscte.daam/1/12142Os 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-sideA 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. 11. Desenvolvimento de Aplicações em Ambientes Móveis5.2.1 Pré-requisitosOs 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(LinuxApache MySql PHP) ou WAMP(Windows Apache Mysql PHP), consoante o sistema operativo a serutilizado.5.2.2 Criação da base de dadosCriar 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.sqlnota: a variável $deliverable deverá ser substituída pelo caminho para o entregável do presentetrabalho.5.2.3 Instalação e configuração dos Web-servicesCopiar 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 presentetrabalho.nota2: o caminho /var/www deverá ser substituído pelo devido caminho WWWRoot do servidorem causa.Após a cópia dos ficheiros, será necessário configurar os valores de acesso à Base de dados. Paraisso é 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. 12. Desenvolvimento de Aplicações em Ambientes Móveis6 Manual de UtilizaçãoNeste capítulo são descritas as instruções de utilização da componente client-side.6.1 Primeira utilizaçãoApós a instalação da aplicação, serão necessários definir alguns parâmetros da aplicação. Estesparâmetros serão configurados na primeira utilização. Assim o utilizador irá ver o seguintemensagem 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 funcioneimediatamente funcionando no modo Cloud.Caso o utilizador pretenda utilizar um servidor próprio, é neste menu que deve definir o endereçodesse mesmo servidor. Este menu pode ser acedido também, clicando no botão opções no menuinicial da aplicação. 12
  13. 13. Desenvolvimento de Aplicações em Ambientes MóveisApós o utilizador definir os valores pretendidos, deverá fazer SAVE, e irá de seguida para o menuprincipal da aplicação.6.2 Ecrã principal da aplicaçãoO primeiro ecrã a ser apresentado ao utilizador, assim que este abre a aplicação é o ecrã com a listadas 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 Detailsnão foi implementada. Esta iria apresentar ao utilizador os dados da mesa, nomeadamente data deabertura de mesa, ou data de fecho, caso essa estivesse fechada. 13
  14. 14. Desenvolvimento de Aplicações em Ambientes Móveis6.3 Ecrã Add ProductNeste ecrã o utilizador terá a possibilidade de adicionar produtos à respectiva mesa, anteriormenteseleccionada.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á selecionadosaparece entre parêntesis antes do nome do produto. Após o pedido estar finalizado, basta clicar nobotão do topo do ecrã “Confirm Products”, e a aplicação voltará ao ecrã principal. 14
  15. 15. Desenvolvimento de Aplicações em Ambientes Móveis6.4 Ecrã PayNeste ecrã o utilizador poderá pagar os produtos anteriormente adquiridos, liquidando assim a contada mesa.Neste ecrã o utilizador poderá seleccionar os produtos a serem pagos, individualmente. No início doecrã, aprace o valor total de itens por pagar da mesa, e o total dos itens seleccionados. Caso outilizador pretenda seleccionar todos itens, basta fazer um “clique longo” sobre o botão “PaySelected Items” e todos os itens serão selecionados.Após o utilizador seleccionar os itens a serem pagos, deverá clicar sobre “Pay Selected Items”. Estemenu, exige a confirmação do utilizador:Após esta confirmação, caso ainda existam itens a serem pagos, a aplicação ficará no ecrã depagamentos, caso contrário, irá voltará para o ecrã principal. 15
  16. 16. Desenvolvimento de Aplicações em Ambientes Móveis7 ConclusõesDe 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ãode realizar o presente trabalho.A aplicação, cumpre os objectivos inicialmente definidos, e foi realmente interessante e motivante odesenvolvimento desta. Com o decorrer da aplicação, foram surgindo novas ideias, que comalgumas 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 debackoffice, mas como proof-of-concept, a aplicação superou todas as dificuldades e demonstra umbom desempenho. 16

×