Relatorio andrest

16
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

description

 

Transcript of Relatorio andrest

Page 1: Relatorio andrest

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

Page 2: Relatorio andrest

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

Page 3: Relatorio andrest

Desenvolvimento de Aplicações em Ambientes Móveis

1 IntroduçãoEste 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

Page 4: Relatorio andrest

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

Page 5: Relatorio andrest

Desenvolvimento de Aplicações em Ambientes Móveis

3 Levantamento de requisitosA 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

Page 6: Relatorio andrest

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

Page 7: Relatorio andrest

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.

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:

7

Model

Servidor

Controller

Terminais Android

View

Servidor Client

Web-services<Rest> + <Json>

Page 8: Relatorio andrest

Desenvolvimento de Aplicações em Ambientes Móveis

4.3 Modelo de dados

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

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

Consumed

Id intTableID intOpenDate intCloseDate decimalTotal boolean

Tables

Id int

ConsumedItems

Id intConsumedID intProductID intPrice decimalPay boolean

Category

Id intDescription text

Products

Id intPrice1 decimalPrice2 decimalDescription textCategoryID int

Page 9: Relatorio andrest

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

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

4.4.2 Modelo Cloud SaaS

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

Instalações do Cliente

AndRest Client AndRest Server

Instalações do Cliente

AndRest Client AndRest Server

AndRest Services Provider

Page 10: Relatorio andrest

Desenvolvimento de Aplicações em Ambientes Móveis

5 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-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

Page 11: Relatorio andrest

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

Page 12: Relatorio andrest

Desenvolvimento de Aplicações em Ambientes Móveis

6 Manual de UtilizaçãoNeste 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

Page 13: Relatorio andrest

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

Page 14: Relatorio andrest

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

Page 15: Relatorio andrest

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

Page 16: Relatorio andrest

Desenvolvimento de Aplicações em Ambientes Móveis

7 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ã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