Desenvolvimento de uma Plataforma Web de Gestão de Restauração
César Meira
Mestrado em Engenharia Informática, 30538, [email protected]
Jorge Freitas
Mestrado em Engenharia Informática, 30549, [email protected]
Emanuel Peres
Escola de Ciências e Tecnologia, Departamento de Engenharias, [email protected]
Luís Magalhães
Escola de Ciências e Tecnologia, Departamento de Engenharias, [email protected]
Maximino Bessa
Escola de Ciências e Tecnologia, Departamento de Engenharias, [email protected]
Este projeto descreve uma plataforma web para
a gestão de empresas de restauração, cujos os
objetivos se baseiam em permitir ao gestor um
melhor
controlo e decisão. Disponibiliza
estatísticas e informação útil para a tomada de
decisão, contribui para uma melhor gestão do
pessoal e das encomendas, e melhora a eficácia
no atendimento dos clientes através da redução
do tempo de espera, isto é, o cliente pode fazer o
seu próprio pedido num quiosque multimédia. O
pedido é executado de forma rápida, intuitiva e
fluida, demorando o menor tempo possível.
A plataforma tem como objetivos: (1) a diminuição dos
tempos de espera de atendimento, permitindo aos clientes
efetuarem o seu próprio pedido de modo fácil e rápido,
através de um quiosque multimédia, (2) permitir a gestão de
utilizadores com diferentes níveis de acesso e privilégios,
(3) ser uma plataforma segura, restringindo o acesso por
grupos, (4) possibilitar a gestão de produtos e divisão por
categorias, (5) criação de menus e atribuição a dias, com
possibilidade menus diferentes para almoço e jantar, (6)
permitir a consulta e edição de encomenda, (7)
disponibilizar multilinguagem na plataforma e (8) permitir
a ativação e desativação de módulos, possibilitando a cada
estabelecimento utilizar a plataforma como preferir.
Introdução
Estado da Arte
A aposta nas novas tecnologias e a ideologia do rápido e
fácil, consequentemente o pensamento constante e
inevitável da falta de tempo tem vindo a estar cada dia que
passa mais presente nas nossas atitudes e hábitos, desta
forma, com o intuito de superar as expectativas dos
clientes, para que os mesmos se sintam importantes e
respeitados, é importante arranjar uma solução para quem
quer fazer uma refeição rápida. Inspirado nesse mesmo
problema, ajudando as empresas de restauração a
consolidar a liderança no segmento de self-service, foi
desenvolvida uma plataforma web protótipo com o
objectivo de facilitar o serviço de restauração de modo que
a principal preocupação seja o pedido do cliente.
Para o desenvolvimento deste projeto optou-se pela
utilização de tecnologias OpenSource.
A linguagem de desenvolvimento da plataforma Web foi
php[4], “PHP: Hypertext Preprocessor", contudo, para que
fosse feita uma plataforma segura e bem estruturada foi
optada a utilização da tecnologia Zend Framework [1], que
possibilita a criação de uma plataforma Web em MVC
“Model-View-Controller” promovendo assim melhores
práticas de programação e mantendo uma estrutura
completamente separada e organizada, ou seja, o modelo
isola a lógica da aplicação da interface do utilizador, sendo
assim mais fácil de gerir e controlar.
Para o sistema de gestão de base de dados foi utilizado
igualmente tecnologia OpenSource, neste caso MySQL[2]
que utiliza a linguagem SQL “Linguagem de Consulta
Estruturada” como interface. MySQL[2] é uma plataforma
de excelente desempenho e estabilidade, pouco exigente a
nível de recursos de processamento, fácil de usar e
obviamente possui compatibilidade com PHP[4].
e não se encontra disponível para outros restaurantes.
Exemplo:
Foi utilizado também o jQuery[3], uma tecnologia
OpenSource, que é uma biblioteca JavaScript rápida e
concisa permitindo simplificar o desenvolvimento para a
web, jQuery[3] sem sombra de dúvidas revolucionou a
maneira como se escreve Javascript, estendendo-se muito
além do que se pode imaginar, a manipulação de eventos,
CSS, assim como a utilização de efeitos, animações e a
interação através de Ajax é simplificada de forma
significativa. Com a utilização desta tecnologia é evidente o
aumento da produtividade, pois permite a reutilização de
código através de plugins, reduzindo assim o código
necessário. Como é uma tecnologia OpenSource, dispõe de
plugins criados por outros programadores. Resumindo, é
uma biblioteca completa, sem deixar a simplicidade e
facilidade de utilização de lado.
Antes de ser iniciado o desenvolvimento do projeto foi
feito um trabalho de pesquisa e estudo de mercado
relativamente a aplicações já desenvolvidas neste contexto.
Durante essa pesquisa foram encontradas várias aplicações
ligadas à área de restauração, contudo e felizmente para
nós, as aplicações desenvolvidas existentes são
essencialmente para utilização do estabelecimento,
permitindo várias funcionalidades de gestão e controlo mas
para uso exclusivo dos funcionários e gestores como
exemplo a WinRest Pro, Figura 1.
Figura 2 - Aplicação do MacDonalds
Fonte:
http://4.bp.blogspot.com/HYEn9iqhvzg/TdFwnM1ZOZI/AAAAAAAALY/VR6oEdZ5Ml8/s1600/mc+machine.jpg
Através do trabalho de campo, necessário para nos
ambientarmos no mercado existente, de todos os projetos
que foram encontrados nenhum deles tinha uma ambição e
amplitude como este, fazendo assim com que este projeto
seja original. É claro que serviram de inspiração como
também de complemento para ideias adicionais de
melhoração do sistema.
Este projeto marca a diferença pois a plataforma
desenvolvida é abrangente, ampla e configurável de acordo
com o estabelecimento, sendo facilmente ajustável a vários
tipos de restauração, como Fast-Food, bares, restaurantes
tradicionais, etc. não só a nível nacional como
internacional, pois permite multi-idioma nos produtos e até
mesmo na própria plataforma.
Arquitetura proposta
Figura 1 - Aplicação WinRest
Fonte:
http://www.winrest.pt/produto.ud121?oid=4660&c_oid=-141
Foi encontrado uma outra aplicação e esta sim já
semelhante com este projeto, o self-service digital da
MacDonalds, Figura 2, que permite aos clientes fazerem o
seu próprio pedido de maneira rápida, contudo essa
aplicação foi desenhada para uso exclusivo da MacDonalds
Como o projeto consiste no desenvolvimento de uma
plataforma Web em MVC, Figura 3, com o objectivo de ser
essencialmente rápida e segura, é necessário que o
estabelecimento disponha de uma rede interna. É exigido
também um servidor para alojar a aplicação juntamente
com a base de dados e respetivos terminais para se aceder à
plataforma, como quiosque com ecrã táctil, leitor de
cartões, emissor de talões, para o cliente e funcionário,
tablets, e computadores.
colocando restrições consoante o grupo a que o utilizador
da plataforma pertence, não permitindo o acesso a páginas
onde os utilizadores não são autorizados.
Protótipo desenvolvido
Figura 3 - Funcionamento Plataforma MVC
A aplicação é dividida em Front-Office e Back-Office.
O Front-Office é designado para funcionalidades que
estejam relacionadas com o cliente, neste caso a criação do
pedido e o seu tratamento por parte do funcionário, assim
sendo, o Front-Office é dividido em dois módulos. Um dos
módulos diz respeito à criação de pedidos, que poderá ser
acedida pelo terminal disponibilizado ao cliente, de modo
que este tenha a possibilidade de efetuar o seu próprio
pedido, ou então, por um terminal pertencente ao
funcionário, como tablet ou mesmo um quiosque no balcão
em que somente o funcionário tenha permissões de aceder,
pois caso um cliente não esteja registado ou prefira fazer o
pedido através do funcionário tenha sempre essa
possibilidade. Quando o módulo é acedido por um
funcionário não haverá limitação dos produtos como existe
para os clientes, ou seja, todos os produtos estarão
disponíveis para aquisição. O outro módulo do nosso FrontOffice refere-se ao tratamento de pedidos, que será acedida
unicamente por um terminal do funcionário, nesse módulo
será possível visualizar todos os pedidos das últimas 24
horas e filtrar essa informação para uma consulta mais
rápida e focada. O funcionário poderá ainda tratar a
encomenda, marcando os produtos que foram entregues até
que esta fique concluída.
O back-office é utilizado para o gerenciamento de toda a
plataforma, permite ao administrador gerir os seus clientes,
funcionários, e até mesmo os produtos do seu
estabelecimento. É possível limitar a disponibilidade de
produtos, como os menus, consoante uma agenda tornando
os produtos disponíveis apenas em certas ocasiões. É
permitido também selecionar os produtos que estarão
disponíveis no módulo de self-service, desligar certos
módulos da plataforma como a agenda por exemplo,
fazendo que os menus estejam disponíveis sem necessidade
de verificação da agenda. É também fornecido estatísticas
de venda.
Como pretendemos uma plataforma segura é necessária
uma identificação inicial, antes de aceder a algum módulo,
no módulo do self-service será feito a partir da leitura de
um cartão de cliente, nos restantes módulos será necessário
iniciar sessão através do nome de utilizador e a respetiva
palavra-chave. A plataforma possui controlos de acesso,
Antes de começar a desenvolver aplicação foi necessário
ter uma ideia de como todo o sistema iria funcionar,
definindo assim o que se espera que a plataforma faça,
assim sendo, começou-se pela criação dos diagramas de
caso de uso descrevendo um cenário que mostra as
principais funcionalidades, diagrama entidade relação,
Figura 4, que descreve o modelo de dados de um sistema
com alto nível de abstração, e diagrama de estados
representando os estados ou situações em que o objeto se
pode encontrar no decorrer da execução do sistema.
Para esta etapa do projeto foram utilizadas as aplicações
StarUML[5] e MySQL WorkBench.
Figura 4 - Diagrama Entidade Relação
Com o decorrer do projeto foi necessário redesenhar
várias vezes a especificação à medida que as ideias iam
fluindo, de forma que o sistema consiga suportar todas as
funcionalidades pretendidas como multi-idioma, menus,
agendação de menus e configuração de módulos.
Devido ao facto de não se estar familiarizado nem com a
linguagem nem com as tecnologias utilizadas para o
desenvolvimento do projeto, o desenvolvimento da
plataforma tornou-se assim mais difícil. Foi necessário um
estudo prévio da Zend Framework [1], pois este é bastante
completo e era necessário compreender ao máximo essa
plataforma de forma que fosse possível aproveitar ao
máximo todas as suas potencialidades.
Durante o desenvolvimento da plataforma a atenção foi
mais focada no desenvolvimento do módulo de pedido do
cliente, pois esta seria a principal funcionalidade da
aplicação marcando a diferença sobre as restantes
aplicações concorrentes. Começou-se por desenvolver os
modelos necessários para a plataforma e respetivos
controladores, isto é a lógica da aplicação, depois partiu-se
para a interface do utilizador, onde são exibidos os dados.
Para a criação de grupos de utilizadores e definição de
controladores que cada grupo pode aceder utilizou-se a
zend_acl, uma classe da Zend Framework [1], assim, antes
de aceder a qualquer ação do controlador haverá uma
verificação de autenticação, conferindo se o utilizador está
autenticado e se o grupo ao qual ele pertence tem
permissões para aceder a esse mesmo controlador, tornando
assim a plataforma mais segura. Todas as informações do
pedido tal como variáveis de autenticação são guardadas
numa variável de sessão, para isso utilizámos o
zend_session.
O protótipo desenvolvido é composto por 3
controladores, controlador do cliente, funcionário e
administrador.
O controlador do cliente implementa métodos em Ajax e
JavaScript com o intuito de tornar a página dinâmica e
rápida, utilizando o Ajax para carregar e atualizar a página
de modo assíncrono sem que o utilizador repare, e
JavaScript para permitir arrastar os produtos que ele deseja
adquirir para o carrinho de compras. A visualização deste
controlador permite ainda ao cliente escolher um idioma
antes de começar o seu pedido. As páginas para efetuar o
pedido contém uma divisão que permite visualizar todos os
produtos disponíveis para aquisição, Figura 5, como
produtos, menus, separados por grupos, categorias, de
modo a que o cliente consiga encontrar o que pretende
consoante o que deseja, e inserir esses produtos no seu
pedido, para aquisição, uma divisão onde será possível ver
informação referente ao seu pedido como produtos, preço
atual, e também retirar os produtos que assim pretender do
pedido, por último uma divisão com os produtos preferidos
do respetivo cliente permitindo assim pedidos mais rápidos.
Figura 5 - Design protótipo do controlador cliente
O controlador funcionário possibilita visualizar todos os
pedidos e as suas informações base. Através de Ajax é
possível expandir a informação da encomenda e consoante
o estado do pedido as opções vão mudando, como por
exemplo, se uma encomenda estiver em espera sem haver
funcionário responsável pela mesma, é possível
responsabilizar-se pelo pedido, tornando possível a entrega
dos produtos e sua conclusão, ou seja, a página consoante o
estado do pedido e o funcionário que a visualiza altera o
que é possível fazer.
O controlador do administrador permite gerir toda a
informação da plataforma, como inserir utilizadores,
funcionários, produtos, menus, agendas, entre outros.
Conclusões e trabalho futuro
Pode-se concluir que devido ao facto de existirem poucos
sistemas que têm uma amplitude tão larga em relação a
gerenciamento de restauração e self-service para não falar
na originalidade do projeto, pode-se dizer que tem grande
potencial a nível de distribuição pelo mercado.
Como perspectiva futura visa-se o melhoramento da
plataforma, pois existem várias tecnologias que poderão
melhorar o seu desempenho como o uso do HTML 5 que
agora é suportado pela maioria dos navegadores,
melhoramento na navegação entre as diferentes páginas, e
também o melhoramento da plataforma conforme os
resultados do teste ao protótipo.
REFERÊNCIAS
1. Zend Framework: http://framework.zend.com/
2.
MySQL: http://www.mysql.com/
3.
jQuery: http://jquery.com/
4.
php: http://www.php.net/
5.
StarUML: http://staruml.sourceforge.net/en/
Download

shortpapper.