Prévia do material em texto
INSTITUTO FEDERAL DO ESPÍRITO SANTO CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS VINICIUS DA COSTA JEVEAUX SOPED - SOFTWARE DE GERENCIAMENTO DE PEDIDOS PARA LANCHONETE KIMEL DE ALEGRE-ES Alegre 2022 VINICIUS DA COSTA JEVEAUX SOPED - SOFTWARE DE GERENCIAMENTO DE PEDIDOS PARA LANCHONETE KIMEL DE ALEGRE-ES Proposta de Trabalho de conclusão de curso apresentado à Coordenadoria do Curso de Tecnologia em Análise e Desenvolvimento de Sistemas do Instituto Federal do Espírito, como requisito parcial para obtenção do título de Tecnólogo em Análise e Desenvolvimento de Sistemas. Orientador: Carlos Alexandre Siqueira da Silva Alegre 2022 Dados Internacionais de Catalogação-na-Publicação (CIP) Biblioteca Monsenhor José Bellotti – IFES campus de Alegre Jeveaux, Vinicius da Costa J58s Soped – Software de gerenciamento de pedidos para lanchonete Kimel de Alegre-ES / Vinicius da Costa Jeveaux – 2022. 44 f. : il. Orientador: Prof. Carlos Alexandre Siqueira da Silva Monografia (Graduação) – Instituto Federal de Educação, Ciência e Tecnologia do Espírito Santo. Curso Superior de Tecnologia em Análise e Desenvolvimento de Sistemas, 2022. 1. Software - Desenvolvimento. 2. Aplicações Web. 3. PHP (Linguagem de programação de computador). 4 Laravel (Estrutura de software). I. Silva, Carlos Alexandre Siqueira da. II. Título. III. Instituto Federal do Espírito Santo. CDD 23: 005.1 Elaborado por Felipe Fernandes Klajn – CRB6-ES 984 DECLARAÇÃO DO AUTOR Declaro, para fins de pesquisa acadêmica, didática e técnico-científica, que este Trabalho de Conclusão de Curso pode ser parcialmente utilizado, desde que se faça referência à fonte e ao autor. Alegre, 12 de Dezembro de 2022 Vinicius da Costa Jeveaux AGRADECIMENTOS Aos meus pais e minha irmã Daniela, pelo incentivo e apoio incondicional que serviram de alicerce para as minhas realizações. A minha filha Alana e minha noiva Camila, que acima de tudo são minhas melhores amigas, sempre me incentivaram a seguir meus sonhos, dando apoio em todas as etapas desta jornada, e sempre me compreendendo nos momentos mais difíceis e entendendo as renúncias que precisei fazer durante este período. A todos os professores e amigos que tive durante a graduação, agradeço por todos os ensinamentos transmitidos e pelas grandes amizades que foram feitas.Em especial ao meu orientador Carlos Alexandre e ao professor Cleziel, por nunca desistirem de mim, mesmo quando até eu pensei em desistir, eles me trouxeram de volta, e por isso serei eternamente grato. Aos colegas de trabalho da JCOM Software, por todo apoio recebido nas fases finais da confecção deste trabalho. Por fim, agradeço a todos que de alguma forma contribuíram para meu crescimento pessoal e profissional, muito obrigado! RESUMO Este trabalho propõe uma solução de atendimento para um estabelecimento do setor gastronômico, permitindo uma maior agilidade e segurança nos processos que envolvem a venda para o cliente. Para este trabalho propõe-se desenvolver uma aplicação web para gerenciar os pedidos dos clientes, trazendo um melhor acompanhamento por parte da equipe e evitando transtornos para os clientes. Foi desenvolvido um software em PHP, juntamente com o framework Laravel e hospedado na nuvem, garantindo que as informações estarão disponíveis em qualquer lugar e por qualquer dispositivo com conexão à internet. Palavras-chave: Desenvolvimento. Website. Laravel. Pedidos. ABSTRACT This work proposes a service solution for an establishment in the gastronomic sector, allowing greater agility and safety in the processes that involve the sale to the customer. For this work, it is proposed to develop a web application to manage customer orders, bringing better monitoring by the team and avoiding inconvenience to customers. A software was developed in PHP, along with the Laravel framework and hosted in the cloud, ensuring that the information will be available anywhere and on any device with an internet connection. Keywords: Development. Laravel Website. Order. LISTA DE ILUSTRAÇÕES Figura 1 – Modelo MVC 10 Figura 2 – Microsoft Visual Studio Code 15 Figura 3 – Tela Principal do Sistema Consumer 18 Figura 4 – Tela de Produtos do Sistema Consumer 18 Figura 5 – Tela de mesas/comandas do Sistema Consumer 19 Figura 6 – Tela de Seleção de Mesa do Sistema Consumere 19 Figura 7 – Tela de Pedido do Sistema Consumer 20 Figura 8 –Tela de Listagem de Produtos disponíveis para inclusão ao pedido 20 Figura 9 – Tela de Adicionar Produto ao pedido do Sistema Consumer 21 Figura 10 – Exemplos de Impressão de conta e pedidos para cozicasosnha 21 Figura 11 – Tela de pagamentos do sistema Consumer 22 Figura 12 – Diagrama de casos de uso 23 Figura 13 – Diagrama de classes 24 Figura 14 – Diagrama de banco de dados 25 Figura 15 – Migrations no laravel 26 Figura 16 – Model de Pedido no laravel 27 Figura 17 – Tela de login 28 Figura 18 – Tela de Mesas 28 Figura 19 – Tela de mesas no formato mobile. 29 Figura 20 – Trecho código-fonte controller classe Mesa 29 Figura 21 – Tela de adicionar produtos ao pedido 30 Figura 22 – Tela de adicionar produtos ao pedido formato mobile. 30 Figura 23 – Trecho código-fonte controller classe Pedido 31 Figura 24 – Tela de gerenciamento de pedidos 32 Figura 25 – Tela de alterar status 32 Figura 26 – Tela de informar pagamento 33 Figura 27 – Modelo de Pedido impresso 33 Figura 28 – Mapa do site 34 LISTA DE TABELAS Tabela 1 – Comparação entre aplicação proposta e aplicação Consumer 22 LISTA DE ABREVIATURAS, SIGLAS ERP Enterprise Resource Planning HTML Hypertext Markup Language HTTP Hypertext Transfer Protocol IDE Integrated Development Environment MVC Modelo, Visão e Controle ORM Object Relational Mapping Mapeador Relacional de Objetos PHP Hypertext Preprocessor PHP-FIG PHP Framework Interoperability Group PSR PHP Standard Recommendation PDV Sistema de frente de caixa(Ponto de venda) SGBD Sistema de Gerenciamento de Banco de Dados SQL Structured Query Language TI Tecnologia da Informação UML Unified Modeling Language VSCode Microsoft Visual Studio Code XAMPP Cross-Platform (X), Apache, MariaDB, PHP and Perl. SUMÁRIO 1 INTRODUÇÃO.......................................................................................................................3 1.1 ORGANIZAÇÃO DO DOCUMENTO....................................................................4 1.1 OBJETIVOS.............................................................................................................5 1.2.1 Objetivo geral.........................................................................................................5 1.2.2 Objetivos Específicos ............................................................................................5 1.3 JUSTIFICATIVA.......................................................................................................6 1.4 METODOLOGIA.....................................................................................................8 2 REFERENCIAL TEÓRICO....................................................................................................9 2.1 PHP……...................................................................................................................9 2.2 HTML.......................................................................................................................9 2.3 MySQL......................................................................................................................9 2.4 MVC........................................................................................................................10 2.5 LARAVEL...............................................................................................................11 2.5.1 Laravel Authentication.........................................................................................11 2.5.2 Blade Engine........................................................................................................122.5.3 Eloquent...............................................................................................................12 2.6 XAMPP...................................................................................................................13 2.7 FIG..........................................................................................................................13 2.8 PSR.........................................................................................................................13 2.8.1 PSR-1.......................................................................................................13 2.8.2 PSR-12.....................................................................................................14 2.9 MICROSOFT VISUAL STUDIO CODE...............................................................14 2.10 ERP........................................................................................................................15 2.11 PDV.......................................................................................................................16 2.12 TRABALHOS CORRELATOS............................................................................17 2.12.1 Comparação entre a aplicação proposta e o aplicativo relacionado.......22 3 MODELAGEM DE SOFTWARE.........................................................................................23 3.1 DIAGRAMA DE CASOS DE USO.......................................................................23 3.2 DIAGRAMA DE CLASSES..................................................................................24 3.3 DIAGRAMA DE BANCO DE DADOS................................................................23 4 RESULTADOS......................................................................................................................26 5 CONSIDERAÇÕES FINAIS.................................................................................................35 5.1 TRABALHOS FUTUROS…………….…...…………………………………….36 6 REFERÊNCIAS…………...………………………………………………………………..37 7 APÊNDICE A - Descrição de casos de uso…………….…………………………………..40 3 1 INTRODUÇÃO Estamos vivendo um período de inovação tecnológica e de informatização de processos, a tecnologia está cada vez mais presente em nosso dia a dia. Com isso as empresas que não se adequam às mudanças acabam ficando para trás, nas lanchonetes isto não é diferente, automatizar os procedimentos é importante para trazer mais agilidade e competitividade. De acordo com Turban e Volonino(2013), a informação é o centro de todo o processo, é fundamental saber usá-la de forma estratégica, pois o sucesso de um empreendimento está diretamente ligado à capacidade da organização em administrar sua base de informação e aproveitar as oportunidades de diferenciação que a tecnologia da informação oferece. Corroborando com essa ideia Oliveira(2014) afirma que é preciso promover automatização dos processos, para melhorar a qualidade dos processos e serviços prestados, pois com isso conseguimos promover transparência, definir responsabilidades entre os atores, padronizar a comunicação, organização e compreensão de cada atividade, monitorar as tarefas, evitar retrabalho e diminuir a incidência de erros. Como solução a informatização e automatização de processos surgiu nos anos 90 o termo ERP – Enterprise Resource Planning ou, como são chamados no Brasil, os SIGE – Sistemas Integrados de Gestão Empresarial. Esta solução visa dar às empresas mais controle e gestão sobre suas divisões corporativas. A utilização deste é um grande passo em busca da automatização de processos dentro de uma empresa, e que traz consigo vantagens e desvantagens, mas possuem barreiras de entrada em microempresas devido ao alto custo de implantação, relação custo/benefício e a morosidade do processo. As micro empresas do Brasil alcançam a cada ano uma maior participação na economia. No Brasil existem 6,4 milhões de estabelecimentos. Desse total, 99% são micro e pequenas empresas (MPE). As MPEs respondem por 52% dos empregos com carteira assinada no setor privado (16,1 milhões),(SEBRAE 2016). Com base no que foi situado acima, podemos observar que a informatização é de extrema importância nas empresas, e nas micro e pequenas empresas não é diferente. Muitas delas não conhecem os benefícios que a tecnologia da informação pode trazer para o seu negócio, principalmente nas empresas do ramo de serviços alimentícios, que em sua grande 4 maioria não possuem estrutura e nem capital para poder adquirir um sistema de gerenciamento mais robusto. Para estes pequenos comerciantes o mais importante geralmente é saber o quanto é vendido e poder comparar este dados com outros períodos, oferecer um sistema que digitalize suas comandas e realizar o fechamento da conta do pedido, com isto já é possível facilitar sua rotina e embasar suas tomadas de decisão. Este trabalho apresenta uma ferramenta que pode ser a porta de entrada para a informatização destas microempresas, visto que possui fácil implantação, funciona de forma autônoma e possui possibilidades de em uma futura necessidade, se integrar a um ERP e funcionar de forma conjunta a ele. A aplicação que foi desenvolvida tem por objetivo informatizar todos os procedimentos que envolvem o atendimento de um cliente, desde a realização do seu pedido, indo ao preparo e ao encerramento da conta. 1.1 ORGANIZAÇÃO DO DOCUMENTO Este trabalho está dividido em 5 capítulos. O capítulo 1 traz o leitor para o cenário no qual este trabalho está envolvido, abordando os conceitos básicos que serão explicados posteriormente, a justificativa pela escolha do tema e os métodos que foram seguidos para se concluir este projeto. O capítulo 2 será responsável por trazer todo o referencial teórico que foi levantado acerca do tema, dos processos e ferramentas que foram utilizadas no desenvolvimento. No capítulo 3 foi apresentado o resultado da modelagem de software, apresentando o diagrama de casos de uso, diagrama de classes e Modelo Entidade Relacionamento O capítulo 4 apresenta os resultados alcançados, que é o software desenvolvido, traz uma apresentação de trechos de código-fonte responsáveis pelo processamento e renderização das principais telas e funcionalidades que compõem o sistema e uma breve descrição de cada uma destas. Por fim, o capítulo 5 faz uma reflexão dos resultados obtidos e se os objetivos e requisitos foram atendidos e a sugestão de trabalhos futuros que podem ser realizados a fim 5 de enriquecer o trabalho desenvolvido. 1.2 OBJETIVOS A seguir serão apresentados os objetivos do trabalho. 1.2.1 Objetivo Geral O objetivo geral deste trabalho é desenvolver uma aplicação web utilizando a linguagem de programação PHP e o framework Laravel, com a finalidade de gerenciar os pedidos realizados para a lanchonete Kimel situada na cidade de Alegre-ES. 1.2.2 Objetivos Específicos A aplicação web desenvolvida terá toda a sua arquitetura detalhada, contado com um back-end e front-end, a seguir temos as demandas do projeto: ● Realizar o levantamento e análise de requisitos para a criação de um sistema de gerenciamento de pedidos para uma lanchonete; ● Desenvolver uma ferramenta para informatizar a realização de pedidos, automatizar o fechamento de conta e realizar gerenciamento de pedidos; ● Fazer a modelagem do sistema e do banco de dados; ● Criar as páginas web que sejam responsivas e multiplataforma, onde seja possível utilizar de um Smartphone até um desktop. 6 1.3 JUSTIFICATIVA As empresas vêm buscando várias formas de se tornarem competitivas e conquistar um espaço maior no mercado, maximizando seus lucros. Segundo Stair(2015), a informação é de grande importância para tomadores de decisão, e isso não é exclusividade de grandes empresas, independentemente do tamanho, a informatização é importante, dentre seus benefícios podemos listar como a automatização de tarefas essenciais, redução do tempo e dos custos,melhoria do processo produtivo, maior produtividade; auxilia na tomada de decisões; disponibiliza a informação em tempo oportuno; aprimora o controle interno (GONZALEZ JUNIOR; REIS; SANTOS, 2016). Não obstante, as empresas têm percebido as vantagens de trocar procedimentos burocráticos pela tecnologia. Entretanto, os pequenos empresários ainda resistem em dar a devida atenção ao potencial que o uso da TI pode proporcionar às suas empresas. Em razão de a TI contribuir para a redução da mortalidade precoce das pequenas empresas, a informatização não deve ser vista como um custo pelo empresário, mas como um investimento que traz muitos benefícios para a empresa (FELL; DORNELAS, 2013). A introdução da Tecnologia da Informação (TI) nas Micros e Pequenas Empresas (MPE’s), perpassa por algumas razões, tais como: manter ou aumentar a capacidade de inovação, aumentar a sobrevivência das empresas ou obter crescimento, e pela pressão imposta pelo ambiente. Acrescenta-se a isto o fato de que em pequenas empresas a taxa de adoção de tecnologias é tradicionalmente baixa e a taxa de insucesso alta (EIRIZ; BARBOSA; FERREIRA, 2016). As micro empresas do Brasil alcançam a cada ano uma maior participação na economia. No Brasil existem 6,4 milhões de estabelecimentos. Desse total, 99% são micro e pequenas empresas (MPE). As MPEs respondem por 52% dos empregos com carteira assinada no setor privado (16,1 milhões),(SEBRAE 2016). O mercado de alimentos e bebidas representa 10,1% do PIB nacional. A Abrasel estima que a alimentação fora do lar, também conhecida como food service, seja 2,7% desse montante. Com isso, o mercado de restaurantes movimenta mais de 30% do perfil dos comércios no Brasil, segundo a pesquisa do Panorama das Micro e Pequenas Empresas no Brasil de 2018. No Brasil, estima-se que existam em torno de 1 milhão de negócios, ao considerar bares, restaurantes, lanchonetes, etc. Desses, 650 mil ainda são informais e cerca 7 de 93,4% são micro e pequenos negócios. O IFB (Instituto Foodservice Brasil) demonstrou que no ano de 2021, 37% da população brasileira fez suas refeições fora de casa ou comprou alimentos prontos para levar. Esse setor movimentou em torno de R$ 170 bilhões e atendeu cerca de 80 milhões de consumidores a cada mês, tendo alta de 12% em relação a 2020. Nos últimos anos as refeições fora de casa cresceram 140% no Brasil. O setor de alimentação fora de casa, isto é, bares e restaurantes gera cerca de 450 mil novos empregos por ano segundo a Associação Brasileira de Bares e Restaurantes (Abrasel), sendo o maior empregador dentro da indústria brasileira. São 6 milhões de empregos. (BUYCO 2020) O autor deste trabalho de conclusão de curso, trabalha a mais de 10 anos em uma lanchonete familiar, com isso se tem conhecimento dos pontos críticos que precisam de maior atenção, de forma a tornar o procedimento mais ágil sem complicá-lo a ponto de se tornar algo complexo e difícil de se realizar. Hoje basicamente uma lanchonete funciona da seguinte forma: O cliente chega, o garçom toma o pedido a papel e caneta, vai andando até a cozinha, o pendura numa parede com os pedidos em ordem e depois de pronto ele retira o pedido na cozinha, leva até o cliente e depois devolve a comanda ao caixa. Durante o processo de pedido alguns erros são comuns ocorrerem, como: engano no pedido gerado por problemas de caligrafia; ordenação incorreta de pedidos gerando transtornos com os clientes, pedidos sendo realizados e não indo para a cozinha para serem produzidos e isso sendo percebido muito tempo depois, pedidos perdidos e erros de cálculo no fechamento de conta. Analisando este cenário, o projeto apresenta um sistema que automatiza os pedidos de lanchonetes e restaurantes para maior praticidade e qualidade do serviço. 8 1.4 METODOLOGIA Para o desenvolvimento deste projeto será utilizado um computador com acesso à internet, com os seguintes softwares e serviços instados: Visual Studio Code, Composer, Pacote Office, MySQL, MySQL workbench, Astah Community e XAMPP. Para implantar o software será necessário hospedar a aplicação em um servidor web, e se utilizará de Smartphones para acessar a interface de pedidos e 1 computador com impressora térmica e acesso à internet para acessar a interface de execução e gerenciamento de pedidos. O trabalho começou através de pesquisas na internet e em livros acerca do problema a ser solucionado e das alternativas já implementadas para se ter uma melhor referência sobre o cenário envolvido neste trabalho. Para o desenvolvimento da aplicação foi escolhido a linguagem de programação web PHP, juntamente com o framework Laravel e para persistência de dados o MySQL e a IDE escolhida foi o Visual Studio Code, Para realizar a automatização destes processos, foi desenvolvido uma aplicação web em PHP para gerenciar os pedidos, cuidando das etapas desde realizar o pedido, execução pela cozinha, até o pagamento do pedido pelo cliente. Após o levantamento bibliográfico, foi realizado um levantamento de requisitos, que descreve tudo que o sistema deverá fazer e quais aspectos de qualidade deverá atender; seguido pela especificação de casos de uso e modelagem de banco de dados. O processo de elaboração do pedido com o sistema implantado, deve ser realizado a seguinte forma: o pedido é feito ao garçom que digita o pedido diretamente no seu smartphone, que depois de realizado aparecerá em um monitor de pedidos na cozinha, evitando que o garçom tenha que ir colocar o pedido pessoalmente, e que também evita erros como má interpretação da letra do garçom, quantidades anotadas errado, perda de comandas e erro na ordenação dos pedidos. O funcionário responsável pelo caixa terá em suas mãos a informação das mesas em aberto, poderá incluir itens nos pedidos e realizar o fechamento de contas. A implementação do software foi realizada seguindo as recomendações da PSR-12, que são as práticas de codificação elaboradas pelo PHP Framework Interop Group (PHP-FIG) , que é um grupo formado por desenvolvedores da comunidade PHP. 9 2 REFERENCIAL TEÓRICO 2.1 PHP De acordo com Melo e Nascimento(2007), PHP é a abreviação de Hypertext Preprocessor, que em tradução direta significa “Pré-processador de Hipertexto”, que possui como seu principal objetivo geração de conteúdos dinâmicos para páginas web. Foi escolhido utilizar esta linguagem devido a ela ser de código aberto, não possuir nenhum custo com licenças de software, ser orientada a objeto e rodar do lado do servidor, garantido um pouco mais de eficiência na parte de segurança, porque o usuário não tem acesso às regras de negócio, somente ao HTML resultante. 2.2 HTML HTML (Hypertext Markup Language) ou, em português, Linguagem de Marcação de HiperTexto; é uma linguagem de marcação criada em 1991 para ser o padrão de comunicação e troca de documentos na Web. A linguagem utiliza conteúdo multimídia (texto, imagens, vídeo e áudio) para criar páginas da web e transmitir determinadas informações (MOURA; Beatriz 2016). O HTML é formado por um conjunto de elementos chamado de hipertexto, eles se conectam entre si e formam a página. Os elementos HTML ou também chamados de tags HTML, são utilizados para informar ao navegador que tipo de estrutura é essa que está sendo construída, podendo ser títulos, parágrafos, imagens, links, entre outros. (MOURA; Beatriz 2016). Para a representação do conteúdo de uma página construída utilizando HTML é necessário o uso de um navegador, que tem a função de interpretar e exibir o conteúdo presente no código. 2.3 MySQL Para o armazenamento dos dados foi utilizado o MySQL, que é um Sistema de Gerenciamento de Banco de Dados (SGBD) da linguagem SQL – Structured Query Language, que significa linguagem de consulta estruturada. A escolha se deu ao fato do MySQL ser o mais popular banco de dados open source do mundo, tendo alta performance, confiabilidade e de fácil uso; sem contar pela facilidade de integração com o PHP. Ele é um10 SGBD bem robusto e possui as principais funcionalidades esperadas deste tipo de serviço, incluindo: integridade referencial, stored procedures, triggers e views. 2.4 MVC Segundo Luciano e Alves (2011), o padrão MVC surgiu na década de 80 e se popularizou no desenvolvimento de aplicações web. Ele é composto por 3 pilares, que são: o controlador que é para onde vão todas as requisições do sistema, ele acessa a camada do modelo para lidar com essas requisições e usa views para exibir os resultados. Com isso é possível serem criadas diferentes views para um mesmo modelo, sem a necessidade de modificá-lo, que é uma grande vantagem na construção de aplicações para web, que podem ser acessadas por diferentes tipos de dispositivos, que possuem diferentes tipos de necessidade na interface da aplicação. Figura 1 – Modelo MVC. Fonte:Desconhecida. ● Modelo(Model): Representa dados empresariais e regras de negócio que controlam a atualização desses dados. Frequentemente o modelo funciona como a aproximação de um processo do mundo real; ● Visão (View): Acessa o modelo e determina a forma como o mesmo deve ser apresentado, sendo também a camada responsável por manter a consistência entre a apresentação podendo, para o tal, aplicar uma das estratégias seguintes: Cadastrar-se junto ao modelo para receber notificações de mudanças, ou; Solicitar ao modelo o seu 11 estado atual quando for necessário representá-lo; ● Controlador(Controller): Traduz interações com a visão em ações que devem ser desempenhadas em cima do modelo. O controlador tem dentre suas funções: Ativar processos de negócio; Mudar o estado do modelo; Escolher a visão apropriada de acordo com as ações dos usuários e com os resultados das mudanças no modelo. 2.5 Laravel O Laravel é um framework open-source PHP criado por Taylor Otwell em junho de 2011, é um dos mais utilizados do mundo, estruturado em MVC (Modelo, Visão e Controle) e atualmente está na versão 7.x, sendo um dos mais utilizados no mundo e ainda em grande crescimento, graças à enorme quantidade de recursos e funcionalidades disponibilizadas, bem como pela otimização oferecida aos desenvolvedores em seus projetos de aplicações e web services. O Laravel fornece poderosas ferramentas nativas a fim de facilitar tarefas comuns na maioria dos projetos web, como o sistema de rotas (que mapeia as requisições HTTP do sistema para as áreas responsáveis por tratá-las); O Laravel Authentication, que é um módulo completo de autenticação de usuários; o Blade Engine, que é um sistema de templates responsável pela padronização da parte visual da aplicação, e o Eloquent, seu ORM padrão. Ele simplifica as interações e manipulações da aplicação com o banco de dados (AMARAL; TIAGO, 2018). 2.5.1 Laravel Authentication Laravel faz a implementação de autenticação de maneira muito simples. Quase tudo está previamente configurado. O arquivo de configuração da autenticação está localizado no diretório config/auth.php, o qual contém muitas opções bem documentadas para adequar o comportamento dos serviços de autenticação. Este pacote possui todos os Models, Views e Controllers responsáveis pelo controle de usuários, desde a criação, alteração, lembretes de senhas, gerenciamento de sessões e níveis de acesso. A classe “User” criada pelo Authentication e vem previamente configurada para se comunicar com o Eloquent, ela possui por padrão os campos email, password e 12 remember_token, esta última será usada para armazenar um token de sessões "Lembrar-me" que são mantidas pela sua aplicação. Contudo é possível customizar esta classe adicionando ou alterando campos de acordo com sua necessidade. 2.5.2 Blade Engine Os frameworks web atuais trabalham com um sistema de templates que ajuda a não usar a duplicação de código, o que muitas vezes acontece no desenvolvimento de aplicações para manter a padronização das páginas. O uso de templates também auxilia quando é necessário fazer alterações em partes fixas da aplicação, onde as alterações devem ser feitas em todas as páginas que utilizam o padrão, reduzindo o risco de erros (MENDES, 2019). Blade Engine é o sistema de templates do Laravel, e diferente de outros sistemas de templates em PHP, ele não restringe o uso desta linguagem em suas páginas. Outra diferença é que as visualizações são compiladas e armazenadas em cache até serem alteradas, tornando os modelos mais leves. Suas visualizações usam a extensão de arquivo .blade.php e geralmente são armazenadas no diretório resources/views(MENDES, 2019). 2.5.3 Eloquent Eloquent, este é um Object Relational Mapping (ORM) ou Mapeador Relacional de Objetos, ele já vem incluído por padrão no Laravel. ORM nada mais é do que uma tecnologia projetada para reduzir o tempo de desenvolvimento, porque ele cuida de toda a abstração e comunicação com o banco de dados, e utiliza os Models para interagir com as tabelas. (VASCONCELOS, 2017). Algumas de convenções impostas pelo Eloquent são: ● Os nomes de tabelas são padronizados para o plural da classe que estiver associada. Exemplo: Classe “Pedido” possui a tabela “Pedidos”. ● As Primary Keys são sempre vinculadas à coluna id ● Toda tabela possui colunas timestamp mostrando sua data e hora de criação (created_at) e data e hora de atualização (updated_at). ● As configurações de conexão devem ficar no arquivo padrão do Laravel, “config/database.php”. https://medium.com/@taysasmp?source=post_page-----38f3f88d36d2-------------------------------- https://medium.com/@taysasmp?source=post_page-----38f3f88d36d2-------------------------------- 13 2.6 XAMPP XAMPP é uma distribuição apache pequena e leve, que é independente de plataforma, software livre, que consiste principalmente na base de dados MySQL, o servidor web Apache e os interpretadores para linguagens de script: PHP e Perl. O seu tamanho reduzido e portabilidade o fazem ser a ferramenta ideal para um ambiente de desenvolvimento e teste. O nome provém da abreviação de X (para qualquer dos diferentes sistemas operativos), Apache, MySQL, PHP, Perl. (APACHE FRIENDS, 2011) 2.7 FIG FIG significa Framework Interoperability Group, ele é formado por representantes de grandes projetos PHP (CakePHP, Drupal, PEAR, Phalcon, Symfony, Zend Framework 2 etc.). Criado em 2009, possui o objetivo de criar padrões que todos esses projetos citados possam adotar. Tais padrões podem quando adotados, trazem grandes benefícios, tais como: código legível; facilidade de dar manutenção; interoperabilidade (componentes de um framework ou pessoa podem ser facilmente integrados em outro). 2.8 PSR As PSR’s (PHP Standard Recommendation) ou Recomendação padrão do PHP, são especificações de projetos sugeridas e votadas por meio do grupo PHP-FIG. Estas especificações são voltadas para a codificação PHP de uma maneira geral, desde um simples espaçamento após um “IF”, até padrão de utilização de interfaces para ‘Log’s’. Vale salientar que nenhuma PSR é uma imposição, elas são tratadas apenas como sugestões.(ALMEIDA; Dhyogo, 2018) Neste trabalho foi adotado a PSR-1 e a PSR-12, que estão relacionadas aos padrões de escrita do código em PHP, A primeira discute a padronização básica do nosso código e a segunda discute sobre o estilo de como o código é escrito. O PSR-12 substituiu e estendeu o PSR-2, que teve que ser modificado devido aos avanços na linguagem de programação PHP. 2.8.1 PSR-1 A PSR-1 possui os padrões básicos de codificação, nela temos a descrição de como organizar os arquivos; nomes de variáveis, métodos, classes e namespaces; e codificação de caracteres. 14 A seguir, temos a visão geral deste padrão: ● Os arquivos devem usar somente <?php e <?= tags. ● Os arquivos devem usar apenas UTF-8 sem BOM para código PHP. ● Os arquivos devem declarar símbolos (classes, funções, constantes, etc.) ou causar efeitos colaterais (por exemplo, gerar saída, alterar configurações .ini, etc.), mas não devem fazer as duas coisas. ● Namespaces e classes devemseguir um PSR "autoloading": [ PSR-0 , PSR-4 ]. ● Os nomes das classes devem ser declarados em StudlyCaps. ● As constantes de classe devem ser declaradas em letras maiúsculas com separadores de sublinhado. ● Os nomes dos métodos devem ser declarados em camelCase. 2.8.2 PSR-12 Esta especificação estende e substitui o guia de estilo de codificação PSR-2 e requer adesão ao padrão básico de codificação PSR-1. Assim como o PSR-2, o objetivo desta especificação é reduzir o atrito cognitivo ao ler código de diferentes autores. Ele faz isso enumerando um conjunto compartilhado de regras e expectativas sobre como o código PHP deve ser formatado. Este PSR visa fornecer uma maneira definida de implementação de ferramentas de estilo de codificação, projetos podem declarar conformidade e desenvolvedores podem facilmente fazer conexões entre diferentes projetos. Quando vários autores estão colaborando em vários projetos, pode ser útil ter um conjunto de diretrizes que possam ser usadas em todos esses projetos. Portanto, o benefício deste guia não está nas regras em si, mas em compartilhá-las. 2.9 MICROSOFT VISUAL STUDIO CODE O Microsoft Visual Studio Code ou VSCode é um editor de código fonte livre publicado pela Microsoft em 2015, que segundo a mesma, teve o intuito inicial de apresentar de forma mais simples e prático o ambiente de desenvolvimento semelhante a Integrated Development Environment (IDE) Visual Studio, possui uma enorme biblioteca de extensões criadas pela comunidade, e isso permite que ele seja usado para desenvolver aplicativos para 15 diversas linguagens de programação.(MICROSOFT, 2022) (RASK et al., 2021) O VSCode possui seu código-fonte disponibilizado no GitHub, o que permite à comunidade técnica contribuir com seu desenvolvimento e facilitando a criação de extensões e novas funcionalidades, fazendo com seja adaptável a maiorias das tecnologias existentes. Figura 2 – Microsoft Visual Studio Code. Fonte: O autor (2022). 2.10 ERP A sigla ERP significa Enterprise Resource Planning, que traduzido de forma literal significa: planejamento de recursos da empresa. Este tipo de sistema busca simplificar, organizar, gerenciar e estruturar os processos de uma empresa, procurando centralizar todos os processos em uma única base de dados. Em alguns casos, também pode ser apresentados como um sistema modular, podendo ser utilizado para controle de estoque, compra de insumos, desenvolvimento de produtos, acompanhamento de processos produtivos e até mesmo para troca de informações entre clientes e fornecedores.(BRUM, 2016) Este sistemas são projetados para serem implantados em qualquer tipo de plataforma, seu principal objetivo é facilitar a troca de informações entre os setores da empresa, automatizando e padronizando processos, evitando redundância e melhorando o fluxo de informações; assim aumentando a produtividade, reduzindo o tempo gasto na realização de 16 tais tarefas. A implantação deste tipo de sistema pode acarretar também numa mudança organizacional, na qual todos os utilizadores deverão estar envolvidos. (BRUM, 2016) 2.11 PDV O sistema PDV (ou sistema de frente de caixa), é responsável por interligar diversos serviços com a finalidade de realizar e finalizar uma venda dentro de um estabelecimento.Na hora de finalizar a compra em um caixa, muitas transações são realizadas e processadas, de acordo com Leal(2020) dentre destas estão: ● Identificar método de pagamento; ● Registrar quantidade, preço e descontos; ● Dar baixa no estoque; ● Cálculo de impostos; ● Atribuir comissões; ● Enviar informações ao Sefaz do Estado; ● Mediar transações entre autorizadoras de cartões; ● Exportar informações das vendas ao ERP; Na prática os sistemas frente de caixa (PDV) funcionam da mesma forma que outros softwares corporativos, que é controlado pelo funcionário de caixa via computador ou dispositivo móvel como em alguns sistemas. Assim, quando um cliente chega para finalizar a venda o sistema faz praticamente tudo: desde registrar a venda até emitir nota fiscal. (TOTVS 2022) 17 2.12 TRABALHOS CORRELATOS Com a finalidade de realizar um comparativo com alguma solução já existente para este ramo, abordaremos brevemente o módulo de Pedidos e Vendas do ecossistema da empresa Consumer, ele tem a finalidade de automatizar as comandas de restaurantes e lanchonetes. O Consumer é uma aplicação Desktop que possui alguns módulos, o acesso a estes módulos estão disponíveis tanto dentro do Painel de controle da aplicação, como também em páginas web ou por aplicativos mobile, e que podem estar disponíveis para os gestores, funcionários internos e/ou clientes do estabelecimento, de acordo com a especificidade de cada módulo. Os principais modelos que compõem a solução são: Mesas, comandas e PDV; MenuDino Site e App Delivery; Agendamento de Pedidos; App para Entregador; Smart Delivery; Consumer Ads; Cardápio QRCode na Mesa; Monitor de Preparo KDS; Emissão de Cupom Fiscal e TEF; Controle de Estoque e Ficha Técnica; Connect Relatórios Online;Cupons e Programa de Fidelidade. Dentre os módulos mencionados acima, daremos o foco no “mesas, comandas e PDV”, que é o módulo que se assemelha a aplicação proposta neste trabalho.Ele é recomendado para estabelecimentos que trabalham com atendimento presencial, separando as contas por mesas ou números de comanda.Fornecendo o completo gerenciamento de mesas e pedidos, a parte de gerenciamento está disponível somente como aplicação desktop e a parte de tomada de pedidos está disponível tanto na aplicação desktop quanto na mobile. Na figura 3 temos a tela principal do Consumer, nela é possível ter acesso as principais funcionalidades que são: abrir/fechar caixa; mesas/comandas; pedidos delivery; pedidos no caixa; cardápio online; lista de clientes. 18 Figura 3 – Tela Principal do Sistema Consumer Fonte: CONSUMER 2022. Na figura 4 temos a tela de gerenciamento de produtos, onde é possível cadastrar os produtos principais, complementos, observações, categorias, tipos e tamanhos, insumos, alterar estoque, consultar históricos, e gerar relatórios. Figura 4 – Tela de Produtos do Sistema Consumer Fonte: CONSUMER 2022. 19 Na figura 5 temos a tela de mesas/comandas, nela é possível visualizar todos os pedidos abertos tendo opção de alterá-los, e abrir novos pedidos. Figura 5 – Tela de mesas/comandas do Sistema Consumer Fonte: CONSUMER 2022. Na figura 6 temos a tela de seleção de mesa, nelas temos a listagem de mesas, as que estão disponíveis estão verdes e ocupadas em vermelho. Figura 6 – Tela de Seleção de Mesa do Sistema Consumer Fonte: CONSUMER 2022. Na figura 7 temos a tela de pedido, nela temos os todos os detalhes a respeito do pedido na lateral esquerda e no centro a listagem de itens que já foram incluídos, no topo a opção de incluir novos itens ou editar algum existente e ao final a opção de imprimir e realizar pagamento. Posteriormente na figura 8 temos a listagem de produtos disponíveis para serem incluídas no pedido. E por fim na figura 9 a tela onde é possível inserir a quantidade desejada, 20 observações, complementos ou retirada de ingredientes. Figura 7 – Tela de Pedido do Sistema Consumer Fonte: CONSUMER 2022. Figura 8 – Tela de Listagem de Produtos disponíveis para inclusão ao pedido do Sistema Consumer Fonte: CONSUMER 2022. 21 Figura 9 – Tela de Adicionar Produto ao pedido do Sistema Consumer Fonte: CONSUMER 2022. Na figura 10 temos um exemplo a esquerda da impressão de uma conta e mais a direita a cópia do pedido que será enviado para preparo na cozinha. Figura 10 – Exemplos de Impressão de conta e pedidos para cozinha Fonte: CONSUMER 2022. 22 Na figura 11 temos a tela de pagamento, nela temos a listagem de itens do pedido, e as opções de pagamento disponíveis. Figura 11 – Tela de pagamentos do sistema Consumer Fonte: CONSUMER 2022. 2.12.1 Comparação entre a aplicação proposta e o aplicativo relacionado. Tabela 1 – Comparação entre aplicaçãoproposta e aplicação Consumer Funcionalidades Aplicação Proposta Consumer Digitação de pedidos x x Gerenciamento de produtos x x Gerenciamento de estoque - x Pedidos de delivery - x Disponibilidade Rede local e nuvem. Rede local. Gerenciamento de Pedidos Em qualquer dispositivo. Somente pela aplicação desktop. Custo da licença - R$54,90/mês plano anual. Fonte: O autor (2022). 23 3 MODELAGEM DE SOFTWARE 3.1 DIAGRAMA DE CASOS DE USO O diagrama de casos de uso descreve as funcionalidades propostas para o sistema proposto, é uma ferramenta para levantamento e descrição dos requisitos funcionais do sistema e sua relação com os atores que compõem o sistema. Na Figura 12 temos o diagrama de casos de uso deste projeto, onde é possível observar o ator Garçom que interagem com os casos de uso Login e Realizar Pedido; o ator Caixa que herda todas as interações do Garçom e também acessa: Imprimir Pedido,Alterar Status e Fechar conta; por fim o ator Administrador herda todas as permissões do caixa e interage com: Manter produtos, Manter categorias e Manter usuários. Figura 12 – Diagrama de casos de uso. Fonte: O autor (2022). 24 3.2 DIAGRAMA DE CLASSES Um diagrama de classes é uma representação dos componentes estruturais dos sistemas computacionais, eles são decorrentes do processo de abstração que identifica os objetos relacionados ao sistema e seus relacionamentos. Cada classe no diagrama consiste em atributos (valores que são anexados a uma instância da classe) e métodos/funções(que são operações realizadas por uma instância da classe).(LAZZARETTI, 2012) Na Figura 13 temos o diagrama de classes que compõem este projeto, no centro temos a principal classe que é a de Pedido e suas interações com as demais classes. Figura 13 – Diagrama de classes Fonte: O autor (2022). 25 3.3 DIAGRAMA DE BANCO DE DADOS Na Figura 14 temos o diagrama de banco de dados, que demonstra como as classes estão armazenadas no banco de dados e como se relacionam entre si. Por convenção do framework laravel, os nomes de tabelas são padronizados para o plural da classe que estiver associada, por exemplo a Classe “Pedido” possui a tabela “Pedidos”, e possuem colunas timestamp mostrando sua data e hora de criação (created_at), data e hora de atualização (updated_at) e data e hora de exclusão(deleted_at). Figura 14 – Diagrama de banco de dados Fonte: O autor (2022). 26 4 RESULTADOS Nesta seção serão apresentados o diagrama de mapa de site, principais trechos do código-fonte; e descrição das telas e suas principais funcionalidades. Nas Figuras 15 e 16 trago alguns trechos responsáveis para construir o modelo e realizar a interação com o banco de dados com a classe ‘Pedido’. Na figura 15 temos o trecho responsável por realizar as migrations de algumas das classes do sistema, que nada mais é que a criação da tabela e seus campos. Irei detalhar a classe pedido, nela podemos observar que o campo id_pedido é um campo do tipo ‘auto incremento’(que é um campo do tipo inteiro, e que seu número irá subindo de acordo com cada nova inserção), também se observa a conexão com outras tabelas através de chaves estrangeiras, como ocorre no campo id_mesa que é uma chave para a chave primária id_mesa da tabela mesas; por últimos temos a criação dos campos de data hora, utilizando a função timestamps. Figura 15 – Migrations no laravel. Fonte: O autor (2022). 27 Na figura 16 temos o trecho responsável por realizar a configuração do Modelo da classe Pedido e como ela se relaciona com os demais modelos do sistema. ● $fillable - Lista os campos que a classe possui; ● $primaryKey - Informa qual campo é a chave primária da classe, que será utilizada nos métodos de busca do Eloquent; ● mesa() - Retorna que o registro da classe mesa que está associada ao pedido; ● item_pedido() - Retorna a coleção de itens de pedido que estão associados ao pedido; ● pagamento() - Retorna o registro de pagamento associado ao pedido. Figura 16 – Model de Pedido no laravel. Fonte: O autor (2022). 28 A tela representada pela figura 17 é responsável por fazer o login na plataforma, nela possui o campo de email e senha, a opção de lembrar as credenciais de acesso e evitar repetir o processo na próxima vez que for acessar e por um último botão ser direcionado para página de registro de novos usuários. Figura 17 – Tela de login Fonte: O autor (2022). As figuras 18 e 19 demonstram a tela de listagem de mesas, uma quando aberta em um navegador desktop e outra na tela de um smartphone, nelas podemos perceber um menu na lateral esquerda que dá acesso a principais funcionalidades do sistema, este menu é padrão e será exibido em todas telas. No centro observa-se a listagem de mesas, onde a cor verde significa que a mesa está livre e a laranja com clientes e pedidos realizados. Dentro de cada mesa é possível observar quando ocupada: o status do pedido, a listagem de itens e a opção de inserir novos; quando vazia é possível iniciar um novo pedido. Figura 18 – Tela de Mesas Fonte: O autor (2022). 29 Figura 19 – Tela de mesas no formato mobile. Fonte: O autor (2022). Na figura 20 temos um trecho do controlador da classe mesa, nele temos a função de construtor que é executado toda vez que o controlador é chamado, nele é criado uma instância da classe mesa e a função index obtém a coleção de todas as mesas ordenadas pelo campo ‘numero_mesa’ e retorna a view Mesas com a coleção de mesas que é exibido nas figuras 18 e 19. Figura 20 –Trecho código-fonte controller classe Mesa. Fonte: O autor (2022). 30 Nas figuras 21 e 22 podemos observar a listagem de produtos disponíveis para serem inseridas no pedido, cada produto possui sua imagem, código, nome e descrição detalhada. Figura 21 – Tela de adicionar produtos ao pedido. Fonte: O autor (2022). Figura 22 – Tela de adicionar produtos ao pedido. Fonte: O autor (2022). 31 Na figura 23 temos o trecho do código-fonte do controlador da classe pedido responsável por criar um novo pedido e inserir itens nele. A função 'NovoPedido' é responsável por criar um novo pedido com o status ‘Aberto’, associá-lo a mesa correspondente, salvar no banco de dados e chamar a função ‘addProduto’ que irá obter a lista de Produtos disponíveis e retornar a view que renderizar a tela vista nas figuras 21 e 22. Figura 23 – Trecho código-fonte controller classe Pedido. Fonte: O autor (2022). 32 Na figura 24 é apresentada a tela de gerenciamento de pedido, nela é possível observar todas informações referentes ao pedido e os itens que o compõem, sendo possível realizar inclusão/alteração neste itens, alterar status, imprimir pedido, fechar conta e liberar a mesa para novos clientes. Figura 24 – Tela de gerenciamento de pedidos. Fonte: O autor (2022). Na figura 25 é exibido a tela de alterar status do pedido, os pedidos podem ter os seguintes estados: ● Realizado - é o pedido assim que foi digitado e ainda não foi para a cozinha ● Em preparo - depois de imprimir o pedido na cozinha, ele entra automaticamente neste status. ● Entregue - este status é associado quando o pedido está pronto e foi levado até o cliente. ● Pago - este status é quando o pedido não possui pagamento pendente, é automaticamente atribuído ao informar o pagamento total da conta. Figura 25 – Tela de alterar status. Fonte: O autor (2022). 33 Na figura 26 temos a tela de informar pagamento, onde o usuário seleciona a forma de pagamento e o valor pago. Figura 26 – Tela de informar pagamento. Fonte: O autor (2022). Na figura 27 temos um exemplo da impressão de pedidos, ele é utilizado para cozinha e no momento de fechamento da conta. ● Versão cozinha - é utilizada durante o preparo do pedido, ao enviar para o cozinha não é exibido os campos de valores, ao invés disso é exibido o campo observação digitado pelo garçom ● Versão conta - é utilizada para enviar ao cliente antes de realizar o pagamento ● Versão comprovante - é utilizada depois do pagamento realizado, trazendo consigo informações a respeito dovalor pago e forma de pagamento. Figura 27 – Modelo de Pedido impresso Fonte: O autor (2022). 34 Na figura 28 temos o mapa do site, demonstrado como é a navegação entre todas as telas do sistema. Figura 28 – Mapa do site Fonte: O autor (2022). 35 5 – CONSIDERAÇÕES FINAIS A proposta deste trabalho foi de desenvolver uma aplicação que sirva como porta de entrada na automatização de microempresas. Para isso foi desenvolvido uma aplicação web que pode ser acessada por qualquer dispositivo e com opção de rodar localmente em um computador ou hospedada na web. Durante a confecção deste trabalho foi aperfeiçoado o conhecimento adquirido durante a graduação, principalmente na parte de projetar e modelagem de software, quando no desenvolvimento web. Este trabalho como contribuição traz uma visão de como é importante que microempresas sejam informatizadas, abordando alguns dos benefícios que esta automatização traz. Após analisar os resultados obtidos, foi possível verificar que a solução proposta atende todos os requisitos inicialmente levantados e que atendeu o principal objetivo que é automatizar o processo de emissão de pedidos, sem alterar muito a rotina de como já vem sendo realizado nos últimos anos, com investimento baixo em equipamentos, baixo custo de manutenção, reduzindo erros de escrita e fechamento de conta e garantindo um melhor acompanhamento dos pedidos. 5.1 TRABALHOS FUTUROS Como trabalhos futuros, temos alguns pontos que serão interessantes de serem trabalhados, como os apontados abaixo: ● Permitir que o usuário adicione/remova os itens que compõem um produto durante a digitação de pedido, e esta edição alterar o valor final do produto escolhido pelo cliente. ● Permitir a criação de políticas comerciais diversas como: combos, promoções e programas de fidelidade ● Adicionar um módulo para o cliente realizar o próprio pedido na mesa, sem interação de um atendente. ● Adicionar um novo módulo de entregas, onde seria possível criar uma interface para cada cliente solicitar um novo pedido ou integração com outras soluções já disponíveis no mercado. 36 ● Adicionar um módulo de controle de estoque ● Adicionar um módulo de controle de caixa e faturamento. ● Adicionar um módulo de inteligência empresarial, que seria responsável por gerar relatórios que auxiliam na tomada de decisões dentro da empresa, como os seguintes: produtos mais vendidos, relação entre venda de produto x horário, venda de produtos x dias da semana, tempo médio de produção, dentre outros. 37 6 REFERÊNCIAS ALMEIDA, Dhyogo. PSR — Padrões necessários para ter um código de qualidade. 28 de Set de 2018 . Disponível em: https://medium.com/@dhyogoalmeida/psr-padr%C3%B5es-necess%C3%A1rios-para-ter-um- c%C3%B3digo-de-qualidade-92b5d81f70fe. Acesso em 25/08/2022. AMARAL, Tiago. Por que Laravel é uma das melhores opções para quem trabalha com PHP. 9 de Jul de 2018 . Disponível em: https://configr.com/blog/por-que-laravel-se-tornou-uma-das-melhores-opcoes-para-quem-trab alha-com-aplicacoes-em-php. Acesso em 21/07/2020. APACHE FRIENDS. XAMPP. Disponível em: http://www.apachefriends.org. Acesso em 29/08/2022. BRUM, P. Sistemas ERP na gestão da cadeia de suprimentos. Revista Organização Sistêmica, [S. l.], v. 7, n. 4, p. 79–94, 2016. Disponível em: https://www.revistasuninter.com/revistaorganizacaosistemica/index.php/organizacaoSistemica /article/view/346. Acesso em: 9 dez. 2022. BUYCO. Mercado de restaurantes: um setor em crescimento. Disponível em: https://buyco.com.br/mercado-de-restaurantes. Acesso em 29/08/2022. EIRIZ, V.; BARBOSA, N.; FERREIRA, V. Motivos da adoção de tecnologias pelas micro e pequenas empresas distribuidoras de produtos alimentares. Revista Brasileira de Gestão e Inovação, v.4, n.1, Setembro/Dezembro – 2016. FELL, A. F. A.; DORNELAS, J. S. Obstáculos ao Uso da Tecnologia da Informação para a Gestão do Conhecimento: um Estudo de Casos Múltiplos. Revista Gestão.Org, v. 11, n. 3, 2013. GONZALEZ JUNIOR, I. P.; REIS, L. S. B.; SANTOS, V. A. V. O uso da tecnologia de informação nas micro e pequenas empresas familiares de Cachoeira-BA. REAVI-Revista Eletrônica do Alto Vale do Itajaí, v. 4, n. 5, p. 77-89, 2016. LAZZARETTI, Alexandre Tagliari. Csdc–uma ferramenta de conversão de script sql em diagrama de classes uml. 2012. 38 LEAL, Maicon. Modelo de implantação de sistemas PDV, 2020 Trabalho de conclusão de curso (Curso Superior de Tecnologia em Segurança da Informação) - Faculdade de Tecnologia de Americana, Americana, 2020 LUCIANO, J.; ALVES, W. J. B. Padrão de arquitetura mvc: Model-view-controller. p. 6, 2011. Disponível em: https://unifafibe.com.br/revistasonline/arquivos/revistaepeqfafibe/sumario/20/1611201114224 9.pdf. Acesso em 22/08/2022. Melo, Alexandre Altair de e NASCIMENTO, Maurício G. F. PHP profissional: aprenda a desenvolver sistemas profissionais orientados a objetos com padrões de projeto.SP: Novatec, 2007. MENDES, Taysa. Utilização de Blade Engine: sistema de template em Laravel. 7 de Ago de 2019 . Disponível em: https://imasters.com.br/back-end/como-criar-as-models-do-seu-projeto-com-eloquent-no-lara vel. Acesso em 22/08/2022. MILANI, A. Construindo Aplicações Web com PHP e MySQL. Novatec, 2010. MILANI, A. MySQL - Guia do Programador. Novatec, 2007 MOURA, Beatriz.O que é o HTML e suas tags? Parte 1: estrutura básica. Disponível em: https://www.alura.com.br/artigos/o-que-e-html-suas-tags-parte-1-estrutura-basica. Acesso em 29/08/2022. OLIVEIRA,Wallace. A importância de estabelecer processos de qualidade. 04 de Nov de 2014. Disponível em: https://www.venki.com.br/blog/processos-de-qualidade. Acesso em 28/08/2022. PSR-1_ Basic Coding Standard - PHP-FIG. Disponível em: https://www.php-fig.org/psr/psr-1. Acesso em 21/07/2020. PSR-12_ Extended Coding Style - PHP-FIG. Disponível em: https://www.php-fig.org/psr/psr-12. Acesso em 21/07/2020. Release Notes - Laravel - The PHP Framework For Web Artisans. Disponível em: https://netbeans.org/kb/index.html. Acesso em 21/07/2020. 39 SEBRAE. Panorama dos Pequenos Negócios 2018. Disponível em: https://www.sebrae.com.br/Sebrae/Portal%20Sebrae/UFs/SP/Pesquisas/Panorama_dos_Peque nos_Negocios_2018_AF.pdf. Acesso em 29/08/2022. SILVA, Jorge Cleber Pereira; AMARAL , Maria Fernanda Brito; NASCIMENTO, Anderson Lopes; FELIX, Iana Celia. O impacto da Tecnologia da Informação na Gestão de Pequenas Empresas. Revista Formadores - Vivências e Estudos, Cachoeira - Bahia, v. 12, n. 6, p. 47-60, out. 2019. STAIR, Ralph M.. Princípios de sistemas de informação / Ralph M. Stair ,George W. Reynolds. Tradução Noveritis do Brasil. Revisão técnica Tânia Fátima Calvi Tait. – 11ª ed .São Paulo: Cengage Learning, 2015. TURBAN, Efraim; VOLONINO, Linda. Tecnologia da Informação para Gestão-: Em Busca de um Melhor Desempenho Estratégico e Operacional. Bookman Editora, 2013. TOTVS. PDV: O que é, principais funções e vantagens de investir 2022. Disponível em: https://elevesuasvendas.com.br/blog/vendas/sistema-de-frente-de-caixa-pdv. Acesso em 09/12/2022. VASCONCELOS, Felipe M. de. Como criar as Models do seu projeto com Eloquent no Laravel. 24 de Nov de 2017 . Disponível em: https://imasters.com.br/back-end/como-criar-as-models-do-seu-projeto-com-eloquent-no-lara vel. Acesso em 25/08/2022. 40 APÊNDICE A - Descrição de casos de uso Tabela 1 – Descrição caso de uso Login Caso de Uso: Login Identificador: UC1 Atores: Garçom, Caixa e Administrador Pré-condições: Possuir cadastro prévio. Fluxo Normal: 1. Usuário abre o Navegador e digita a url de acesso ao site. 2. Informar seu usuário e senha 3. Usuário é redirecionado a sua página de uso: ● Garçom abre a lista de mesas; ● Administrador e Caixa abrem o painel de administração do sistema. Fluxo Alternativo 1: Ao informar usuário ou senha incorreta é retornada a mensagem “Usuário e senha incorretos”, favor contactar o administrador do sistema”. Fluxo Alternativo 2: Fluxo Alternativo 3: Fonte: O autor (2022). Tabela 2– Caso de Uso: Cadastrar categorias de produtos Caso de Uso: Cadastrar categorias de produtos Identificador: UC2 Ator: Administrador Pré-condições: Estar logado no sistema (UC1). Fluxo Normal: 1. Usuário abre o menu principal e seleciona a aba de gerenciamento de categorias 2. Selecionar opção de adicionar nova categoria e informar o seu devido nome 3. Clicar sobre o botão cadastrar para finalizar o procedimento. Fluxo Alternativo 1: Fluxo Alternativo 2: Fluxo Alternativo 3: Fonte: O autor (2022). 41 Tabela 3 – Caso de Uso: Cadastrar produtos. Caso de Uso: Cadastrar produtos Identificador: UC3 Ator: Administrador Pré-condições: Estar logado no sistema (UC1). Sistema já possuir uma categoria cadastrada (UC2) Fluxo Normal: 1. Usuário abre o menu principal e seleciona a aba de gerenciamento de produtos 2. Selecionar opção de adicionar novo produto 3. Informar código, nome, descrição, valor, selecionar categoria pertencente e enviar a imagem do produto. 4. Clicar sobre o botão cadastrar para finalizar o procedimento. Fluxo Alternativo 1: Ao informar um código de produto já existente, o sistema retorna um erro e solicita a correção. Fluxo Alternativo 2: Ao deixar algum campo em branco, o sistema não aceita enviar o cadastro e exige o seu preenchimento. Fluxo Alternativo 3: Fonte: O autor (2022). Tabela 4 – Caso de Uso: Autorizar usuários. Caso de Uso: Autorizar usuários Identificador: UC4 Ator: Administrador Pré-condições: Estar logado no sistema (UC1). Fluxo Normal: 1. Administrador abre o menu principal e seleciona a aba de gerenciamento de usuários. 2. Selecionar qual usuário deseja dar acesso e clicar no botão editar. 3. Na aba de edição é possível alterar todos os dados e existirá um campo para confirmar que o usuário está ativo no sistema. 4. Clicar sobre o botão “finalizar” para concluir o procedimento. Fluxo Alternativo 1: Fluxo Alternativo 2: Fluxo Alternativo 3: Fonte: O autor (2022). 42 Tabela 5 – Caso de Uso: realizar pedido. Caso de Uso: Realizar pedido Identificador: UC5 Atores: Garçom, Caixa e Administrador Pré-condições: Estar logado no sistema (UC1). Fluxo Normal: 1. Clicar sobre qual mesa será associado o pedido; 2. Selecionar qual item o cliente deseja; 3. Informar quantidade e observações; 4. Após realizar o cadastro de todos os itens, clique sobre o botão “finalizar pedido”. Fluxo Alternativo 1: Ao informar o pedido sem quantidade, o sistema não aceita finalizar o procedimento, somente após o preenchimento correto do campo. Fluxo Alternativo 2: Fluxo Alternativo 3: Fonte: O autor (2022). Tabela 6 – Caso de Uso: imprimir pedido. Caso de Uso: Imprimir Pedido Identificador: UC6 Atores: Caixa e Administrador Pré-condições: Estar logado no sistema (UC1). Pedido Realizado (UC5) Fluxo Normal: 1. Selecionar no menu principal a opção de gerenciamento de pedidos 2. Selecionar o pedido a qual deseja imprimir 3. Uma página com o pedido em formato de impressão é aberta e seleciona a impressora e confirme para realizar a impressão Fluxo Alternativo 1: Fluxo Alternativo 2: Fluxo Alternativo 3: Fonte: O autor (2022). 43 Tabela 7 – Caso de Uso: alterar status pedido. Caso de Uso: Alterar Status do pedido Identificador: UC7 Atores: Caixa e Administrador Pré-condições: Estar logado no sistema (UC1). Pedido Realizado (UC5) Fluxo Normal: 1. Selecionar no menu principal a opção de gerenciamento de pedidos 2. Selecionar o pedido a qual deseja alterar o status 3. Alterar o status que deseja e finalizar o procedimento. Fluxo Alternativo 1: Fluxo Alternativo 2: Fluxo Alternativo 3: Fonte: O autor (2022). Tabela 8 – Caso de Uso: fechar conta. Caso de Uso: Fechar Conta Identificador: UC8 Atores: Caixa e Administrador Pré-condições: Estar logado no sistema (UC1). Pedido Realizado (UC5) Fluxo Normal: 1. Selecionar no menu principal a opção de gerenciamento de pedidos; 2. Selecionar o pedido a qual deseja finalizar; 3. O resumo dos itens de pedido e o valor total já é exibido em tela; 4. Clicar sobre o botão “Informar pagamento” para colocar a forma de pagamento (“Cartão, dinheiro ou PicPay”) e o valor Pago. Fluxo Alternativo 1: Fluxo Alternativo 2: Fluxo Alternativo 3: Fonte: O autor (2022). 44 Tabela 9 – Caso de Uso: imprimir conta. Caso de Uso: Imprimir Conta Identificador: UC8 Atore: Caixa e Administrador Pré-condições: Estar logado no sistema (UC1). Pedido Realizado (UC5) Fluxo Normal: 1. Selecionar no menu principal a opção de gerenciamento de pedidos; 2. Selecionar o pedido a qual deseja imprimir; 3. Clicar sobre o botão “imprimir conta” e uma página da conta em formato de impressão é aberto na tela; 4. Na conta devem conter: Nome da Empresa, CNPJ, número da mesa, horário do pedido, relação de itens, valor total; caso a conta já tenha sido paga, ainda é exibido: valor pago, troco, forma de pagamento e horário de pagamento. 4. Selecionar a impressora a qual deseja imprimir e o procedimento é finalizado. Fluxo Alternativo 1: Fluxo Alternativo 2: Fluxo Alternativo 3: Fonte: O autor (2022).