Você está na página 1de 24

APLICAÇÃO WEB PARA AUTOMAÇÃO DE

ATENDIMENTO DE BARES COM PYTHON E DJANGO

Bruno Oliveira Cordeiro Lima1


(brunocordeiro156@gmail.com)

Euclério Barbosa Ornellas Filho2

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.

Palavras-chave: Programação. Sistema Web. Framework Django. Python.

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

Este trabalho possui caráter de pesquisa exploratória. Para o desenvolvimento desse


projeto, foi realizada um estudo bibliográfico acerca das tecnologias de desenvolvimento web.
O intuito de desenvolver uma solução para agilidade do atendimento nos estabelecimentos.
Posteriormente, modelou-se um cenário que representa algumas funcionalidades da aplicação
web.
O planejamento de estudo, análise de caso e execução do trabalho consistem nas etapas
apresentadas a seguir:

 Estudo das ferramentas utilizadas;


 Linguagem de programação;
 Equipamentos utilizados;
 Implementação da aplicação;
Simulação e resultados.

2. REFERENCIAL TEÓRICO

Este capítulo está organizado em quatro partes. Apresenta o desenvolvimento para


ambiente de browser, são as aplicações web, o tipo de linguagem de programação orientada a
objeto, o conceito de banco de dados e a ferramenta de framework que é utilizada no
desenvolvimento da aplicação.

2.1 Aplicação Web

Os serviços web se beneficiam da infraestrutura de rede Internet para disponibilizar


acesso à informação e à aplicativos. A arquitetura das aplicações que executam utilizando
serviços Internet é denominada cliente/servidor. O servidor disponibiliza acesso a uma
aplicação ou pode conter páginas hospedadas a serem exibidas no cliente. O cliente é
denominado de navegador que permite acesso ao conteúdo de páginas web ou prover execução
de aplicações web.
O Hypertext Transfel Protocol (HTTP) é um protocolo da camada de aplicação do
modelo Open Systems Interconnection (OSI) que definem como os dois programas devem
interagir. Esse protocolo funciona através de troca de mensagens no formato de requisição e
resposta. Onde geralmente o lado cliente conecta e faz uma solicitação ao servidor que responde
e desconecta em seguida. Essa característica permite que sistemas de diferentes plataformas
possam transferir dados.
No tocante a serviços, em uma ponta está o cliente web (browser ou navegador) que
solicita dados ao servidor, que recebe os dados, formata as informações e apresenta ao usuário,
na outra ponta está o servidor que recebe as requisições, interpreta dados armazenados no banco
de dados do servidor, executa instruções e retorna informações para o cliente.
Em uma aplicação web, o usuário interage com a página. Assim denominadas de páginas
dinâmicas porque permitem essa interação. O navegador utilizando formulários HTML
(HyperText Markup Language) recebe do usuário informações. Essas informações são passadas
ao servidor que executa instruções compostas na aplicação. De acordo com o resultado da
execução dessas instruções são incorporadas nas páginas que são apresentadas ao cliente. Essa
incorporação pode ser simples como atualização de um campo com valores, ou mais complexa
como a apresentação de um gráfico a partir de dados indicados pelo usuário.
Reforça-se que não é somente o servidor quem realiza processamento em uma aplicação
web. O browser também pode executar scripts, programas que tem a capacidade de interpretar
os eventos gerados pelo usuário e responder aos mesmos. Esses scripts estão presentes no
código HTML e o seu código fonte pode ser visualizado a partir da própria página exibida pelo
navegador. Além dos scripts podem ser executadas aplicações em linguagem de programação
normalmente usadas para programas no servidor (back-end), como as linguagens PHP
(Hypertext PreProcessor), Java e Python.
As páginas web iniciaram-se de forma estática. Sem animações e baseadas em cópias
de texto. Na época, páginas estáticas eram suficientes considerando o objetivo de
disponibilização de informação ou troca. Porém, com a ampla utilização da Internet, houve a
necessidade de que as páginas se tornassem dinâmicas e outras tecnologias surgiram e
continuam surgindo para propor um ambiente mais agradável, interativo e amigável na web
(O’REILLY, 2005).
A Figura 1 apresenta diversas tecnologias utilizadas para o desenvolvimento web. O
relacionamento entre essas tecnologias permite entender o surgimento, as origens, das mesmas.

Figura 1 - Tecnologias para desenvolvimento web


Fonte: (Brown, 2006)

Brown (2006) ressalta que o projeto e o desenvolvimento de aplicações web é um campo


complexo. Há centenas de tecnologias, linguagens de programação, padrões e ferramentas que
podem ser utilizados. Isso pode ser verificado pela representação da Figura 1. A escolha da
tecnologia ou das tecnologias a serem utilizadas depende de uma série de fatores incluindo a
segurança necessária, os recursos oferecidos e a capacidade de investimento da empresa.

2.2 Programação Orientada a Objeto (POO)

O POO consiste num paradigma de linguagem de programação baseado em várias


técnicas, tais como: herança, coesão, abstração, polimorfismo, acoplamento e encapsulamento.
É outra forma de planejar o algoritmo. Na programação de linguagem estruturada, os
algoritmos são concebidos como uma série de passos sequenciais, que se executariam um após
o outro. Em POO é pensado em um modelo de problema em que teremos certos objetos que
representarão diferentes partes da solução para o problema em questão, e esses objetos são
capazes de se comunicar entre si.
Percebe-se que ao trabalhar com objetos tem certa similaridade de trabalhar com
funções, embora tenhamos que saber nomear cada coisa e suas características de uso.
Alguns elementos familiares na linguagem orientada a objetos, são: classes, instâncias,
atributos e métodos. Como mostra a Figura 2.
Figura 2 – Classe, Métodos, Atributos, Objetos.

Fonte: (https://www.macoratti.net/netoocb2.gif)

 Classes – São moldes que serve para instanciarmos os objetos.


 Atributos – Onde armazenamos os dados. Em equivalência à função, são as
variáveis que utilizamos.
 Métodos – Descreve o comportamento do objeto. Explicita as operações que os
objetos de uma classe são capazes de realizar.
 Objetos – São instancias das classes, os quais contêm informações onde podem
ser manipulados para uma série de operações.

2.3 Banco de Dados

Um banco de dados consiste em uma coleção organizada de informações, ou dados, que


são estruturados e armazenados eletronicamente em um sistema de computador. Geralmente, o
banco de dados é gerenciado por um Data Base Management System (DBMS). O conjunto
formado pelos dados, o DBMS e os aplicativos associados, é conhecido como sistema de banco
de dados, frequentemente referido apenas como banco de dados.
Nos bancos de dados mais comuns em uso atualmente, os dados são organizados em
tabelas compostas por linhas e colunas, o que permite um processamento e consulta eficientes.
Esses dados podem ser acessados, gerenciados, modificados, atualizados, controlados e
organizados de maneira fácil e conveniente. A maioria dos bancos de dados utiliza a Structured
Query Language (SQL) para escrever e consultar dados de forma padronizada e eficaz. Através
do uso do SQL, é possível realizar operações complexas nos dados, garantindo flexibilidade e
poder de análise.

2.4 Framework

De forma simples, pode-se dizer que um framework é uma arquitetura de programação


que conta com diversas funcionalidades, códigos genéricos que podem ser utilizados pelo
desenvolvedor em seus projetos, com o objetivo de simplificar, estruturar e facilitar o processo
de desenvolvimento da aplicação.
Ele conta com ferramentas, sistemas, componentes e guias que agilizam o processo de
criação de soluções, sendo, portanto, um artifício essencial na vida de um desenvolvedor.
Assim, algumas funcionalidades que são usadas regularmente em um site podem ser
automatizadas, como administração de banco de dados e gerenciamento de usuários.
Dessa forma, o programador consegue poupar bastante tempo escrevendo código para
estrutura básica da aplicação e passa a se dedicar apenas em resolver problemas de lógica,
específicos da aplicação, com soluções mais rápidas e eficientes.

3. DESENVOLVIMENTO

Este capítulo apresenta a ferramentas propostas para desenvolver o sistema. É


apresentada, ainda, a arquitetura lógica, tecnologias que compõem o protótipo de software
desenvolvido para validar os componentes previstos nesse trabalho.
A implementação do sistema foi feita com Python (PHYTON, 2023) com o banco de
dados SQLite (SQLITE, 2023) e camada de aplicação através da utilização do framework
Django (DJANGO, 2023).
Como interface do usuário foram utilizados recursos próprios do framework Django
responsáveis pelo tratamento da camada de visualização. E o browser Firefox (MOZILLA,
2023) para interface gráfica dos dados.
A seguir a lista das ferramentas e das tecnologias utilizadas para o desenvolvimento do
projeto:
I. Rede: HTTP;
II. Python: Linguagem de programação para implementação do sistema;
III. Django: Framework web responsável pela camada de aplicação;
IV. SQLite: Como banco de dados para armazenamento e consulta das leituras;

3.1 Rede
Os principais elementos sistêmicos presentes na arquitetura proposta neste trabalho são
mostrados na Figura 3.

Figura 3 – Componentes da arquitetura de rede

Fonte: Autor

Na Figura 3 estão previstos os ambientes para atender as especificidades funcionais do


sistema, utilizando da própria infraestrutura local para disponibilizar o acesso ao software,
sendo que esse é baseado em software livre e código aberto. As interfaces previstas na
mencionada arquitetura possibilitam que o usuário utilize e acesse os recursos do sistema por
diversos meios, basta está conectado na rede local.
O protocolo HTTP que será usado para comunicação Web permite a obtenção de
recursos, como os arquivos HTML. É a base da troca de informações e um protocolo cliente-
servidor, assim as requisições são originadas pelo destinatário.
Clientes e servidores se comunicam trocando mensagens individuais (ao contrário de
um fluxo de dados). As mensagens enviadas pelo cliente, geralmente um navegador da Web,
são chamadas de solicitações (requests), ou também requisições, e as mensagens enviadas pelo
servidor como resposta são chamadas de respostas (responses).
O Módulo local, que seria um computador do próprio estabelecimento, terá um servidor
rodando em seu sistema onde a aplicação está contida. Assim, permitindo acesso por meio do
IP atribuído pelo roteador para o computador.
O dispositivo do usuário ao se conectar na rede do estabelecimento por meio de Wi-Fi,
fará o acesso à aplicação web por meio do link contido no QRcode da respectiva mesa que está
ocupando.

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)

Conforme mostra a Figura 4, o fluxo do sistema Model-Template-View, se resume nos


seguintes itens:
a) URLs (Universal Resource Locator) - mapeamento das rotas e recursos do sistema.
b) View - regras de negócios do sistema, atuando como intermediário entre o Model e
Template. Obtêm o objeto de requisição (request) e retorna o objeto de resposta (response).
c) Model - abstração do banco de dados onde são definidos os modelos de dados do
sistema.
d) Template - disposição e apresentação de dados ao usuário. Página HTML.
A escolha do Django como framework trouxeram benefícios no desenvolvimento do
projeto. Possui uma comunidade ativa e engajada em todo o mundo. Isso significa que se pode
encontrar uma abundância de recursos, documentação, tutoriais e pacotes de terceiros para
estender e aprimorar sua aplicação.
No âmbito de produtividade, ele maximiza o tempo de desenvolvimento, fornecendo
um conjunto de ferramentas e bibliotecas que simplificam as tarefas, permitindo a concentração
na lógica de negócios da aplicação.
A arquitetura MTV permite deixar o código mais organizado, separando a lógica de
negócio (Model), a apresentação visual (Template), e a interação com o usuário (View).
Facilitando a manutenção e escalabilidade do projeto.
Pensando, também, que o sistema está na fase inicial de seu desenvolvimento, podendo
receber mais funcionalidade futuras. O Django é conhecido por ser altamente escalável. Ele foi
projetado para lidar com grandes volumes de tráfego e suportar aplicações em crescimento.
Além disso, o Django é frequentemente combinado com outros componentes, como servidores
web e caches de alto desempenho, para melhorar ainda mais a escalabilidade do sistema.
3.4 SQLite

A base do banco de dados é o SQLite, porém na versão SQLite3. O SQLite é um sistema


de gerenciamento de banco de dados relacional (SGBDR) leve, rápido e de código aberto. Ele
é amplamente utilizado em aplicativos e projetos que requerem um banco de dados embutido,
ou seja, um banco de dados que pode ser incorporado diretamente na aplicação, sem a
necessidade de uma instância de servidor separada.
O SQLite suporta a linguagem SQL (Structured Query Language) para consulta e
manipulação de dados. Ele oferece suporte a recursos comuns de bancos de dados, como criação
de tabelas, consultas, inserção, atualização e exclusão de registros.
Todo o banco de dados é armazenado em um único arquivo, que pode ser facilmente
distribuído e compartilhado. Isso torna o SQLite uma opção popular para aplicativos móveis e
aplicativos desktop leves que precisam de um banco de dados local.
SQLite é compatível com várias plataformas, incluindo Windows, macOS, Linux, iOS,
Android e outras. Isso significa que você pode usar o SQLite em diferentes sistemas
operacionais sem grandes problemas de compatibilidade.
Conforme destacado por Richard Hipp, criador do SQLite, a liberdade de acessar dados
valiosos em qualquer lugar é um poder significativo. Por meio do SQLite, essa liberdade é
desbloqueada, permitindo que informações essenciais estejam ao alcance das mãos do usuário,
independentemente do local ou dispositivo utilizado.

4. IMPLEMENTAÇÃO

Nessa seção será apresentado um roteiro de execução da aplicação web utilizando o


computador local do estabelecimento, com o framework Django. Também será apresentado as
funcionalidades do sistema.

4.1 Instalação e Configuração

É necessário configurar o IP do host, que no caso é o próprio computador do


estabelecimento, esse IP é o que foi alocado pelo roteador da rede para o dispositivo. Acessamos
o arquivo settings.py e colocamos no campo ALLOWED_HOSTS, isso irá dar permissão para
o Django iniciar o servidor por esse endereço IP. Inicia-se o servidor, com o comando: python
manage.py runserver <endereço IP:porta>.
Como mostra a Figura 5 recebemos um feedback do terminal, onde pode acessar a
aplicação através do endereço: http://192.168.51.103:80/.

Figura 5 – Iniciando o servidor

Fonte: Autor

Então todos os dispositivos conectados na mesma rede conseguirão acessar. Assim


permitimos o acesso remoto.
O Django irá criar uma pasta com o nome da aplicação e alguns arquivos default, como
models.py, view.py, urls.py, entre outros.
No arquivo models.py serão definidos os modelos que irão interagir com o banco de
dados, descrevendo quais são os campos e seus comportamentos que esse modelo terá. Para a
aplicação, somente com código Python é possível manipular o banco de dados, o framework
faz todo o trabalho por trás sem precisar digitar comandos SQL. Isso é possível pela
incorporação do MOR (Mapeamento Objeto Relacional) presente no Django.
O MER é uma forma de representar o banco de dados, de uma forma descritiva e de
maneira conceitual, que será utilizado em um sistema.
O MER (Figura 6) a seguir, representando o banco de dados do sistema proposto no
trabalho, foi utilizado principalmente na hora da criação dos models, pois como foi visto no
item 3.3, o Django utiliza do MVT. As tabelas e seus respectivos atributos foram criados como
models no sistema e passados para o banco de dados pelo Django a partir das especificações
definidas no arquivo models.py.

Figura 6 – MER do banco de dados


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.

Figura 7 – Arquivo urls.py

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.

Figura 8 – Função frontpage no arquivo view.py

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.

Figura 9 – QRcode para o cliente

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

Nesse capítulo, é mostrado o funcionamento e os detalhes de cada uma das páginas do


sistema.
Ao entrar no sistema, o usuário é direcionado a página de Menu. Todos os produtos do
estabelecimento serão mostrados. Na parte superior do sistema contém as opções de divisão de
produto por categorias, também é possível ver a comanda com os pedidos realizados.

Figura 10 – Exemplo tela de Menu

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

Figura 12 – Exemplo dois de tela de categoria

Fonte: Autor

Após selecionar os produtos o usuário poderá conferir todos os itens compostos no


pedido, ao clicar no botão “Confirmar Pedido” será redirecionado para a página. Com os botões
de “+” e “-” para alterar as quantidades dos itens e o botão “Remover” para retirar um item que
não deseja mais. Como mostra Figura 13.

Figura 13 – Exemplo tela de Confirmação de Pedido


Fonte: Autor

Assim que é realizada a confirmação do pedido, o usuário será redirecionado para a


página de comanda. Como mostra a Figura 14.

Figura 14 – Exemplo tela de Comanda


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.

Figura 15 – Exemplo tela de Sistema


Fonte: Autor

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.

Figura 16 – Exemplo tela de Login

Fonte: Autor

Na tela do sistema poderá ver as mesas ocupadas do estabelecimento e ao selecionar


uma delas verá os produtos despachados para cada uma. Ao clicar na mesa, por exemplo “Mesa
01”, terão opções adicionais de alterar a quantidade dos itens da comanda ou, até mesmo,
remover. Como mostra a Figura 17.
Figura 17 – Exemplo tela de Comanda da Mesa

Fonte: Autor

A página de cadastro de produtos está disponível para o estabelecimento, ao clicar no


botão “Cardápio” tem a opção para cadastrar mais produtos, assim como também ver todos os
produtos cadastrados no sistema. Exemplo de cadastro mostrado na Figura 18.

Figura 18 – Exemplo tela de cadastro de produtos


Fonte: Autor

O cadastro de produtos é realizado de forma simples, disponibilizando uma página


dedicada para isso. Onde é necessário associar o produto a uma categoria de produtos, informar
o título, uma descrição breve do produto e o seu preço. Dessa foram já está cadastrado e
disponível ao Menu do estabelecimento.

6. CONCLUSÃO

Este trabalho mostrou as etapas e conceitos para a implementação de um sistema web


de autoatendimento para bares e restaurantes. No trabalho, foram apresentadas as ferramentas
de programação, o conceito de sistemas web, a metodologia de desenvolvimento e a
implementação do sistema.
Em relação às ferramentas de programação, as escolhas se mostraram satisfatórias. O
framework Django mostrou-se bastante eficiente permitindo uma implementação ágil e
organizada. Além disso, a ferramenta oferece diversas soluções de implementação já
disponíveis como, por exemplo, controle de acesso e página de administração, todas elas
editáveis, deixando assim o programador livre para fazer as alterações que julgar necessárias.
A linguagem Python, se mostrou poderosa e de fácil entendimento e aprendizado, com uma
documentação extensa e detalhada. O SQLite, já consolidado no mercado, se mostrou mais do
que suficiente para suprir as necessidades do sistema.
No tocante ao sistema proposto, este foi desenvolvido atendendo todos os requisitos
inicialmente idealizados. O fato de ter sido desenvolvido para Web acaba agregando-lhe valor,
pois facilita a manutenção e possibilita sua utilização em qualquer lugar que tenha acesso à
internet.
REFERÊNCIAS BIBLIOGRÁFICAS

BROWN, Stuart. Web technology family tree, 2006, Disponível em:


<http://modernl.com/article/web-tech-family-tree>. Acesso em: 14 mar. 2023.

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.

DAUZON, Samuel; BENDORAITIS, Aidas; RAVINDRAN, Arun. Django: web


development with Python. Packt Publishing Ltd, 2016.

DJANGO, 2013. The Web framework for perfectionists with deadlines. Disponível em:
<https://www.djangoproject.com/>. Acesso em: 03 abr. 2023.

FARINELLI, Fernanda. Conceitos básicos de programação orientada a objetos. Instituto


Federal Sudeste de Minas Gerais, 2007.

KUROSE, J. F.; ROSS, K. W. Redes de Computadores e a Internet: Uma Nova


Abordagem Top-down. 3ª edição, 2006.

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.

SANTANA, Osvaldo; GALESI, Thiago. Python e Django: desenvolvimento ágil de


aplicações web. São Paulo: Novatec, 2010.

SOMMERVILLE, I., Software engineering, 9ª Edition, Addison-Wesley, 2011.

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.

Você também pode gostar