Escolar Documentos
Profissional Documentos
Cultura Documentos
Resumo
Este trabalho aborda o desenvolvimento de uma aplicação web para bares e restaurantes, com
o objetivo de melhorar a experiência do cliente e aumentar a eficiência operacional do
estabelecimento. O projeto utiliza a linguagem de programação Python e o framework Django,
conhecidos por sua produtividade e recursos avançados. A aplicação web permite que os
clientes façam pedidos diretamente em suas mesas, eliminando a necessidade de chamar o
garçom ou esperar muito tempo pelo atendimento. Ao concluir o projeto, obteve uma aplicação
simples, porém robusta, atingindo o objetivo esperado, permitindo que dessa forma o
estabelecimento ofereça um diferencial no seu atendimento. No decorrer do trabalho são
descritas a problemática, objetivos, o embasamento teórico para o desenvolvimento do sistema,
todo o estudo de análise do sistema feito e os detalhes da implementação.
1. INTRODUÇÃO
O setor de bares e restaurantes tem se mostrado bastante promissor nos últimos anos,
com um grande número de estabelecimentos abertos e uma crescente demanda por serviços de
alimentação fora do lar. No entanto, esse setor também enfrenta alguns desafios, como a
concorrência acirrada e a necessidade de oferecer uma experiência diferenciada para os clientes.
A aplicação web desenvolvida neste trabalho pode contribuir para o setor de bares e
restaurantes, permitindo que os clientes façam pedidos de forma mais fácil e rápida, sem
precisar chamar o garçom ou aguardar muito tempo pela atenção do estabelecimento. Além
disso, o sistema também pode ajudar os estabelecimentos a aumentar a eficiência do
atendimento e melhorar a satisfação dos clientes.
1
Graduando em Engenharia Mecatrônica. 2023.
2
Orientador. Pós-Graduado, Redes de Computadores e Telecomunicações. euclerio@gmail.com.
Nesse sentido, é fundamental destacar que o desenvolvimento de sistemas atendimento
para bares e restaurantes se tornou uma necessidade para os estabelecimentos que desejam se
destacar em meio à concorrência acirrada do mercado. A utilização de tecnologias como a
aplicação web desenvolvida neste trabalho pode ser um diferencial competitivo, permitindo que
o estabelecimento ofereça uma experiência de consumo mais agradável e eficiente para os
clientes.
Levando em consideração o atendimento tradicional de bares e restaurante, onde o
cliente, ao se acomodar em uma mesa do estabelecimento, espera que o garçom vá até ele para
realizar a recepção, em muitos casos nesse momento é decidido o que será consumido por todos
os integrantes da mesa e no fim anotado o pedido até que o garçom retorne com os produtos.
Esse processo resulta em demoras e inconveniência, tanto para o cliente, quanto para o
estabelecimento.
Ao permitir que os clientes façam seus pedidos diretamente na aplicação, os garçons
podem receber as solicitações de forma mais organizada e eficiente, direcionando-se
diretamente às mesas para efetuar a entrega dos produtos pedidos. Isso diminui o tempo ocioso
da equipe do estabelecimento ao esperar a decisão dos clientes permitindo que nesse instante
seja feito o atendimento a outras mesas.
Para a realização deste projeto, foram utilizados conhecimentos de programação e
gestão de banco de dados, além da pesquisa de tendências e necessidades do mercado de bares
e restaurantes. O resultado é uma aplicação web completa e funcional, que pode ser facilmente
adaptada e personalizada para atender às necessidades específicas de cada estabelecimento.
Ao longo deste trabalho, serão apresentados os objetivos, o embasamento teórico, os
principais conceitos e tecnologias utilizados no desenvolvimento da aplicação web, além dos
resultados obtidos e das conclusões alcançadas a partir da implementação do sistema. Com isso,
espera-se contribuir para o avanço do setor de bares e restaurantes, proporcionando uma
experiência de consumo mais agradável e eficiente para os clientes, e aumentando a eficiência
operacional dos estabelecimentos.
1.1 Objetivos
Este trabalho tem como objetivo desenvolver uma aplicação web para bares e
restaurantes utilizando a linguagem de programação Python e o framework Django, com o
intuito de otimizar o processo de recebimento de pedidos pelos clientes nas mesas, melhorando
a experiência do usuário e aumentando a eficiência do estabelecimento.
1.2 Metodologia
2. REFERENCIAL TEÓRICO
Fonte: (https://www.macoratti.net/netoocb2.gif)
2.4 Framework
3. DESENVOLVIMENTO
3.1 Rede
Os principais elementos sistêmicos presentes na arquitetura proposta neste trabalho são
mostrados na Figura 3.
Fonte: Autor
3.2 Python
O Python se tornou uma das linguagens de programação mais populares, desde o seu
surgimento em 1991. Sua política de código aberto possibilitou a interação da comunidade da
computação científica em seu desenvolvimento contínuo, causando um aumento no uso desta
linguagem em aplicações industriais e acadêmicas (MCKINNEY, 2017).
A linguagem Python possui recursos de introspecção, herança múltipla, meta-classes,
decorators e duck typing e possui uma extensa biblioteca padrão que se aplica em diversos
domínios. Além da possibilidade de utilização de pacotes de terceiros e de vários frameworks
disponíveis para a linguagem.
A motivação para implementar a linguagem orientada a objeto vem dos principais
fundamentos: organização do código fonte e reutilizar o código em contextos similares. E a
linguagem Python tem sido valorizada por razão suas características como versatilidade,
praticidade e agilidade, sobretudo para projetos que demandam maior complexidade.
3.3 Django
Django é um framework para desenvolvimento web ágil, que foi criado originalmente
pela empresa editorial The World Company dos Estados Unidos para a versão web de seus
jornais. Escrito em Python, o Django foi posteriormente disponibilizado sob licença BSD em
2005, tornando-se um software open-source acessível a qualquer desenvolvedor interessado em
utilizá-lo.
Utilizando o princípio DRY (Don't Repeat Yourself), fazendo com que o desenvolvedor
faça reuso do código, assim como outros frameworks ágeis. O Django utiliza um padrão de
arquitetura similar ao MVC (Model-View-Controller), que é o MTV (Model-Template-View) e
é apresentado na Figura 4.
Figura 4 - Model-Template-View
Fonte: (https://minghaolee.github.io/images/2017/3/MTV.jpg)
4. IMPLEMENTAÇÃO
Fonte: Autor
O arquivo de urls.py determina o conceito de rota, onde é feita uma requisição pelo
cliente (browser) para aquela rota e a rota se mapeia em uma função ou objeto que tem seu
método para ser executado. Como mostra a Figura 7.
Fonte: Autor
Assim quando o cliente entrar no link http://192.168.51.103:80/ vai ser direcionado para
a página inicial do sistema, onde é chamada a função frontpage no lado do servidor.
O arquivo view.py contém as regras de negócios que serão usadas na aplicação. Depois
que o a requisição de rota é realizada o sistema vai buscar no view.py o que deve ser mostrado
para o browser. Como mostra a Figura 8.
Fonte: Autor
O client vai emitir uma requisição HTTP onde será passada para o Django que fará o
tratamento dessa requisição renderizando os produtos cadastrados no banco de dados, passando
para o caminho que se encontra o arquivo HTML da correspondente página, deixando a página
dinâmica após a renderização.
4.2 Funcionalidades
O sistema é composto pelo acesso do cliente e acesso da loja. Para a loja o acesso vai
ser pelo link da URL: http://<esdereço IP:porta>/sistema/, já o acesso do cliente será
disponibilizado por QRcode (Figura 9) que contém o link de cada mesa.
Fonte: Autor
Esse QRcode facilitará o acesso do usuário, já que ele não precisará digitar nenhuma
URL para acessar a aplicação. Também já encaminhará para o sistema contendo a mesa do
estabelecimento onde o cliente está acomodado.
Todo acesso da loja será solicitado login. Como a loja controla todo o fluxo de pedidos
e produtos, como alteração na quantidade de itens da comanda e remoção de itens, o controle
de acesso para o sistema é uma forma de segurança para manuseio indesejado das comandas
das mesas e do sistema como um todo.
Também é função da loja cadastrar produtos ao cardápio e/ou editar esses produtos, uma
das alterações mais recorrentes é de preço dos produtos. Assim que alterar o preço de um
produto isso interferirá diretamente no valor das comandas já abertas no funcionamento do
estabelecimento.
Existem duas maneiras de cadastrar itens ao cardápio, uma é acessando o link da URL:
http://<esdereço IP:porta>/ add_product/, que é uma página, do próprio sistema, desenvolvida
para um acesso direto ao cadastro de produtos. Outra maneira é acessando o banco de dados, já
que o Django gera uma interface gráfica para o DB (Data Base) onde é possível manipular os
Objetos das Classes composta no models.py.
Somente a loja terá permissões de alterar itens já adicionados a comanda. Essa alteração
é possível ser feita na quantidade dos produtos como na remoção deles. Caso o cliente não
queira mais, ou até mesmo realizar a troca por outro produto, quem fará essas alterações na
comanda é a equipe de funcionários do estabelecimento. Assim não é possível que clientes
alterem valores da comanda mesmo tendo já consumido os produtos, principalmente produtos
de embalagens descartáveis, como bebidas em lata, garrafas plásticas.
O cliente fará o escaneamento desse QRcode, sem necessidade de digitar nenhuma URL
no navegador, simplificando o acesso. Acessará a página do Menu com os produtos para
seleção, essa página é o cardápio online com todos os produtos do estabelecimento disponíveis
para escolha.
A página Menu foi desenvolvida para que seja simples visualização dos produtos e fácil
entendimento do que é proposto pelo sistema web. Assim o usuário não tem muito do que
pensar no que precisa fazer para usar o sistema. Mostrando o nome de cada produto e o seu
respectivo preço, são informações prescindíveis para que o usuário escolha e realize o pedido.
Cada produto tem um botão Adicionar, ao clicar nele o item é pré-adicionado a comanda
da mesa. O usuário, por final, terá que confirmar o seu pedido, assim evita erros de produtos
adicionados por engano e a ocupação do garçom ao trazer esses produtos. Se o usuário desejar
pedir produtos sequencialmente é só clicar em Adicionar sobre cada produto. Para requerer
mais quantidade do mesmo produto é feito na página de confirmação de pedido, onde terá
botões para acrescentar, ou reduzir valores de quantidade do produto.
Para conferir quais produtos foram consumidos na mesa é disponibilizado para o usuário
uma página de Comanda. Podendo ver todos os itens, os valores individuais, valores
acumulados pela quantidade, valor total da comanda.
5. RESULTADOS
Fonte: Autor
Como mostra a Figura 10, é nesta página que o usuário escolherá os itens que deseja.
Para realizar pedido de produtos basta clicar no botão “Adicionar” de cada produto. Se desejar
ver os produtos separados por categoria o usuário verá as categorias na parte superior da tela,
como no exemplo tem-se “Bebidas” e “Petiscos”. Abaixo a Figura 11 e a Figura 12 mostram os
produtos separados por categorias.
Figura 11 – Exemplo um de tela de categoria
Fonte: Autor
Fonte: Autor
Na página de comanda (Figura 14) o usuário poderá verificar quais foram os produtos
despachados à mesa conferir os valores individuais de cada produto, assim como os valore por
quantidade e o valor total da comanda. Podendo solicitar o fechamento da comanda.
A página Sistema é particularmente destinado à equipe do estabelecimento, podendo
também ser acessado pelo link http://<endereço_IP>/sistema/. Ao acessar será solicitada a
autenticação de usuário, se o usuário estiver logado irá mostrar a tela do sistema as mesas do
estabelecimento, como mostra Figura 15, se usuário não estiver logado será redirecionado para
a tela de login, como mostra Figura 16.
A tela de login (Figura 16) é a mesma de acesso ao banco de dados, disponibilizada pelo
framework Django. Foi utilizada para fazer autenticação da parte do estabelecimento, assim
permitindo maior segurança para a aplicação web.
Fonte: Autor
Fonte: Autor
6. CONCLUSÃO
CORECURSIVE #066. The Untold Story of SQLite. Richard Hipp. Disponível em: <
https://corecursive.com/066-sqlite-with-richard-hipp/>. Acesso em: 03 abr. 2023.
DJANGO, 2013. The Web framework for perfectionists with deadlines. Disponível em:
<https://www.djangoproject.com/>. Acesso em: 03 abr. 2023.
MCKINNEY, Wes. Python for Data Analysis: Data Wrangling with Pandas, NumPy, and
IPython. [S.l.]: O’Reilly Media, 2017.
O’REILLY, Tim. What is web 2.0. O’Reilly, 30 set. 2005. Disponível em:
<http://www.oreillynet.com/pub/a/oreilly/tim/news/2005/09/30/what-is-web-20.html>.
Acesso em: 15 abr. 2023.
PYTHON, 2023. About Python. Disponível em: < https://www.python.org/about/ >. Acesso
em: 03 mar. 2023.
SQLite, 2023. About SQLite. Disponível em: < https://www.sqlite.org/about.html >. Acesso
em: 03 mar. 2023.
WORLD WIDE WEB CONSORTIUM, HTTP 1.1 Specification, 2006. Disponível em: <
http://www.w3.org/protocols >. Acesso em: 02 de maio de 2023.