Você está na página 1de 53

INSTITUTO FEDERAL DE CIÊNCIAS E TECNOLOGIAS DE SÃO PAULO

CAMPUS BOITUVA

DESENVOLVIMENTO DE SISTEMA PARA AGENDAMENTO DE ALMOÇO PARA O


INSTITUTO FEDERAL DE SÃO PAULO CAMPUS BOITUVA

Hallisson Gabriel Roseiro Moreira


Maísa Antonella Aparecida Amadeu

Boituva
2023
HALLISSON GABRIEL ROSEIRO MOREIRA
MAÍSA ANTONELLA APARECIDA AMADEU

DESENVOLVIMENTO DE SISTEMA PARA AGENDAMENTO DE ALMOÇO PARA O


INSTITUTO FEDERAL DE SÃO PAULO CAMPUS BOITUVA

Trabalho de conclusão de curso


apresentado como requisito parcial para a
obtenção do Técnico em Redes de
Computadores pelo Instituto Federal de
São Paulo Campus Boituva.

Orientador: Felipe Alexandre Cardoso


Pazinatto.

Boituva
2023
Moreira, Hallisson Gabriel Roseiro
Desenvolvimento de sistema para agendamento de almoço para o
Instituto Federal de São Paulo Campus Boituva / Hallisson Gabriel
Roseiro Moreira; Maísa Antonella Aparecida Amadeu. – Boituva,
2023.
51 fl. : il.

Orientador: Felipe Alexandre Cardoso Pazinatto

Monografia (Curso técnico em Rede de Computadores Integrado ao


Ensino Médio) – Instituto Federal de São Paulo, Campus Boituva.

1. Flutter. 2.VSCode. 3.Android Studio. 4. Firebase Cloud


Firestore. 5. Alimentação escolar. I. Título

CDD – 005.133
Desenvolvimento de Sistema para Agendamento de Almoço para o Instituto Federal
de São Paulo Campus Boituva

Hallisson Gabriel Roseiro Moreira


Maísa Antonella Aparecida Amadeu

Trabalho de conclusão de curso


apresentado como requisito parcial para a
obtenção do Técnico em Redes de
Computadores pelo Instituto Federal de
São Paulo Campus Boituva.

Aprovado em: ______/_______/_________.

BANCA EXAMINADORA

_________________________________________

Orientador

Dr. Felipe Alexandre Cardoso Pazinatto

Instituto Federal de São Paulo Campus Boituva

_________________________________________

Membro da banca (1)

Esp. Newton Mitsushigue Kamimura

Instituto Federal de São Paulo Campus Boituva

_________________________________________

Membro da banca (2)

Dr. Flávio Aparecido Pontes

Instituto Federal de São Paulo Campus Boituva


RESUMO

O desperdício de alimentos é uma preocupação relevante em instituições como o


Instituto Federal de São Paulo Campus Boituva, onde o agendamento de refeições é
desafiador devido a variáveis como a quantidade de alunos presentes diariamente.
Este trabalho aborda o desenvolvimento de sistema para gerenciamento de refeições
em um campus educacional, visando reduzir o desperdício de alimentos. O projeto
propõe um sistema acessível via dispositivos móveis e web, com autenticação por
código. Para os funcionários, é possível adicionar e editar cardápios, bem como
verificar a quantidade prevista de alunos para cada refeição. Os alunos podem
visualizar cardápios e escolher os dias em que irão almoçar. O sistema utiliza o
framework Google Flutter para oferecer consistência em diferentes plataformas e o
Firebase Cloud Firestore para armazenamento. Os requisitos, casos de uso e telas são
detalhados, destacando o fácil acesso e a interatividade.

Palavras-chave: Google Flutter. Dart. Firebase Cloud Firestore. Desperdício Alimentar.


Desenvolvimento de Sistema.
ABSTRACT

Food waste is a relevant concern in institutions such as the Federal Institute of


São Paulo Campus Boituva, where meal scheduling is challenging due to variables
like the daily presence of students. This work addresses the development of
system for meal management in an educational campus, aiming to reduce food
waste. The project proposes an accessible system via mobile devices and web,
with code-based authentication. For employees, it is possible to add and edit
menus, as well as check the expected quantity of students for each meal. Students
can view menus and select the days they will have lunch. The system utilizes the
Google Flutter framework to ensure consistency across different platforms, and
Firebase Cloud Firestore for storage. Requirements, use cases, and screens are
detailed, emphasizing easy access and interactivity.

Keywords: Google Flutter. Dart. Firebase Cloud Firestore. Food Waste. System
Development.
SUMÁRIO

1 INTRODUÇÃO.......................................................................................................... 8
2 OBJETIVOS........................................................................................................................ 10
2.1 GERAL............................................................................................................ 10
2.2 ESPECÍFICOS................................................................................................ 10
3 MATERIAIS E MÉTODOS.......................................................................................11
3.1 MATERIAIS..................................................................................................... 11
3.2 MÉTODOS...................................................................................................... 12
4 METODOLOGIA DA REVISÃO DA LITERATURA................................................ 14
5 REFERENCIAL TEÓRICO......................................................................................15
5.1 DESPERDÍCIO ALIMENTAR.......................................................................... 15
5.2 ALIMENTAÇÃO ESCOLAR............................................................................ 15
5.3 FLUTTER........................................................................................................ 16
5.4 FIREBASE...................................................................................................... 18
5.5 FIRESTORE....................................................................................................19
6 PROPOSTA DE SOLUÇÃO....................................................................................22
7 PROJETO............................................................................................................................ 23
7.1 TOPOLOGIA DO SISTEMA............................................................................23
7.2 ESTRUTURA DO BANCO DE DADOS.......................................................... 24
7.2.1 Organização dos Dados......................................................................... 24
7.3 REQUISITOS.................................................................................................. 25
7.3.1 Requisitos Funcionais.............................................................................25
7.3.2 Requisitos Não Funcionais..................................................................... 25
7.4 CASOS DE USO.............................................................................................26
7.5 DIAGRAMAS DE ATIVIDADE.........................................................................30
7.6 TELAS.............................................................................................................37
7.6.1 Acesso.................................................................................................... 37
7.6.2 Tela Inicial para Estudantes....................................................................39
7.6.3 Tela Inicial para Funcionários................................................................. 41
7.6.4 Tela para Edição de Menu...................................................................... 43
7.6.5 Tela para Exclusão de Semanas............................................................ 45
8 CONCLUSÃO......................................................................................................... 49
REFERÊNCIAS..........................................................................................................51
8

1 INTRODUÇÃO

A alimentação escolar (AE) é um programa que beneficia crianças e


adolescentes em diversas partes do mundo, como lembrado por Cesar (2018). A
oferta de uma alimentação saudável nas escolas é uma maneira importante de
apoiar o desenvolvimento infantil, por meio de uma nutrição adequada e do
aprimoramento das habilidades cognitivas dos estudantes. Além disso, a AE tem o
potencial de contribuir para a redução da evasão escolar, sendo uma medida
essencial para garantir a educação de qualidade e a saúde das crianças e jovens
em idade escolar.
No entanto, a AE também sofre com o desperdício de comida, como foi dito
por Pikelaizen e Spinelli (2013) em seu artigo. Segundo eles, o percentual elevado
de sobras de almoço identificado em seu estudo pode ser justificado possivelmente
pela produção intencional de uma quantidade excedente de alimentos para ser
oferecida, em razão do número insuficiente de funcionários para o seu preparo e
para o consumo dos alunos que irão se alimentar.
A demanda por soluções inovadoras e eficazes é uma constante no ambiente
acadêmico e nas instituições de ensino, e o desenvolvimento de sistemas
desempenha um papel crucial na abordagem de desafios específicos. Nesse
contexto, nosso Trabalho de Conclusão de Curso (TCC) surge como uma tentativa
de resposta a problemas previamente identificados, com a proposta de criar um
sistema multiplataforma de agendamento de refeições para o Instituto Federal de
São Paulo, Campus Boituva.
O dilema do desperdício alimentar é uma preocupação crescente em todo o
mundo, e a eficiência na gestão de refeições em instituições de ensino é um fator
determinante para mitigar esse problema. Nossa pesquisa visa, em primeiro lugar,
abordar a redução da taxa de desperdício de alimentos no campus, um desafio
relevante que afeta tanto a sustentabilidade quanto a eficiência financeira da
instituição.
Além disso, nossa proposta oferece uma solução prática para melhorar a
experiência dos estudantes e dos funcionários, fornecendo uma plataforma que
permite aos estudantes visualizar com antecedência o cardápio semanal e
selecionar os horários de suas refeições. Isso não apenas promove uma
alimentação mais consciente, mas também proporciona um maior controle sobre a
9

programação alimentar, o que é particularmente valioso em um ambiente acadêmico


com horários variados.
10

2 OBJETIVOS

As seções 2.1 e 2.2 contêm as informações sobre os objetivos estabelecidos


para o projeto proposto.

2.1 GERAL

Desenvolver um sistema multiplataforma para agendamento de almoço para o


Instituto Federal de São Paulo Campus Boituva, visando otimizar o processo de
contagem de alunos que irão se alimentar na escola e evitar o desperdício de
comida.

2.2 ESPECÍFICOS

A. Desenvolver um sistema intuitivo e fácil de usar e que seja compatível com


diferentes dispositivos e sistemas operacionais.
B. Projetar o sistema para auxiliar na alimentação do Instituto Federal de São
Paulo Campus Boituva.
C. Realizar a construção de um banco de dados no Firestore do Google que irá
se comunicar diretamente com o sistema.
D. Construir as seguintes telas: tela de login, tela para a edição do cardápio, tela
para o aluno marcar quais dias da semana irá almoçar, tela para ver a
quantidade de alunos que irão se alimentar no local, tela para remoção de
semanas.
11

3 MATERIAIS E MÉTODOS

3.1 MATERIAIS

Durante a condução deste trabalho de conclusão de curso, uma variedade de


materiais e recursos foram empregados para garantir o desenvolvimento e a
elaboração do projeto. Esta seção apresenta uma lista dos principais materiais
utilizados para a realização deste estudo:

● Equipamentos:
○ Notebook (computador) pessoal, utilizado para o desenvolvimento do
sistema, redação de documentos e pesquisa.
○ Computador da escola, também utilizado para a redação de
documentos e pesquisa.

● Softwares e Ferramentas:
○ Visual Studio Code (VSCode), uma ferramenta de edição de código
que possibilitou a criação e aprimoramento do código-fonte do sistema.
○ Android Studio, uma plataforma de desenvolvimento integrado utilizada
para criar a versão mobile do aplicativo.
○ Google Docs, empregado para a elaboração da documentação, escrita
de relatórios e organização das ideias.

● Recursos Online:
○ Google Drive, utilizado para armazenamento e compartilhamento de
documentos, arquivos e recursos relacionados ao projeto.
○ GitHub, plataforma de hospedagem e colaboração de código-fonte,
usada para controlar versões.

● Livraria e Frameworks:
○ Google Flutter, um framework de desenvolvimento que possibilitou a
criação de interfaces consistentes em diferentes plataformas,
garantindo a acessibilidade via dispositivos móveis e web.
12

○ Firebase Cloud Firestore, um banco de dados em nuvem utilizado para


armazenar as informações necessárias para o sistema de
gerenciamento de refeições.

Esses materiais foram essenciais para a implementação e documentação do


sistema de gerenciamento de refeições proposto neste trabalho. A combinação
desses recursos permitiu a criação de um ambiente propício para o
desenvolvimento, testes e detalhamento do projeto.

3.2 MÉTODOS

Acrescentamos na sequência o passo a passo que será executado no


desenvolvimento do sistema multiplataforma para agendamento de almoço no
Instituto Federal de São Paulo Campus Boituva, com o intuito de diminuir o
desperdício alimentar na escola.

1. Realizar o levantamento dos requisitos junto ao Instituto Federal de São


Paulo Campus Boituva, identificando as necessidades e demandas
específicas relacionadas ao agendamento de almoço e ao combate ao
desperdício alimentar.

2. Efetuar o estudo das tecnologias de desenvolvimento envolvidas no


desenvolvimento de sistemas, considerando plataformas como iOS, Android e
Web, além de avaliar as opções de banco de dados e tecnologias de
comunicação necessárias para a criação do sistema.

3. Realizar a modelagem do software, levando em consideração os requisitos


levantados.

4. Implementar a solução em forma de aplicativo e website, com base no projeto


elaborado na etapa anterior. Serão utilizadas as tecnologias selecionadas no
estudo preliminar, levando em consideração os requisitos funcionais e não
funcionais identificados. Será necessário desenvolver interfaces amigáveis
para os usuários.
13

5. Conduzir uma avaliação interna que simula um ambiente de produção durante


um dia da semana, com o propósito de coletar feedback para aprimorar o
sistema.

Essa metodologia visa garantir um processo estruturado e eficiente para o


desenvolvimento do sistema, desde a identificação dos requisitos até o teste interno.
14

4 METODOLOGIA DA REVISÃO DA LITERATURA

Neste capítulo será apresentado a metodologia adotada para a realização da


revisão de literatura no contexto deste Trabalho de Conclusão de Curso (TCC).
Tendo como objetivo principal da revisão de literatura neste TCC, mapear e
analisar criticamente as principais obras, estudos e conceitos que foram a base
teórica deste tema em questão. Além disso, foram identificadas por nós lacunas e
controvérsias que servirão como ponto de partida para nossa pesquisa original.
Foi utilizado bases de dados acadêmicas, bibliotecas digitais e mecanismos
de busca mais holista online para encontrar artigos, livros, dissertações e outros
materiais relevantes, como documentações de tecnologias. As palavras-chave e os
termos de busca foram selecionados para refletir os diferentes aspectos do tema
como por exemplo escola, nutrição, tecnologia e aplicativos como base de pesquisa.
Após a busca inicial, foi realizada uma seleção dos materiais encontrados.
Primeiramente, os estudos foram filtrados com base em critérios de relevância, como
a relação direta com o tema do TCC e a atualidade dos materiais, logo em seguida,
foram analisados os resumos para uma avaliação se os estudos contribuem de
maneira significativa para a compreensão do problema em estudo.
Foi identificado conceitos-chave sendo, as metodologias empregadas, os
resultados obtidos e as conclusões dos estudos. Essa análise nos permitiu
compreender as diferentes perspectivas existentes sobre o tema e a evolução do
conhecimento ao longo do tempo.
Durante a análise, foram identificadas lacunas no conhecimento, áreas pouco
exploradas e possíveis contradições entre os estudos. Essas lacunas serviram como
base para a justificativa da pesquisa, demonstrando a importância de contribuir para
preencher tais espaços em branco na literatura existente.
A revisão de literatura foi organizada de forma lógica e coerente. Foi
escolhido agrupar os estudos em categorias temáticas, destacando as principais
tendências, pontos de convergência e divergência. Isso permitiu a construção de um
panorama abrangente do estado atual do conhecimento sobre o tema.
É importante ressaltar que toda revisão de literatura possui limitações. Neste
trabalho, as limitações incluem a disponibilidade de materiais em determinados
idiomas, a restrição ao período de tempo para seleção dos estudos e a possibilidade
de viés na seleção dos materiais.
15

5 REFERENCIAL TEÓRICO

5.1 DESPERDÍCIO ALIMENTAR

Um relatório da (FAO et al., 2022, pg. 80) revelou que o desperdício de


alimentos é um problema global que afeta significativamente a nossa sociedade,
economia e meio ambiente. De acordo com o estudo, cerca de 35% dos alimentos
produzidos no mundo são desperdiçados anualmente.
Segundo Torrent et al. (2018), a redução significativa do desperdício de
alimentos pode trazer diversos benefícios para a sociedade, incluindo a diminuição
da fome, a melhoria da nutrição e da saúde das pessoas, a distribuição mais
equitativa dos alimentos e a promoção da agricultura sustentável. Além disso, a
redução do desperdício pode contribuir para a redução das emissões de gases de
efeito estufa associadas à produção, transporte e descarte de alimentos, bem como
para a economia de água, energia e outros recursos naturais utilizados no processo
de produção de alimentos.
Continuando, Torrent et al. (2018), diz que do ponto de vista econômico, a
redução do desperdício de alimentos pode gerar benefícios significativos para os
produtores e consumidores, uma vez que pode reduzir os custos de produção,
aumentar a eficiência dos processos de produção e distribuição, e reduzir os custos
de disposição de resíduos. Além disso, a redução do desperdício pode criar novas
oportunidades de negócios e empregos na indústria de alimentos e agricultura.

5.2 ALIMENTAÇÃO ESCOLAR

De acordo com Danelon et al. (2006), a nutrição desempenha um papel


crucial em todas as fases da vida humana, uma vez que é essencial para o
desenvolvimento e manutenção do organismo. No entanto, durante a idade escolar,
caracterizada por um metabolismo acelerado, é importante garantir uma alimentação
equilibrada e saudável para as crianças, a fim de garantir um crescimento adequado,
um bom rendimento escolar e prevenir doenças a longo prazo.
De acordo com os relatórios de 2022 do Fundo das Nações Unidas para a
Infância (UNICEF), a desnutrição e a falta de acesso à alimentação adequada são
problemas que afetam um número alarmante de pessoas em todo o mundo,
16

totalizando 828 milhões de indivíduos. Infelizmente, a situação se agravou devido


aos efeitos da pandemia da COVID-19.
Adicionalmente, em relatórios de 2020, constatou-se que cerca de 2,3 bilhões
de pessoas enfrentaram a falta de acesso à alimentação adequada ao longo deste
ano, sendo que a maioria dessas pessoas é composta por crianças e adolescentes
em idade escolar. Nesse contexto, a alimentação escolar desempenha um papel
fundamental na garantia de uma nutrição adequada para os estudantes. O Programa
Nacional de Alimentação Escolar (PNAE), criado em 1955, é uma importante
iniciativa do governo brasileiro nesse sentido.
De acordo com Ferreira et al. (2019), o principal objetivo do programa é
fornecer aos estudantes uma alimentação segura, garantindo nutrição de qualidade.
Além disso, o PNAE contribui para a formação de cidadãos conscientes e para a
melhoria da qualidade de vida dos estudantes. Para atingir esses objetivos, o
programa fornece auxílio financeiro adicional aos estados e municípios brasileiros,
com o intuito de garantir uma refeição diária para cada aluno matriculado em escolas
públicas e/ou filantrópicas. É importante destacar que o PNAE é uma medida de
inclusão social, uma vez que permite que estudantes em situação de vulnerabilidade
tenham acesso a uma alimentação adequada.

5.3 FLUTTER

De acordo com Thomas (2022), o Flutter é um framework (conjunto de


bibliotecas, que abordam funcionalidades, e estruturas, para o desenvolvimento de
aplicações, a fim de fornecer soluções para um mesmo domínio de problema,
permitindo a reutilização do seu código) gratuito e de código aberto para a criação
de interfaces de usuário, lançado em maio de 2017 pelo Google. Ele permite o
desenvolvimento de aplicativos móveis nativos para iOS e Android em uma única
base de código. O Flutter é composto por um SDK para compilação de código em
código de máquina nativo e um framework com uma biblioteca de interface do
usuário baseada em widgets reutilizáveis, como botões, entradas de texto e botões
deslizantes, que possibilitam personalizar elementos de interface do usuário para
atender às necessidades de cada aplicação.
Uma das principais vantagens do Flutter, conforme mencionado por Andrade
(2019), é o uso da linguagem de programação Dart para criar aplicativos nativos
17

para dispositivos móveis. O código é compilado diretamente para a linguagem do


dispositivo, permitindo o acesso aos recursos sem depender de terceiros e com
desempenho superior a outras opções, como o React Native. A figura abaixo mostra
as diferenças de acesso aos recursos entre o React Native e o Flutter.

Figura 1 - Diferenças de acesso aos recursos entre o React Native e o Flutter


Fonte: TreinaWeb (2020)

Outra vantagem do Flutter é o recurso de recarregamento rápido, conforme


mencionado por Thomas (2022). Com ele, é possível visualizar as alterações no
código em tempo real. Após salvar as alterações, leva apenas alguns instantes para
atualizar a aplicação em si.
Os widgets do Flutter, conforme apontado por Pinheiro (2021), são
basicamente componentes visuais para definir a interface de um aplicativo e são a
base para a criação das telas de um aplicativo Flutter. Eles são divididos em widgets
de layout, responsáveis por determinar a organização e posicionamento de outros
widgets, delimitando as áreas em nossas telas que serão preenchidas por outros
widgets, e widgets de interface, responsáveis por criar componentes visuais que
serão exibidos para os usuários, determinando os componentes que comporão a
interface do aplicativo. Em resumo, os widgets do Flutter oferecem um conjunto
poderoso e flexível de componentes visuais para a criação de interfaces de usuário
ricas e interativas em aplicativos móveis.
18

Para exemplificar a utilização dos widgets de interface e layout trabalhando


juntos, conforme mencionado por Pinheiro anteriormente, pode ser citar a utilização
de botões e textos como interface, ou seja, o que será exibido ao usuário. A column
é o widget de layout que definirá a posição na qual esses botões e textos ficarão na
tela.

Figura 2 - Layout do Widget Column


Fonte: Layouts in Flutter (2023)

5.4 FIREBASE

Conforme descrito por Smyth (2017), o Firebase é uma plataforma


desenvolvida pelo Google, que oferece uma ampla gama de recursos para
armazenamento e sincronização em tempo real de dados. Ele fornece uma
infraestrutura confiável e escalável que permite aos desenvolvedores criar e
gerenciar aplicativos para dispositivos móveis e web com facilidade. O Firebase é
projetado para acelerar a integração de recursos baseados em nuvem, oferecendo
uma solução abrangente e poderosa para o desenvolvimento de software.
Uma das principais vantagens do Firebase é a sua capacidade de fornecer
sincronização em tempo real de dados entre os clientes e o servidor. Isso significa
que qualquer alteração feita nos dados é automaticamente refletida em todos os
dispositivos conectados, proporcionando uma experiência imersiva e colaborativa
para os usuários. Essa funcionalidade é especialmente útil em aplicativos que
exigem atualizações instantâneas, como aplicativos de mensagens, colaboração em
tempo real e compartilhamento de documentos.
19

Além disso, o Firebase oferece uma ampla variedade de soluções de


desenvolvimento que facilitam a criação de aplicativos de alta qualidade. Ele possui
uma vasta gama de recursos prontos para uso, como autenticação de usuários,
armazenamento de arquivos, hospedagem de aplicativos, testes A/B, análises de
desempenho, notificações por push e muito mais. Essas soluções integradas
permitem que os desenvolvedores economizem tempo e esforço, acelerando o
processo de desenvolvimento e permitindo que se concentrem na criação de
recursos exclusivos para seus aplicativos.
Moroney (2017) destaca que o Firebase vai além de oferecer apenas a
infraestrutura necessária para o desenvolvimento de aplicativos. Ele também pode
ser uma peça fundamental no sucesso financeiro de um negócio. Ao aproveitar os
recursos avançados do Firebase, os desenvolvedores podem criar aplicativos
inovadores que atendam às necessidades dos usuários e, consequentemente, obter
retornos financeiros satisfatórios. Essa capacidade de impulsionar o
empreendedorismo torna o Firebase uma ferramenta valiosa para startups e
empresas em crescimento.
No que diz respeito à estrutura de armazenamento de dados, o Firebase
adota uma abordagem única. Conforme mencionado por Cheng (2017), cada banco
de dados no Firebase é armazenado como uma árvore de objetos JSON. Essa
estrutura flexível permite que os desenvolvedores organizem e acessem facilmente
os dados, facilitando a criação de consultas complexas e personalizadas. Além
disso, a estrutura em árvore de objetos JSON oferece uma forma eficiente de
representar relacionamentos e hierarquias de dados, tornando o Firebase uma
escolha atraente para aplicativos com necessidades de modelagem de dados
complexas.

5.5 FIRESTORE

Conforme descrito na documentação oficial do Firebase (2023), o Firestore é


um banco de dados desenvolvido conjuntamente pelo Firebase e pelo Google Cloud.
Ele é uma poderosa ferramenta que oferece aos desenvolvedores a capacidade de
armazenar, sincronizar e consultar dados de maneira eficiente em aplicativos
móveis, web e servidores. O Firestore é versátil e oferece recursos avançados para
atender às necessidades de diversos tipos de aplicativos.
20

Uma das principais características do Firestore é a sua capacidade de


sincronização em tempo real. Assim como o Firebase Realtime Database, o
Firestore permite que os dados sejam sincronizados automaticamente entre os
clientes e o servidor, proporcionando uma experiência em tempo real para os
usuários. Isso é possível por meio do uso de ouvintes, que ficam atentos a
mudanças nos dados e notificam os clientes para que possam atualizar suas
interfaces de usuário em tempo real. Essa funcionalidade é extremamente útil em
aplicativos que requerem atualizações instantâneas, como aplicativos de mensagens
ou colaboração em tempo real.
Além da sincronização em tempo real, o Firestore também oferece suporte
offline para dispositivos móveis e web. Isso implica que os sistemas podem manter
seu funcionamento mesmo na ausência de conectividade com a internet.. Os dados
são armazenados localmente no dispositivo e, assim que houver conexão
novamente, o Firestore se encarrega de sincronizar as alterações com o servidor.
Isso proporciona uma experiência contínua para os usuários, mesmo em ambientes
com conectividade limitada.
Outra vantagem do Firestore é a sua integração com outros produtos
Firebase e Google Cloud. Por exemplo, ele se integra com o Cloud Functions, que
permite a execução de código em nuvem sem a necessidade de gerenciar
servidores em outros serviços da Google Cloud. Isso proporciona uma
escalabilidade e flexibilidade significativas, permitindo que os desenvolvedores
construam aplicativos mais complexos sem se preocuparem com a infraestrutura
subjacente.
De acordo com a documentação oficial do Google Cloud (2023), o Firestore
oferece vantagens significativas para os desenvolvedores de aplicativos. Ele possui
escalabilidade automática, o que significa que ele pode lidar com cargas de trabalho
crescentes sem que os desenvolvedores precisem se preocupar com a capacidade
do banco de dados. Além disso, o Firestore oferece recursos personalizáveis de
segurança e regras de validação de dados, permitindo que os desenvolvedores
protejam seus dados e garantam a integridade das informações armazenadas.
A integração do Firestore com outros serviços do Firebase e Google Cloud,
como o Cloud Functions e o BigQuery, também é uma grande vantagem. Isso
permite que os desenvolvedores aproveitem a funcionalidade avançada desses
serviços em conjunto com o Firestore, facilitando a construção de aplicativos mais
21

complexos e poderosos. Essa sinergia entre os serviços do Firebase e do Google


Cloud oferece aos desenvolvedores uma ampla gama de recursos para criar
aplicativos responsivos, escaláveis e seguros.
Um dos conceitos mais essenciais para realizar a construção do banco de
dados no Firestore é como ele é estruturado:

● Coleções: As coleções são grupos de documentos no Firestore. Cada coleção


pode conter diversos documentos, e os documentos podem ter estruturas
diferentes.
● Documentos: Os documentos são unidades de armazenamento no Firestore.
Eles contêm pares de chave-valor, onde as chaves representam os campos e
os valores contêm os dados propriamente ditos.
● Campos: Os campos são os dados que você armazena em um documento.
Cada campo possui um nome único e pode conter diversos tipos de dados,
como strings, números, datas, arrays e até mesmo subcoleções.

O Firestore segue um modelo de estrutura hierárquica para armazenar dados.


Isso envolve a organização de dados em coleções e subcoleções, permitindo a
criação de relacionamentos complexos e estruturas de dados flexíveis.
22

6 PROPOSTA DE SOLUÇÃO

O projeto consiste na criação de um sistema com o objetivo de auxiliar o


campus na gestão de informações sobre a quantidade de alunos que irão almoçar
diariamente, visando reduzir o desperdício de alimentos no Instituto. Foi decidido
desenvolver um sistema para dispositivos móveis e web, com ênfase na
acessibilidade proporcionada por essas plataformas, buscando facilitar a utilização
tanto por parte dos funcionários quanto dos alunos.
O login será realizado por meio de um código, também conhecido como
prontuário, utilizado tanto pelos profissionais da instituição quanto pelos alunos.
Os funcionários poderão realizar alterações, adicionar e editar os cardápios
dos dias futuros, além de claro, ter acesso às quantidades de alunos inscritos para
os diversos dias de almoço no campus.
Para os alunos, o sistema exibirá as listas representando os dias e seus
respectivos cardápios, permitindo que confirmem se irão almoçar em determinado
dia até às 07:30 da manhã do dia escolhido. Após esse horário, não será possível
alterar a decisão.
É importante ressaltar que o sistema requer conexão com a internet para
funcionar corretamente, não sendo viável utilizá-lo em modo offline. A conectividade
com a internet é necessária para permitir que os alunos adicionem os dias em que
irão se alimentar e para que os funcionários realizem modificações nos dados
semanais, garantindo a atualização e sincronização adequada das informações.

Figura 3 - Arquitetura da Solução


Fonte: Autores
23

7 PROJETO

7.1 TOPOLOGIA DO SISTEMA

A partir do estudo dos requisitos, propõe-se a seguinte topologia para o


software:

Figura 4 - Topologia do Sistema


Fonte: Autores

O sistema, que será desenvolvido utilizando o framework Flutter, será gerado


tanto para Android quanto para iOS, para que se tenha grande acessibilidade por
parte de todos. Além disso, também será disponibilizada uma versão web, mantendo
o mesmo design da versão mobile. O sistema será o mesmo tanto para alunos
quanto para funcionários. Os controles, acessos e permissões serão gerenciados
internamente de maneira lógica, utilizando o sistema de usuários oferecido pelo
Firebase.
Quando um servidor inserir uma nova informação ou editar uma já existente
no sistema, será gerada uma alteração que será enviada via internet para o
Firebase. Dessa forma, os dados armazenados serão atualizados conforme o novo
estado. Da mesma forma, quando o servidor desejar obter as informações
24

existentes, o sistema irá se comunicar com o Firebase através da internet para


buscar a informação mais atualizada e exibi-la na tela.
O processo é semelhante para os estudantes. Quando eles selecionarem
suas escolhas, como os dias que irão comer, por exemplo, essas escolhas serão
enviadas ao Firebase pela internet e ficarão armazenadas lá.

7.2 ESTRUTURA DO BANCO DE DADOS

Neste capítulo, será explorado em detalhes a estrutura do banco de dados do


sistema no Firestore.

7.2.1 Organização dos Dados

Os dados foram estruturados da seguinte maneira para este sistema:

● Coleção "studentes": Contém documentos representando os estudantes da


escola.
○ Campo: registration (prontuário do aluno).
● Coleção "employees": Contém documentos representando os funcionários da
instituição.
○ Campo: registration (prontuário do funcionário).
● Coleção "menus": Contém documentos representando os cardápios
semanais.
○ Campos:
■ start_of_the_week (dia que começa a semana).
■ end_of_the_weel (dia que termina a semana).
■ menu_days (lista contendo mapas que representam os
cardápios diários):
● Cada mapa contém os seguintes campos:
○ date: Data da refeição.
○ fruit: Fruta do cardápio.
○ main_course: Prato principal do cardápio.
○ salad: Salada do cardápio.
25

○ students: Quantidade de estudantes prevista para


a refeição.

7.3 REQUISITOS

A seguir, são apresentados os requisitos levantados para o desenvolvimento


da solução do projeto nas seções 6.2.1 e 6.2.2.

7.3.1 Requisitos Funcionais

Na Tabela 1 a seguir, são apresentadas as descrições dos requisitos


funcionais, que conforme definido por Sommerville (2011), englobam os serviços a
serem fornecidos pelo sistema, as respostas esperadas diante de entradas
específicas e o comportamento esperado em situações determinadas.

Tabela 1 – Requisitos Funcionais


Fonte: Autores.

ID Requisito
RF-01 Cadastro de semanas, conforme nível do usuário
RF-02 Edição dos cardápios das semanas, conforme nível do usuário
RF-03 Remoção de semanas, conforme nível do usuário
RF-04 Seleção dos dias que irão comer, para estudantes
RF-05 Visualização dos cardápios, para estudantes e funcionários
RF-06 Visualização das quantidades dos alunos que irão comer em cada dia, para funcionários
RF-07 Autenticação dos usuários

7.3.2 Requisitos Não Funcionais

Na tabela 2 a seguir estão presentes as descrições dos requisitos não


funcionais, que conforme mencionado por Sommerville (2011), englobam as
restrições aplicadas aos serviços ou funções oferecidos pelo sistema. Essas
restrições podem envolver aspectos temporais, restrições durante o processo de
desenvolvimento e conformidade com normas específicas.
26

Tabela 2 – Requisitos Não Funcionais


Fonte: Autores.

ID Requisito
RNF-01 Trafegar os dados de modo criptografado
RNF-02 Ser fácil de usar
RNF-03 Fornecer uma experiência fluida de uso
RNF-04 Funcionar nas plataformas Android, iOS e WEB

7.4 CASOS DE USO

Nesta seção, apresentamos os casos de uso identificados para atender à


solução proposta. O diagrama de casos de uso, representado na Figura 5, oferece
uma visão geral dos diferentes casos de uso e suas interações.

Figura 5 - Casos de Uso


Fonte: Autores.

A adição de estudantes e funcionários será realizada diretamente no banco


de dados por meio de uma equipe técnica especializada. Portanto, essas ações não
27

estão incluídas nos casos de uso do sistema, uma vez que serão executadas
separadamente, garantindo a integridade e precisão dos dados no banco de dados.
A seguir, serão apresentados os casos de uso de forma detalhada, por meio
de tabelas explicativas:

Quadro 1 - Caso de Uso 01 - Acessar o Sistema


Fonte: Autores.

Caso de Uso 01 - Acessar o Sistema


Requisitos
Atendidos RF-07
Atores Estudante ou Servidor
Estudante ou Servidor com o prontuário já cadastrado no banco de dados. Dispositivo
Pré-condição
com acesso a Internet.
a) Usuário acessa tela de login.
Cenário b) Usuário preenche o prontuário.
Principal c) Usuário manda entrar no sistema.
d) Sistema direciona o usuário para sua tela principal.
a) (c) Usuário manda entrar no sistema mas informou ao mesmo que prontuário está
Cenários incorreto ou que não foi cadastrado.
Alternativos - Sistema exibe mensagem de erro, solicitando revisão
das informações inseridas.
Usuário possibilitado de acessar funções específicas no
Pós-condição
sistema.

Quadro 2 - Caso de Uso 02 - Adicionar Semana


Fonte: Autores.

Caso de Uso 02 - Adicionar Semana


Requisitos
Atendidos RF-01
Atores Servidor
Pré-condição Servidor já logado no sistema.
a) Servidor acessa a tela inicial.
b) Servidor clica nos três pontinhos na área superior direita da tela para que seja aberto
um menu.
Cenário
c) Servidor clica na opção "Adicionar Semana" e aparece um pop-up perguntando se ele
Principal
tem certeza.
d) Servidor clica que "Sim".
e) Semana é adicionada com sucesso.
Cenários a) (d) Servidor clica na opção "Não".
Alternativos - A semana não é adicionada.

Pós-condição
Semana disponível para ser visualizada por estudantes e por funcionários.
28

Quadro 3 - Caso de Uso 3 - Editar Menu do Dia


Fonte: Autores.

Caso de Uso 03 - Editar Menu do Dia


Requisitos
Atendidos RF-02
Atores Servidor
Pré-condição Servidor já logado no sistema.
a) Servidor acessa a tela inicial.
b) Servidor clica no ícone de lápis no canto esquerdo de cada dia da semana.
Cenário c) Servidor digita o que deseja nos campos de "Prato Principal", "Salada" e "Fruta"
Principal respectivamente.
d) Servidor clica na opção confirmar.
e) Menu do dia é alterado com sucesso.
Cenários a) (d) Servidor clica na opção "Cancelar".
Alternativos - Menu do dia não é alterado.
Pós-condição Menu do dia disponível para ser visualizado por estudantes e funcionários.

Quadro 4 - Caso de Uso 4 - Selecionar Dias que Irá Comer


Fonte: Autores.

Caso de Uso 04 - Selecionar Dias que Irá Comer


Requisitos
Atendidos RF-04
Atores Estudante
Pré-condição Estudante já logado no sistema.
a) Estudante acessa a tela inicial.
Cenário
b) Estudante clicar no checkbox no canto esquerdo de cada dia da semana.
Principal
c) O estudante é adicionado com sucesso a esse dia.
Cenários a) (b) Estudante já inscrito na lista do dia dos que irão comer.
Alternativos - Estudante é removido da lista do respectivo dia.
Pós-condição A quantidade de alunos que irão comer é aumentada.
29

Quadro 5 - Casos de Uso 5 - Apagar Semana


Fonte: Autores.

Caso de Uso 05 - Excluir Semana


Requisitos
Atendidos RF-03
Atores Servidor
Pré-condição Servidor já logado no sistema.

a) Servidor acessa a tela de deletar semanas


Cenário b) O servidor seleciona a semana que será apagada.
Principal c) Servidor clica na opção confirmar e aparece um pop-up perguntando se ele tem certeza.
d) Servidor clica que "Sim".
e) Semana é apagada com sucesso.
a) (b) Servidor seleciona mais de uma semana.
Cenários - Todas as semanas selecionadas são apagadas.
Alternativos b) (c) Servidor clica na opção "Cancelar".
- A semana não é apagada.
Pós-condição Semana removida da visualização de todos.

Quadro 6 - Casos de Uso 6 - Visualizar Quantidade de Alunos que Irão Comer


Fonte: Autores.

Caso de Uso 06 - Visualizar Quantidade de Alunos que Irão Comer


Requisitos
Atendidos RF-06
Atores Servidor
Pré-condição Servidor já logado no sistema.
a) Servidor acessa a tela inicial.
Cenário b) Servidor seleciona dia da semana que deseja saber a quantidade.
Principal c) Servidor olha o campo “Alunos” que indica a quantidade de alunos que marcaram que
irão comer.
Cenários
Alternativos Nenhum.
Pós-condição Quantidade de alunos é repassada para a cozinha.
30

Quadro 7 - Casos de Uso 7 - Visualizar Cardápios da Semana


Fonte: Autores.

Caso de Uso 07 - Visualizar Cardápios da Semana


Requisitos
Atendidos RF-05
Atores Servidor e estudante.
Pré-condição Servidor e estudante já logado no sistema.
Cenário a) Usuário acessa a tela inicial.
Principal b) Cardápios da semana são carregados.
a) (b) A semana não foi encontrada.
Cenários
- A semana em questão ainda não foi adicionada ou foi deletada por algum servidor.
Alternativos

Pós-condição Semana visualizada com sucesso.

7.5 DIAGRAMAS DE ATIVIDADE

Apresentados nestes diagramas de atividade desenvolvidos para modelar e


ilustrar o fluxo de atividades dentro do sistema de gerenciamento de refeições
proposto. Os diagramas de atividade desempenham um papel essencial na
visualização das interações e processos que ocorrem em um sistema,
proporcionando uma visão detalhada e intuitiva das etapas envolvidas. Eles são
ferramentas valiosas para a análise e comunicação de como diferentes partes do
sistema funcionam em conjunto.
A Figura 6 ilustra o diagrama de atividade destinado a descrever o processo
de acesso ao sistema.
31

Figura 6 - Acessar o Sistema


Fonte: Autores.

A Figura 7 apresenta o diagrama de atividade referente à etapa de seleção


dos dias em que o estudante irá almoçar.
32

Figura 7 - Selecionar Dia que Irá Almoçar


Fonte: Autores.

A Figura 8 ilustra o diagrama de atividade relacionado à funcionalidade de


edição do cardápio de um dia específico.
33

Figura 8 - Acessar o Sistema


Fonte: Autores.
34

A Figura 9 ilustra o diagrama de atividade relacionado à funcionalidade de


adição de semana.

Figura 9 - Adição de Semana


35

Fonte: Autores.

A Figura 10 ilustra o diagrama de atividade relacionado à funcionalidade de


remoção de semanas.

Figura 10 - Remoção de Semanas


Fonte: Autores.
36

A Figura 11 ilustra o diagrama de atividade relacionado à funcionalidade de


visualizar a quantidade de alunos que irão comer.

Figura 11 - Visualizar a quantidade de alunos que irão comer


Fonte: Autores.
37

A Figura 12 ilustra o diagrama de atividade relacionado à funcionalidade de


visualizar os cardápios diários de cada semana.

Figura 12 - Visualizar os cardápios diários da semana


Fonte: Autores.

7.6 TELAS
38

A seguir, serão apresentadas as representações visuais que foram


desenvolvidas ao longo do projeto, ainda sujeitas a possíveis ajustes de design e
funcionalidades futuras, a critério do campus. As telas, tanto para a versão web
quanto para dispositivos móveis, são idênticas, porém serão exibidas aqui para
demonstrar sua adaptação aos diferentes tamanhos de tela.
Os dados apresentados nas telas da web e nos dispositivos móveis serão
distintos, uma vez que as imagens foram obtidas em semanas diferentes.

7.6.1 Acesso

Cada usuário terá um prontuário exclusivo para efetuar o login e se identificar


na instituição. O prontuário pode ser de um estudante ou de um servidor público,
também conhecido como funcionário. Após inserir corretamente os dados de
autenticação, o usuário pode clicar no botão “Entrar” para realizar a tentativa de
acesso.
As figuras 13 e 14 ilustram a lógica em funcionamento. As telas para
dispositivos móveis e para web apresentam uma caixa de texto para inserir o
prontuário, seguida de dois botões que permitem selecionar a função do usuário. Por
fim, há um botão com o texto “Entrar” que realiza a tentativa de acesso.
Se as informações inseridas estiverem corretas, o usuário será redirecionado
para a tela inicial correspondente ao seu perfil. Caso contrário, como mostrado na
figura 15, um pop-up1 é exibido para alertar que as informações inseridas são
incorretas e solicitar que o usuário tente novamente.

Figura 13 - Tela de acesso no mobile


Fonte: Autores.

1
Os pop-ups são janelas que se abrem no dispositivo do usuário quando ele abre um aplicativo. Eles
podem ser usados para uma variedade de propósitos, incluindo fornecer informações ou instruções
ao usuário, coletar informações do usuário ou promover produtos ou serviços.
39

Figura 14 - Tela de acesso na web


Fonte: Autores.

Figura 15 - Pop-up avisando que o prontuário digitado não foi encontrado


Fonte: Autores
40

7.6.2 Tela Inicial para Estudantes

A tela inicial destinada aos estudantes oferecerá um conjunto reduzido de


funcionalidades em comparação com a tela inicial dos funcionários. Nessa tela, os
estudantes terão a possibilidade de visualizar apenas a semana atual juntamente
com os cardápios dos respectivos dias, permitindo-lhes selecionar os dias nos quais
desejam realizar suas refeições.
As figuras 16 e 17 ilustram as necessidades acima explicadas. Ambas as
telas apresentam a informação da semana em curso, das informações dos
cardápios, que incluem dia e horário, prato principal, salada e fruta. E, se estiver
disponível, aparecerá uma caixa de seleção para que o aluno marque se irá comer
ou não.
No canto superior esquerdo, como mostrado na figura 18, há um menu
pop-up, conhecido popularmente como “três pontinhos”, por meio do qual os
usuários podem acessar a opção para sair da tela inicial e retornar à tela de acesso.
41

Figura 16 - Tela inicial para estudantes no mobile


Fonte: Autores.

Figura 17 - Tela inicial para estudantes na web


Fonte: Autores.

Figura 18 - Pop-up de opções do estudante


42

Fonte: Autores.

7.6.3 Tela Inicial para Funcionários

A tela inicial dos funcionários oferece um amplo conjunto de funcionalidades.


Assim como na tela dos estudantes, ela exibe o cardápio da semana em curso. No
entanto, os funcionários têm a capacidade de navegar entre as semanas,
possibilitando retroceder ou avançar uma semana. Os funcionários também têm
acesso a um botão que direciona para a tela de edição do menu do dia selecionado.
Além disso, os funcionários podem excluir ou adicionar uma semana. Devido
a medidas de segurança, no momento não é possível escolher o intervalo das
semanas adicionadas. Por causa disso, também não haverá uma tela própria para a
adição de semanas. A adição da semana será baseada na última semana disponível
no banco de dados e abrangerá de segunda-feira a sexta-feira.
A lógica explicada acima é vista nas Figuras 19 e 20. Ambas as telas exibem
os cardápios da semana em curso e dois botões com os ícones “<” e “>”
respectivamente, possibilitando retroceder ou avançar uma semana quando
disponível. Diferentemente da opção de selecionar os dias das refeições, os
funcionários terão acesso a um ícone em formato de lápis que direciona para a tela
de edição do menu do dia selecionado.
Além disso, um menu pop-up estará disponível, como visto na Figura 21,
permitindo o retorno à tela de acesso, a navegação para a tela de exclusão de
semanas e a adição de novas semanas.
43

Figura 19 - Tela inicial para funcionários no mobile


Fonte: Autores.

Figura 20 - Tela inicial para funcionários na web


Fonte: Autores.
44

Figura 21 - Pop-up de opções do servidor


Fonte: Autores.

7.6.4 Tela para Edição de Menu

Nesta tela, conforme ilustrado nas figuras 22 e 23, serão disponibilizados três
campos para digitação, permitindo ao servidor inserir as escolhas do prato principal,
da salada e da fruta do dia. Para confirmar as alterações efetuadas, existe um botão
denominado “Salvar”. Antes de efetivamente salvar os dados, será exibido um
pop-up solicitando confirmação, como visto na figura 24, uma vez que as alterações
não podem ser desfeitas após sua concretização. Além disso, há um botão
“Cancelar” e um ícone de retorno, os quais não salvarão as modificações realizadas.
45

Figura 22 - Tela para edição de menu no mobile


Fonte: Autores.

Figura 23 - Tela para edição de menu web


Fonte: Autores.
46

Figura 24 - Pop-up para confirmar a interação


Fonte: Autores.

7.6.5 Tela para Exclusão de Semanas

Na tela de remoção de semanas, vista nas figuras 25 e 26 em diferentes


dispositivos, os detalhes das semanas são apresentados em forma de cards,
correspondendo à quantidade de semanas existentes. Cada card é identificado por
um título indicando o início da semana e um subtítulo que marca o seu término.
Junto a cada card, um checkbox permite selecionar a(s) semana(s) desejada(s) para
remoção. Para efetivar a exclusão, o botão “Apagar Semanas Selecionadas” está
disponível. Caso nenhuma semana seja selecionada, um pop-up surgirá para
informar que não é possível apagar semanas sem a seleção prévia como visto na
Figura 28. No entanto, se semanas forem selecionadas, um pop-up de confirmação
será exibido para garantir que o usuário deseja prosseguir, como visto na Figura 27,
já que a ação é irreversível. Se a decisão for pela exclusão, a(s) semana(s)
47

escolhida(s) será(ão) removida(s), e o usuário será redirecionado de volta à tela


inicial.

Figura 25 - Tela para apagamento de semanas no mobile


Fonte: Autores.

Figura 26 - Tela para apagamento de semanas na web


Fonte: Autores.
48

Figura 27 - Pop-up para confirmar a interação


Fonte: Autores.
49

Figura 28 - Pop-up avisando que nenhuma semana foi selecionada


Fonte: Autores.
50

8 CONCLUSÃO

Diante das etapas executadas neste trabalho de desenvolvimento do sistema,


é possível concluir que foram alcançados resultados na busca por uma solução
abrangente e eficaz para o agendamento de almoço e o combate ao desperdício
alimentar no âmbito do Instituto Federal de São Paulo Campus Boituva.
O levantamento detalhado dos requisitos junto à instituição proporcionou uma
compreensão profunda das necessidades e demandas específicas dos usuários,
delineando os desafios a serem enfrentados. Esse processo incluiu a realização de
reuniões com a administração do instituto e consultas diretas com a equipe da
cozinha da instituição. Adicionalmente, foram realizadas pesquisas junto aos alunos
para obter opiniões em relação à aceitação e viabilidade do sistema proposto.
A análise das tecnologias de desenvolvimento, abrangendo as plataformas
iOS, Android e Web, demonstrou um compromisso em garantir a acessibilidade e a
usabilidade do sistema em diferentes interfaces, pavimentando o caminho para a
criação do sistema. Para isso, conduziu-se uma pesquisa criteriosa sobre as
tecnologias disponíveis para o desenvolvimento multiplataforma, avaliando fatores
como desempenho, flexibilidade, facilidade de manutenção e custo.
A modelagem do software, ancorada nos requisitos levantados, estabeleceu
uma representação estruturada e coerente do sistema, fornecendo uma base sólida
para a fase de implementação. Esta etapa envolveu a criação de uma representação
estruturada do sistema com base nos requisitos identificados. Isso incluiu o uso de
técnicas de modelagem, como diagramas de fluxo, para visualizar a arquitetura e o
funcionamento do sistema de maneira organizada. Essa representação visual atuou
como um "mapa" do sistema, destacando componentes, módulos e interações,
ajudando a identificar desafios de design e a definir uma estrutura coesa para a
implementação.
A fase de implementação, que compreendeu a criação do aplicativo e do
website, foi alinhada com o projeto concebido previamente. Para assegurar a
execução adequada, dedicou-se cinco horas semanais à atividade de
desenvolvimento do sistema, resultando em um total de 85 horas de trabalho até a
conclusão do projeto.
51

O sistema foi testado em ambiente de produção por um dia e passou em


todos os testes de conformidade. O desempenho e o comportamento do sistema
foram plenamente satisfatórios e alinhados com os padrões estabelecidos
anteriormente. Os requisitos principais de desenvolver um sistema de fácil utilização
e compatível com outros dispositivos foram alcançados.
Essa sequência de etapas desempenhou um papel fundamental na
viabilização do alcance do objetivo geral deste projeto, que consistiu na elaboração
de um sistema multiplataforma destinado ao agendamento de refeições no Instituto
Federal de São Paulo Campus Boituva.
Este trabalho não apenas esboçou um caminho promissor para a resolução
de desafios relacionados ao agendamento de almoço e ao combate ao desperdício
alimentar, mas também destacou a importância de abordagens tecnológicas bem
fundamentadas para a construção de protótipos eficientes e adaptados às
necessidades do público-alvo.
52

REFERÊNCIAS

ANDRADE, A. P. O que é Flutter? Disponível em:


https://www.treinaweb.com.br/blog/o-que-e-flutter. Acesso em: 8 abr. 2023.

ARAÚJO, G.; AZEVEDO, R. Implementação de um Sistema de Quiz no Aplicativo


WebLectures. 2019. Disponível em:
https://ic.unicamp.br/~reltech/PFG/2019/PFG-19-01.pdf. Acesso em: 28 mar. 2023.

CESAR, Josiane Tiborski et al. Alimentação Escolar no Brasil e Estados Unidos:


uma revisão integrativa. Ciência & Saúde Coletiva, v. 23, p. 991-1007, 2018.
Disponível em:
https://www.scielo.br/scielo.php?script=sci_arttext&pid=S1413-81232018000300991.
Acesso em: 28 mar. 2023.
FAO; IFAD; UNICEF; WFP; WHO. The State of Food Security and Nutrition in the
World 2022. Repurposing food and agricultural policies to make healthy diets more
affordable. Roma: FAO, 2022. Disponível em: https://doi.org/10.4060/cc0639en.
Acesso em: 31 ago. 2023.

CHENG, F. Build Mobile Apps with Ionic 2 and Firebase: Hybrid Mobile App
Development. [S.l.]: Apress, 2017.

DOCS FLUTTER. FAQ - Flutter. 2023. Disponível em:


https://docs.flutter.dev/resources/faq. Acesso em: 23 mar. 2023.

GOOGLE. Firebase: Cloud Firestore Documentation. Disponível em:


https://firebase.google.com/docs/firestore?hl=pt-br. 2023. Acesso em: 10 abr. 2023.

Google Cloud. Cloud Firestore - Banco de dados NoSQL documental. Disponível


em: https://cloud.google.com/firestore?hl=pt-br. 2023. Acesso em: 10 abr. 2023.

Layouts in Flutter. 2023. Disponível em:


https://docs.flutter.dev/development/ui/layout. Acesso em: 19/04/2023.

MORONEY, L. The Definitive Guide to Firebase: Build Android Apps on Google’s


Mobile Platform. 1. ed. Apress, 2017. ISBN 978-1-4842-2942-2, 978- 1-4842-2943-9.
Disponível em:
http://gen.lib.rus.ec/book/index.php?md5=f2b26319bc8c9aebe626fcd4dbed2868.
Acesso em: 26/04/2023.
GUNDERSEN, C.; SELIGMAN, H. K. Food insecurity and health outcomes.
Economists’ Voice, v. 14, n. 1, artigo 20170004, 2017. Disponível em:
https://doi.org/10.1515/ev-2017-0004. Acesso em: 23 mar. 2023.

PINHEIRO, F. Flutter: O que são widgets e qual sua importância. Disponível em:
https://www.treinaweb.com.br/blog/flutter-o-que-sao-widgets-e-qual-sua-importancia.
Acesso em: 9 abr. 2023.
53

PIKELAIZEN, C.; SPINELLI, M. G. N. Avaliação do desperdício de alimentos na


distribuição do almoço servido para estudantes de um colégio privado em São
Paulo, SP. Revista Univap, [S. l.], v. 19, n. 33, p. 5–12, 2013. DOI:
10.18066/revunivap.v19i33.111. Disponível em:
https://revista.univap.br/index.php/revistaunivap/article/view/111. Acesso em: 23 mar.
2023.

SILVA, W. C. S. DA. Aplicações móveis nativas com react native e firebase: um


estudo de caso. 2018. Disponível em: http://hdl.handle.net/123456789/3498. Acesso
em: 19 de mar de 2023.

SMYTH, N. Firebase Essentials - Android Edition:. CreateSpace Independent


Publishing Platform, 2017. ISBN 9781546660330. Disponível em:
https://books.google.com.br/books?id=9i4tDwAAQBAJ. Acesso em: 26/04/2023.
UNICEF. Relatório da ONU: Números globais de fome subiram para cerca de 828
milhões em 2021. 2022. Disponível em:
https://www.unicef.org/brazil/comunicados-de-imprensa/relatorio-da-onu-numeros-globai
s-de-fome-subiram-para-cerca-de-828-milhoes-em-2021. Acesso em: 23 mar. 2023.

THOMAS, Gaël. O que é o Flutter e por que você deve conhecê-lo. FreeCodeCamp.
2022. Disponível em:
https://www.freecodecamp.org/portuguese/news/o-que-e-o-flutter-e-por-que-voce-de
ve-conhece-lo/. Acesso em: 05 abr. 2023.

TORRENT, Isadora Froes et al. Desperdício de Alimentos no Ambiente Escolar.


Revista Espacios, vol. 39, n. 48, p. 5, 2018. ISSN 0798-1015.

SOMMERVILLE, I. Engenharia de Software. Upper Saddle River, Nova Jersey:


Pearson Prentice Hall, 2011. 544 p. ISBN 978-85-7936-108-1.

Você também pode gostar