Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.
left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Prévia do material em texto

UNIVERSIDADE VIRTUAL DO ESTADO DE SÃO PAULO 
 
 
 
 
 
 
 
 
Bianca Regina Proença Gavazza, 2209794 
Diego Estevam Reis, 2201393 
Everton Jonathan de Andrade Salandini, 2223750 
Fábio Júnior de Camargo, 2206390 
Leonardo Augusto Bello Dias, 2228116 
Luiz Otávio Rodrigues Segato, 2213067 
Marcos Donizete de Moraes, 2206126 
Paulo César Gomes Alves, 2201288 
 
 
 
 
 
Gerador automatizado de kits de cestas básicas para o Sistema de Gestão 
de Doações (SGD) 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Sorocaba e Alumínio - SP 
2024 
 2 
 
 
 
UNIVERSIDADE VIRTUAL DO ESTADO DE SÃO PAULO 
 
 
 
 
 
 
 
 
 
 
 
 
 
Gerador automatizado de kits de cestas básicas para o Sistema de Gestão 
de Doações (SGD) 
 
 
 
 
 
 
 
 
Relatório Técnico-Científico apresentado na 
disciplina de Projeto Integrador para o curso de 
Bacharelado em Tecnologia da Informação, 
Bacharelado em Ciência de Dados e 
Engenharia de Computação da Universidade 
Virtual do Estado de São Paulo (UNIVESP). 
 
 
 
 
 
 
 
 
 
 
 
Sorocaba e Alumínio - SP 
2024 
 3 
 
 
 
ALVES, Paulo César Gomes; CAMARGO, Fabio Junior; DIAS, Leonardo Augusto Bello; 
GAVAZZA, Bianca Regina Proença; MORAES, Marcos Donizete; REIS, Diego Estevam; 
SALANDINI, Everton Jonathan de Andrade; SEGATO, Luiz Otávio Rodrigues. Gerador 
automatizado de kits de cestas básicas para o Sistema de Gestão de Doações (SGD). 033. 
Relatório Técnico-Científico. Bacharelado em Tecnologia da Informação, Bacharelado em 
Ciência de Dados e Engenharia de Computação – Universidade Virtual do Estado de São 
Paulo. Tutor: Simone Lima Azevedo. Polos Sorocaba e Alumínio, 2024. 
 
RESUMO 
Este relatório apresenta o desenvolvimento de um sistema de software para a ONG ASAS, com 
foco na automação da geração de cestas básicas para doações, visando aprimorar o Sistema de 
Gestão de Doações (SGD) criado no Projeto Integrador I (PI-I). A funcionalidade implementada 
automatiza a criação de kits de cestas básicas com itens doados e em estoque, agilizando o 
processo de montagem, garantindo maior precisão e permitindo o acompanhamento em tempo 
real do progresso em relação à meta mensal de distribuição. A metodologia utilizada inclui o 
uso do framework CSS para o desenvolvimento do software, integração de scripts web e API, 
e implementação em nuvem, com controle de versões para garantir rastreabilidade das 
alterações. Os resultados esperados incluem maior eficiência no processo de doação, redução 
de tempo na montagem das cestas básicas, minimização de erros humanos e melhor 
gerenciamento do estoque com atualizações em tempo real. O projeto visa contribuir para a 
solução de problemas sociais por meio de tecnologia, atendendo às necessidades da ONG 
ASAS e reconhecendo a relevância do trabalho realizado pela instituição. 
 
PALAVRAS-CHAVE: Automatização; Cestas básicas; ONG ASAS; Sistema de doações; 
Tecnologia social. 
 
 
 4 
 
 
 
LISTA DE ILUSTRAÇÕES 
 
FIGURA 1 – TELA DE LOGIN E TELA INICIAL EM UM SMARTPHONE .................... 24 
FIGURA 2 – MODO ESCURO E MODO MONOCROMÁTICO EM UM SMARTPHONE 
...................................................................................................................................................25 
FIGURA 3 – MENU LATERAL DO APLICATIVO. ........................................................... 26 
 
 
 
 5 
 
 
 
SUMÁRIO 
1 INTRODUÇÃO ..................................................................................................................... 6 
2 DESENVOLVIMENTO ........................................................................................................ 8 
2.1 Objetivos ............................................................................................................................... 8 
2.2 Justificativa e delimitação do problema ............................................................................... 8 
2.3 Fundamentação teórica ....................................................................................................... 10 
2.3.1 Organização não governamental ASAS .................................................................. 13 
2.3.2 Linguagem PHP ....................................................................................................... 14 
2.3.3 Framework web para desenvolvimento de software ............................................... 14 
2.3.4 Implementação de banco de dados mysql ............................................................... 15 
2.3.5 Integração de scripts web ........................................................................................ 16 
2.3.6 API de login google e cep correios .......................................................................... 17 
2.3.7 Promoção de acessibilidade ..................................................................................... 17 
2.3.8 Implementação em nuvem ....................................................................................... 18 
2.3.9 Docker ..................................................................................................................... 19 
2.3.10 Controle de versões ............................................................................................... 20 
2.4 Metodologia ........................................................................................................................ 20 
2.4.1 Ouvir e Interpretar o Contexto................................................................................. 22 
2.4.2 Criar / Prototipar ...................................................................................................... 22 
2.4.3 Implementar / Testar ................................................................................................ 23 
2.5 Resultados preliminares: solução inicial ............................................................................ 27 
REFERÊNCIAS...................................................................................................................... 31 
 
 
 
 
 6 
 
 
 
1 INTRODUÇÃO 
 
A gestão de doações em organizações não governamentais (ONG) é um tema de grande 
relevância social, especialmente diante do aumento da desigualdade e da necessidade de apoio 
a comunidades vulneráveis. O problema central que este trabalho aborda é a dificuldade de 
automatizar a geração de cestas básicas, enfrentada pela ONG ASAS - Assistência Social de 
Amigos de Sorocaba, que realiza a atividade de doação de cestas básicas a cerca de 30 famílias 
carentes. Atualmente, esse processo de produção é manual e demanda mão de obra voluntária. 
A ideia básica deste estudo é integrar tecnologias digitais, como um banco de dados e 
um framework web, para aprimorar o Sistema de Gestão de Doações (SGD) já existente, 
desenvolvido para a entidade durante o Projeto Integrador 1, no primeiro semestre deste ano. 
Nessa versão, a aplicação permitia o cadastro das famílias participantes no programa de doação 
de mantimentos da assistência social, viabilizava o cadastro de produtos alimentícios para o 
controle e gestão de estoques, e digitalizava os dados relacionados ao programa de doações de 
mantimentos, visando otimizar e organizar todo o processo durante os dias de atendimento às 
famílias participantes do programa. 
Nesse contexto, a proposta deste Projeto Integrador 2 é desenvolver um sistema de 
software que permita a criação automática de kits de cestas básicas, otimizando o trabalho da 
ONG e assegurando uma distribuição mais eficiente dos recursos disponíveis. Ao focar na 
automação da montagem de cestas básicas, buscamos não apenas resolver o problema da 
ineficiência, mas também oferecer uma solução prática e acessível para instituição, que 
frequentemente lida com recursos limitados e alta demanda. 
Outra melhoria produzida neste estudo é a implantação de APIs para login pelo Google 
e buscade CEP nos Correios, conferindo celeridade ao cadastramento de usuários e localização 
de endereços. Ainda, em atendimento às exigências deste PI 2, são incorporados: recursos de 
acessibilidade, inclusão de script web, uso de linguagem de programação PHP, com emprego 
de Framework para CSS Tailwind, implementação do banco de dados MySQL, recursos 
computacionais em nuvem da Amazon Web Service (AWS) e um controle de versão pela 
plataforma Git e GitHub. 
Esse tema se insere dentro da tecnologia da informação, onde a inovação pode 
desempenhar um papel crucial na maximização do impacto social. As motivações para a 
escolha deste tema incluem a vontade de contribuir para melhorias na gestão de doações e a 
 7 
 
 
 
busca por soluções que promovam a equidade social. Assim, o objeto deste trabalho é o estudo 
e desenvolvimento de um sistema que possibilite a automação na geração de cestas básicas, 
contribuindo para uma gestão mais eficiente e eficaz das doações. 
No âmbito do conteúdo acadêmico, disciplinas ofertadas pela UNIVESP no decorrer 
dos cursos de computação embasaram e forneceram referenciais teóricos que foram revisitados 
neste estudo, entre as principais estão: Algoritmos e Programação de Computadores I e II, 
Fundamentos de Internet e Web, Estruturas de dados, Programação Orientada a Objetos, Banco 
de dados, Desenvolvimento web, Engenharia de Software, Segurança da Informação, Formação 
Profissional em Computação e Interface Humano-Computador. 
 8 
 
 
 
2 DESENVOLVIMENTO 
 
2.1 OBJETIVOS 
O presente trabalho apresenta como objetivo geral aprimorar o sistema SGD 
desenvolvido em PI 1, implementando uma nova funcionalidade de geração automática de kits 
de cestas básicas para doação, com base nos itens disponíveis em estoque, executando 
atualização de inventário. 
No intuito de alcançar esse objetivo, seguem as etapas necessárias e que constituem os 
objetivos específicos deste estudo: 
• Identificar a solução mais próxima possível para a resolução do problema; 
• Levantar os requisitos necessários para a implementação do sistema; 
• Pesquisar as linguagens e frameworks mais adequados para construção do sistema; 
• Pesquisar e implementar um banco de dados para o sistema para persistir dados do 
sistema; 
• Pesquisar e implementar uma API que incorpore funcionalidade ao sistema; 
• Pesquisar e implementar recursos de acessibilidade convenientes aos usuários do 
sistema; 
• Desenvolver um protótipo da aplicação com base nos requisitos; 
• Testar a aplicação junto ao cliente e coletar suas sugestões de mudanças ou melhorias; 
• Analisar os pedidos de alteração ou melhorias do cliente; 
• Implementar as alterações sugeridas; 
• Entregar o protótipo final ao cliente. 
 
2.2 JUSTIFICATIVA E DELIMITAÇÃO DO PROBLEMA 
 
O problema central que este projeto busca resolver é: Como automatizar a geração de 
unidades de cestas básicas por meio de um sistema de software para doações da ONG ASAS - 
Assistência Social de Amigos de Sorocaba? Essa questão é de extrema relevância, visto que a 
 9 
 
 
 
eficiência na gestão de doações pode impactar diretamente a qualidade e a quantidade de 
recursos disponíveis para comunidades carentes. 
A justificativa para a proposta está embasada na relevância social da iniciativa. Com o 
aumento da desigualdade e da demanda por alimentos, a automação no processo de doação é 
essencial para garantir que a ONG possa atender às necessidades de maneira rápida e 
organizada. Além disso, a pesquisa contribui para o campo acadêmico ao explorar a interseção 
entre tecnologia e ação social, proporcionando insights valiosos para futuros desenvolvimentos 
na área. 
As contribuições deste projeto se estendem ao contexto local, onde muitas ONGs 
enfrentam dificuldades operacionais que podem ser mitigadas com soluções tecnológicas 
adequadas. A implementação desse sistema não apenas melhora a eficiência interna, mas 
também potencializa o impacto social das ações realizadas, beneficiando diretamente as 
comunidades atendidas. 
A migração da codificação do Projeto Integrador I para a linguagem PHP no Projeto 
Integrador II se justifica por diversos fatores técnicos e de mercado. Primeiramente, o PHP é 
amplamente reconhecido por sua simplicidade e curva de aprendizado rápida, o que acelera o 
desenvolvimento e facilita a manutenção de código. Além disso, sua flexibilidade permite 
integrações eficientes com diversos bancos de dados e outras tecnologias web, uma 
característica essencial para atender demandas futuras dos clientes. 
Grandes empresas, como Facebook e Wikipedia, utilizam PHP em suas aplicações 
devido à sua robustez, escalabilidade e ampla comunidade de desenvolvedores, que garante 
suporte constante e bibliotecas atualizadas. Mesmo com a introdução de novas linguagens, 
muitas organizações mantêm o PHP em suas plataformas porque ele proporciona alta 
performance em ambientes de servidor e permite uma fácil adaptação de novos recursos sem 
grandes reestruturações de código. Dessa forma, o uso de PHP no Projeto Integrador II trará 
benefícios duradouros e facilitará aprimoramentos futuros, assegurando a longevidade e 
eficiência da aplicação desenvolvida. 
Outro ponto importante a se considerar é o custo de manutenção. Servidores que rodam 
aplicações em Python tendem a ser mais onerosos, tanto em termos de infraestrutura quanto de 
gerenciamento, enquanto o PHP, amplamente utilizado em servidores web convencionais, 
oferece uma solução mais barata e acessível. Os planos de hospedagem web, "na grande maioria 
dos casos, são mais baratos e sem nenhum custo extra para a utilização do MySQL em conjunto 
com o PHP" (SILVA, 2024). 
 10 
 
 
 
Para uma ONG, cujo orçamento muitas vezes é restrito, essa diferença de custo é 
significativa, tornando o PHP uma escolha mais viável a longo prazo, mesmo que a migração 
exija um esforço inicial maior. Dessa forma, o uso de PHP no Projeto Integrador II não só trará 
benefícios duradouros e facilitará aprimoramentos futuros, mas também garantirá a 
sustentabilidade financeira da aplicação. 
 
2.3 FUNDAMENTAÇÃO TEÓRICA 
O emprego de tecnologias da informação nos dias de hoje é imprescindível e benéfico 
para o desempenho das atividades cotidianas. Assim afirma Sommerville (2018): “O mundo 
moderno não funciona sem software”, considerando o desenvolvimento de sistemas 
informatizados essenciais para o funcionamento de governos, da sociedade e de empresas e 
instituições. Indo ao encontro desse cenário que se propõe a construção de uma aplicação para 
suporte às ações da ONG ASAS. 
 
A infraestrutura e os serviços públicos nacionais são controlados por sistemas 
computacionais e a maioria dos produtos elétricos inclui um computador e um 
software que o controle. A produção e distribuição industriais são completamente 
informatizadas, assim como sistema financeiro. (SOMMERVILLE, 2018, p. 3) 
 
No desenvolvimento de sistemas de software, empregam-se um conjunto de 
metodologias e ferramentas computacionais que auxiliam a implementação, testes e 
implantação dessas aplicações, conferindo celeridade, corretude e segurança. “Em geral, os 
engenheiros de software adotam uma abordagem sistemática e organizada para seu trabalho, 
pois essa costuma ser a maneira mais eficiente de produzir software de alta qualidade.” 
(SOMMERVILLE, 2018, p. 8) 
 
Muitas pessoas acham que software é apenas mais um sinônimo para programa de 
computador. No entanto, quando falamos sobre engenharia de software, não estamos 
falando apenas dos programas em si, mas também de toda a documentação, 
bibliotecas, websites de apoio e dados de configuração associados – elementos 
necessários para que esses programas sejam úteis. (SOMMERVILLE, 2018, p. 6) 
 
 11 
 
 
 
Para a construção da solução proposta, foram aproveitadas, entre os recursos 
disponíveis no mercado nos dias de hoje, as seguintes tecnologias descritase fundamentadas a 
seguir: Inicialmente, após a definição da comunidade externa, foi dado início aos passos de 
análise do problema, de definição de objetivos e de metodologia para o desenvolvimento da 
pesquisa. Na sequência, realizou-se o levantamento bibliográfico e a organização do trabalho 
científico, juntamente ao desenvolvimento do plano de ação, de acordo com as orientações desta 
última. 
O primeiro passo para o desenvolvimento do projeto foi a definição da comunidade 
externa envolvida, o que nos permitiu compreender melhor o contexto e os desafios enfrentados 
por essa comunidade. A partir daí, iniciamos a análise detalhada do problema proposto, com o 
objetivo de identificar os pontos críticos e as possíveis soluções. Essa fase inicial de análise foi 
fundamental para que pudéssemos traçar objetivos claros e desenvolver uma metodologia 
adequada para conduzir a pesquisa. 
Com a metodologia definida, passamos para a etapa de levantamento bibliográfico, uma 
parte crucial do processo. Sabíamos que seria necessário buscar referências sólidas e bem 
fundamentadas nas disciplinas que cursamos até o momento. Por isso, utilizamos bibliografias 
e materiais estudados ao longo dos cursos de Bacharelado em Tecnologia da Informação, 
Bacharelado em Ciência de Dados e Bacharelado em Engenharia da Computação. As teorias, 
ferramentas e métodos abordados nessas disciplinas nos forneceram a base necessária para 
compreender o problema com profundidade e nos guiar na construção de soluções viáveis. 
O levantamento bibliográfico foi organizado de maneira a garantir uma visão 
abrangente e integrada das diversas perspectivas oferecidas por essas áreas do conhecimento. 
Além disso, esse processo nos permitiu consolidar o desenvolvimento do plano de ação, sempre 
alinhado às orientações acadêmicas e metodológicas. Com isso, conseguimos estruturar o 
trabalho científico de forma coerente, preparando-nos para a próxima etapa do projeto. Essa 
abordagem nos deu as ferramentas teóricas e práticas necessárias para aplicar o conhecimento 
acadêmico na resolução de problemas reais, sempre mantendo o foco nas demandas e 
expectativas da comunidade externa envolvida. 
A metodologia Design Thinking, estudada na disciplina Gestão da Inovação e 
Desenvolvimento de Produtos, desempenhou um papel central no desenvolvimento de nosso 
projeto, sendo escolhida por sua abordagem centrada no ser humano e sua capacidade de 
promover soluções inovadoras. Essa metodologia nos permitiu entender profundamente as 
 12 
 
 
 
necessidades da comunidade externa por meio de um processo de imersão e empatia, garantindo 
que as soluções propostas estivessem alinhadas com as demandas reais. 
Outra vantagem significativa dessa abordagem é o seu foco em prototipagem rápida e 
experimentação, permitindo que testássemos ideias de maneira ágil e fizéssemos ajustes 
conforme necessário. Isso garantiu um desenvolvimento iterativo, onde os feedbacks da 
comunidade externa foram incorporados em cada fase do projeto, resultando em soluções mais 
eficazes e adaptadas ao contexto. 
Na disciplina de Pensamento Computacional, foram abordadas diversas técnicas de 
abstração, decomposição e resolução de problemas, fundamentais para a análise e 
desenvolvimento de soluções eficientes. A abstração consiste em simplificar um problema 
complexo, isolando suas partes essenciais e ignorando detalhes irrelevantes. Um exemplo é a 
criação de modelos conceituais, como diagramas de classes na programação orientada a objetos, 
que representam a estrutura do problema sem se preocupar com a implementação. 
A decomposição, por sua vez, envolve dividir um problema maior em subproblemas 
menores e mais gerenciáveis. Técnicas como o divide and conquer (dividir e conquistar), muito 
usada em algoritmos como o quicksort, exemplificam essa abordagem, facilitando a solução de 
problemas por partes. 
Finalmente, a resolução de problemas é a etapa em que aplicamos métodos lógicos ou 
computacionais para encontrar a solução mais eficaz. Métodos como a busca heurística, que 
otimiza a tomada de decisões em situações complexas, são amplamente utilizados em 
inteligência artificial e nos permitem resolver problemas de maneira eficiente e prática. Essas 
técnicas juntas formam a base para o desenvolvimento de soluções inteligentes e bem 
estruturadas. 
Utilizamos também com bastante frequência os conceitos aprendidos nas disciplinas 
Algoritmo e Programação de Computadores I e II para a construção do código, as ferramentas 
para desenvolver de forma mais rápida e também como controlar mais efetivamente as versões 
através do controle de versionamento com o Git e o repositório GitHub. 
Os princípios de Engenharia de Software foram essenciais no desenvolvimento do 
projeto, pois permitiram a aplicação de metodologias e práticas que garantiram a organização 
e eficiência durante o ciclo de vida do software. Através do uso de processos estruturados, como 
a análise de requisitos, design de software e testes, conseguimos planejar e executar as fases de 
desenvolvimento de forma sistemática, o que resultou em um software robusto e adaptado às 
necessidades da ONG. 
 13 
 
 
 
A disciplina de Banco de Dados foi crucial para a construção da camada de persistência 
do sistema, permitindo o armazenamento e o gerenciamento eficiente das informações da ONG. 
Com o conhecimento sobre modelagem de dados, normalização e consultas SQL, foi possível 
projetar um banco de dados relacional que garantiu a integridade e segurança dos dados, além 
de facilitar o acesso rápido e eficiente às informações necessárias para o bom funcionamento 
do software. 
 
 
2.3.1 ONGANIZAÇÃO NÃO GOVERNAMENTAL ASAS 
 
A Organização Não Governamental ASAS - Assistência Social Amigos de Sorocaba foi 
fundada em julho de 2012 por Rita Lima e Samantha Sodré, com a finalidade de oferecer 
assistência social a pessoas em situação de vulnerabilidade social na cidade de Sorocaba, São 
Paulo. Desde sua criação, a ASAS tem se dedicado a promover o desenvolvimento humano e a 
inclusão social, buscando orientar e capacitar indivíduos por meio de atividades que visam 
ampliar horizontes e contribuir para um futuro mais digno e promissor. 
De acordo com Baird (2018, p. 10), as Organizações Não Governamentais (ONGs) são 
entidades que operam de maneira independente do governo, dedicando-se a causas sociais, 
culturais e ambientais, desempenhando um papel de suporte para impulsionar a promoção do 
bem-estar e na transformação social. Essa definição ressalta o propósito da instituição ASAS 
para fortalecer a rede de assistência social em Sorocaba, de maneira a contribuindo para a 
melhoria da qualidade de vida de seus beneficiários. 
A missão da ASAS consiste em resgatar a autoestima e o autoconhecimento dos 
beneficiários, proporcionando bem-estar emocional e demonstrando que cada pessoa é capaz 
de superar as adversidades que a vida impõe. Com uma visão ambiciosa, a ONG aspira a tornar-
se uma referência em trabalho voluntário e em projetos transformacionais que impactem 
positivamente a comunidade. 
Entre as diversas atividades desenvolvidas, destacam-se as oficinas de alfabetização, 
cursos profissionalizantes nas áreas de corte e costura, artesanato e cabeleireiro, além de ações 
voltadas à recreação infantil e aulas de música. A ONG também realiza a distribuição de cestas 
básicas, atendendo atualmente aproximadamente 30 famílias cadastradas, oferecendo não 
apenas assistência material, mas também apoio emocional e social. Através de suas iniciativas, 
a ASAS busca não apenas aliviar a condição de vulnerabilidade das famílias assistidas, mas 
 14 
 
 
 
também emponderá-las, estimulando a autonomia e a construção de um futuro mais 
esperançoso. 
 
 
2.3.2 LINGUAGEM PHP 
 
Para ser o motor funcional deste projeto foi escolhida a linguagem de programação PHP 
(sigla para Hypertext Preprocessor).Esta linguagem é amplamente utilizada no 
desenvolvimento web por ser uma linguagem de fácil aprendizado e altamente flexível. Sua 
principal vantagem é a capacidade de se integrar com diversas tecnologias de front-end, como 
HTML e JavaScript, permitindo a criação de sites dinâmicos e interativos. Além do mais, PHP 
oferece suporte a diversos bancos de dados, como MySQL, o que facilita o gerenciamento de 
grandes volumes de dados. Outro diferencial é a comunidade ativa e as bibliotecas disponíveis, 
que aceleram o processo de desenvolvimento. 
A linguagem PHP também se destaca por sua escalabilidade, sendo ideal para projetos 
de pequeno a grande porte. Como destaca Luke Welling em PHP and MySQL Web 
Development (2008), "a simplicidade e a flexibilidade do PHP o tornam ideal para qualquer 
tipo de projeto web, de blogs a grandes sistemas de comércio eletrônico". Isso consolida o PHP 
como uma escolha robusta e versátil para o desenvolvimento web e para os propósitos deste 
projeto (uma aplicação web interativa). 
 
 
2.3.3 FRAMEWORK WEB PARA DESENVOLVIMENTO DE SOFTWARE 
 
A utilização do Framework Tailwind CSS de código aberto foi escolhida por trazer 
benefícios para a implementação das aplicações. Entre esses benefícios, como indica Silva 
(2020, p. 107), estão: "baixo custo (ou custo nenhum) para a aquisição de licenças e 
compartilhamento de conhecimento entre membros de comunidades empenhadas em estudar e 
conhecer a forma como essas ferramentas funcionam." 
Ferramenta criada em 2017, o Tailwind se destaca por priorizar a facilidade de 
customização, possibilitando a estilização de páginas por meio de classes CSS utilitárias. Dessa 
forma, permite a criação de layouts usando uma estrutura pronta de CSS, otimizando tempo de 
criação de uma interface responsiva para usuários (User Interface - UI), sem necessidade de 
operar manualmente. 
 15 
 
 
 
O uso desse framework apresenta algumas vantagens para o projeto, conforme encontra-
se em Rappin (2021): facilidades para prototipar, iterar e personalizar a exibição, conjunto de 
prefixos para especificação de comportamento em casos particulares e requer menos código 
CSS para ser inserido, provendo a maior parte do design por composição dos utilitários 
Tailwind. 
 
This means you spend less time naming CSS and managing global CSS, allowing you 
to spend more effort on the actual display of your site. Tailwind makes it easy to make 
incremental changes, see the results, and understand the scope of your changes, which 
makes it especially useful when prototyping a new site. (RAPPIN, 2021, p. x) 
 
Segue tradução livre da citação exposta acima: Isso significa que você gasta menos 
tempo nomeando CSS e gerenciando CSS global, permitindo a você gastar mais esforço na 
exibição real do seu site. O Tailwind torna fácil fazer mudanças incrementais, ver os resultados 
e entender o escopo de suas alterações, o que o torna especialmente útil ao prototipar um novo 
site. 
 
2.3.4 IMPLEMENTAÇÃO DE BANCO DE DADOS MYSQL 
 
Como banco de dados a ser implementado neste estudo, elegeu-se o MySQL, que é um 
sistema de gerenciamento de banco de dados (SGBD), do tipo relacional, com interface baseada 
em linguagem SQL (Structure Query Language – Linguagem de Consulta Estruturada). "O 
SGBD é um sistema de software de uso geral que facilita o processo de definição, construção, 
manipulação e compartilhamento de banco de dados entre diversos usuários e aplicações." 
(ELMASRI, 2018, p. 5) 
Conforme argumenta Manzano (2011, p. 20), é possível obter benefícios com a 
utilização deste sistema pois trata-se de "um dos sistemas de gerenciamento de bancos de dados 
mais populares e usados no mundo. É rápido, multitarefa e multiusuário." O MySQL oferece 
ainda compatibilidade com grande parte das principais plataformas de computador, como 
Linux, macOS, Microsoft Windows e Ubuntu. 
Entre as vantagens consideradas para seu emprego neste estudo, destacam-se: 
• Custo: disponibilizado gratuitamente para uso, não incidindo em gastos com licenças 
de software, sendo acessível a pequenos projetos. 
 16 
 
 
 
• Facilidade de integração: compatibilidade com muitas linguagens de programação e 
pode ser facilmente integrado com outras tecnologias e aplicativos, inclusive PHP. 
• Escalabilidade: consegue lidar com grandes quantidades de dados, apresentando opção 
de escalabilidade para o crescimento de bancos de dados ao longo do tempo. 
• Segurança: apresenta recursos de segurança como autenticação, autorização e 
criptografia de dados. 
• Suporte à comunidade: sendo uma tecnologia de código aberto, com o suporte de uma 
comunidade ativa de usuários que auxilia com ferramentas e recursos úteis na solução 
de problemas específicos. 
 
O MySQL a cada dia torna-se um produto apreciado por várias empresas, entidades e 
pessoas, pois possui um servidor confiável, rápido e de fácil utilização, que pode ser 
utilizado com grandes bancos de dados, considerando inclusive aplicações voltadas 
para a Internet. Aliás, parte de seu sucesso é devido à fácil integração com a linguagem 
de script PHP. (MANZANO, 2011, p. 22) 
 
 
2.3.5 INTEGRAÇÃO DE SCRIPTS WEB 
 
A integração de scripts web é uma das formas mais eficientes na criação de aplicações 
web. Os scripts são essenciais para a criação de aplicações dinâmicas e interativas pois são 
responsáveis por realizar diferentes funções no desenvolvimento de uma aplicação. 
As principais linguagens de programação para web que são mais utilizadas atualmente, 
como PHP, JavaScript, Pythton, entre outras, possuem a funcionalidade de incorporar scripts 
em seus códigos. Segundo Fisher (2000), "PHP é uma linguagem de programação para criação 
de sites WEB dinâmicos sever-side scripts, ou seja, seu código é executado no servidor, 
retornando ao cliente uma página criada em tempo real." 
A integração também permite conectar e combinar diferentes scripts e linguagens de 
programação em uma mesma aplicação, aproveitando-se assim o que cada uma delas tem de 
melhor a oferecer para a solução do problema pois permite que as linguagens trabalhem juntas 
de forma harmoniosa. Por exemplo, um script PHP é executado no servidor processando os 
dados recebidos de um formulário e em seguida outro script será executado no lado do cliente 
(frontend) atualizando a página sem necessidade de recarregá-la. 
 
 17 
 
 
 
 2.3.6 API DE LOGIN GOOGLE E CEP CORREIOS 
 
A API de Login com Google permite que os desenvolvedores integrem o sistema de 
autenticação do Google em seus aplicativos e sites. Ao usar esta API, os usuários podem fazer 
login em um serviço usando suas credenciais de conta do Google, facilitando o processo de 
autenticação e eliminando a necessidade de criar contas separadas. 
A API de consulta de CEP dos Correios permite buscar informações sobre endereços 
no Brasil a partir de um CEP. Essa API é útil para automatizar a coleta de informações de 
endereço nos processos de cadastro e envio de produtos em e-commerces ou sistemas de 
gerenciamento de logística. 
 
A API pode ser conceituada também como um conjunto de normas e ferramentas que 
permitem a comunicação entre aplicações, programas e plataformas, sem o 
conhecimento ou a intervenção do usuário. Dessa forma, uma API pode disponibilizar 
diversas funções de um determinado site, para que possam ser usadas em outras 
aplicações. (FERREIRA, 2021, p. 15) 
 
 
2.3.7 PROMOÇÃO DE ACESSIBILIDADE 
 
Um aplicativo web com recursos de acessibilidade é fundamental para garantir que 
todos os usuários, independentemente de suas habilidades, possam navegar e utilizar a 
plataforma de forma eficiente. Em especial, quando o público-alvo inclui pessoas com pouco 
conhecimento em informática e de idade avançada, a acessibilidade torna-se ainda mais crucial. 
Ferramentas como interface simples e intuitiva, botões com tamanho adequado, textos legíveis, 
opções de contrastee tamanho das fontes são essenciais para reduzir barreiras e tornar a 
experiência mais inclusiva. Um design acessível garante que essas pessoas possam utilizar o 
aplicativo com confiança, promovendo sua independência e facilitando sua participação nas 
atividades digitais essenciais. 
Além disso, considerando as limitações de infraestrutura de informática da ONG, 
espera-se que o aplicativo seja amplamente utilizado por voluntários em seus smartphones. 
Com telas menores e em formato vertical, o desenvolvimento priorizará essa estrutura, 
garantindo usabilidade adequada. Observamos também que muitos dos voluntários, em especial 
os mais idosos, gerenciam atividades essenciais, como o recebimento, a separação e a entrega 
 18 
 
 
 
de doações, destacando ainda mais a necessidade de um aplicativo acessível e intuitivo. Além 
das opções de acessibilidade, é crucial que o aplicativo seja concebido levando em consideração 
a usabilidade em smartphones, que serão a principal ferramenta de acesso para muitos 
voluntários. Como Batista, Ulbricht e Fadel destacam: 
 
(...) por mais que um smartphone seja constituído basicamente por uma tela sensível 
ao toque, ele [ainda] tem uma forma tridimensional com poucos botões de empurrar 
ou deslizar que fazem parte da interação. O tamanho, a forma e sensação dessa 
interação também têm suas questões que precisam ser trabalhadas com cuidado e que 
influenciam na experiência do usuário. (BATISTA et al., 2017, p. 93) 
 
Com isso em mente, o aplicativo será desenvolvido com foco em fácil usabilidade e 
acessibilidade, considerando as características específicas dos smartphones. Serão 
implementadas funcionalidades como zoom, textos em negrito e opções para alterar o esquema 
de cores (normal, escala de cinza, inverter cores e alto contraste). Esses recursos garantirão que, 
mesmo em telas menores e com interações mais limitadas, o uso do aplicativo seja intuitivo e 
adaptado às necessidades de todos, promovendo uma experiência inclusiva e eficiente para os 
voluntários. 
 
2.3.8 IMPLEMENTAÇÃO EM NUVEM 
Recursos computacionais em nuvem foram aplicados ao projeto, considerando-se, para 
isso, suas contribuições para o processo de implementação. “O termo ‘nuvem’ representa uma 
metáfora da internet. Computação em nuvem significa armazenar e acessar dados e programas 
pela internet a partir de um local ou computador remoto, o que pode ser feito em qualquer lugar 
e em qualquer momento.” (SILVA et al., 2020, p. 54) 
De modo geral, conferem facilidades como: disponibilização do projeto via internet ao 
cliente, com economia de tempo no provisionamento de máquinas virtuais seguras e disposição 
de recursos conforme a demanda das aplicações. Para Kolbe Junior (2020, p. 50), o uso de 
computação em nuvem traz vantagens, sobretudo a flexibilidade encontrada nesses ambientes 
virtuais, que asseguram a portabilidade de sistemas, por meio de “uma estrutura flexível, 
também em termos de garantia de manutenção de sistemas e hardware diferenciados”. 
Neste trabalho, optou-se pelos serviços da Amazon Web Service (AWS), sendo 
oferecidos 750 h/mês de computação em nuvem de forma gratuita durante o primeiro ano de 
assinatura, possibilitando o provisionamento de uma instância de máquina virtual do grupo 
 19 
 
 
 
t2.Micro no Elastic Compute Cloud (Amazon EC2). “Nesse modelo, os serviços em nuvem são 
oferecidos em várias camadas. Cada uma delas oferece especificação de computação fixa e 
SLA a um preço específico por unidade de tempo.” (SILVA et al., 2020, p. 240) 
Dessa forma, a estrutura fornecida pela AWS, atende às demandas deste projeto pois 
propicia “diferentes configurações de servidor e capacidades de computação, com diferentes 
custos por hora”. (SILVA et al., 2020, p. 240). 
 
Ao utilizar a AWS, o cliente recebe algumas responsabilidades, que envolvem o 
sistema operacional, a aplicação, os grupos de segurança (firewall), a configuração da 
rede e o gerenciamento da conta, enquanto a AWS garante as instalações, a segurança 
física, a segurança da infraestrutura, a segurança do hardware e a virtualização da 
infraestrutura. (SILVA et al., 2020, p. 150) 
 
Outro benefício pertinente ao EC2 é a disponibilidade de toda infraestrutura de rede e 
segurança necessárias para o desenvolvimento do projeto, mediante ajustes de firewall e 
dependências dos softwares empregados para rodar o sistema proposto. “O firewall, ou ‘parede 
de fogo’, é um sistema que atua como ponto único de defesa entre a rede privada e a rede 
pública. Ele pode ainda controlar o tráfego entre as sub-redes de uma rede privada.” (MORAES, 
2015, p. 30) Segundo o autor, o êxito da operação ocorre em função da imposição obrigatória 
da passagem do fluxo de informações por esse sistema de segurança, incluindo todo o tráfego 
de dados, tanto de entrada e como de saída da rede. 
 
2.3.9 DOCKER 
 
Buscando-se obter estabilidade no processo de implantação de sistemas, definiu-se pelo 
uso das ferramentas Docker e Docker-Compose para encapsular e executar os frameworks e, 
assim, facilitar e agilizar o provisionamento e prover a portabilidade. Esses mecanismos 
oferecem mais flexibilidade quando se busca portabilidade, caracterizando uma forma de 
virtualizar a aplicação na representação de containers, integrando todas as dependências 
fundamentais à execução. Segundo Jerônimo (2021), o Docker surgiu para suprir a necessidade 
dos desenvolvedores em programarem em um ambiente passível de ser portável para diferentes 
sistemas operacionais. 
 
 20 
 
 
 
Essa tecnologia oferece containers virtuais, que empacotam suas dependências para 
dentro de um contêiner e, a partir desse momento, o container se tornará portável para 
ser utilizado em qualquer outro lugar que tenha o Docker instalado, ou seja, essas 
máquinas podem ser locais ou servidores. (JERÔNIMO, 2021, p. 26) 
 
 
2.3.10 CONTROLE DE VERSÕES 
 
Para garantir a rastreabilidade das alterações de código, fez-se essencial a prática do 
controle de versão e backup dos códigos da aplicação. Com esse fim, utilizou-se o software Git 
e a plataforma GitHub que hospeda o código-fonte e os arquivos da aplicação. Esse conjunto 
possibilita acesso a todos os membros do grupo no desenvolvimento, armazenamento e 
administração do código-fonte e o registro concomitante de todas as mudanças nos código-
fonte. 
Isso porque o GitHub, uma plataforma para desenvolvimento colaborativo, possibilita 
alojar projetos na nuvem por meio do sistema Git para o controle de versões. "A ferramenta 
GIT é um sistema de controle de versão de arquivo muito requisitada pelas equipes DevOps, 
para controlar as modificações do projeto e arquivos de código fonte, facilitando todo processo 
de gerenciamento de projeto” (JERÔNIMO, 2021, P. 31). 
 
2.4 METODOLOGIA 
 
Na elaboração deste trabalho, empregou-se a metodologia Design Thinking (DT) para 
desenvolvimento de uma solução web que atenda às demandas apresentadas pelo cliente, a 
ONG ASAS. De acordo com os conceitos do pensamento DT, é proposto um conjunto de 
experimentos com objetivo de trazer inovação na construção de soluções embasadas em novas 
tecnologias, no intuito de poupar recursos, por meio da prévia identificação das 
disfuncionalidades antes da implantação de produtos. 
Conforme expõe BERGAMO FILHO (2019), esse ciclo de desenvolvimento é 
estabelecido por cinco etapas: empatia, definição, idealização, prototipagem e testes. Esses 
estágios abrangem, respectivamente: captação das necessidades dos clientes e compreensão do 
problema, delimitação do problema, busca das melhores formas para a construção da solução, 
 21 
 
 
 
construção da solução em forma de protótipo para prévia análise de resultados e verificação de 
falhas e se faz a validação das propostas apresentadas pela solução final. 
 
O método do DT, através de um processo composto de cinco etapas, permite a 
idealização,a construção e a aplicação de experimentos, que serão testados pelo 
público-alvo da inovação, de forma a trazer feedbacks, melhorias, conclusões E 
definições em direção às novas soluções (inovações). (BERGAMO FILHO, 2019, p. 
93) 
 
Primeiramente, realizou-se uma pesquisa qualitativa, definida como uma análise 
subjetiva da situação observada na entidade, objetivando a compreensão dos motivos e 
comportamento de fenômenos. “A preocupação é obter informações sobre a perspectiva dos 
indivíduos, bem como interpretar o ambiente em que a problemática acontece.” (CAUCHICK, 
2018, p. 52). 
Dessa forma, o levantamento de dados decorre da investigação de parâmetros 
transmitidos por ideias, pontos de vista e outros. Na pesquisa, recorreu-se à observação, 
entrevista e pesquisa bibliográfica, instrumentos mais apropriados para a captação e 
entendimento dos problemas enfrentados pela ONG, consoante justifica o autor. 
 
As formas de capturar toda essa complexidade são a entrevista semiestruturada ou não 
estruturada, a observação participante ou não participante, e a pesquisa a documentos. 
(...) A entrevista deve ser complementada pela observação do ambiente natural da 
pesquisa e por documentos. Por sua vez, os documentos ou as observações podem ser 
reforçados com as perspectivas das pessoas envolvidas. Essa multiplicidade de fontes 
de evidências é vital para a confiabilidade dos dados coletados, pois as diversas fontes 
se reforçam ou não, aumentando assim a validade interna da pesquisa. (CAUCHICK, 
2018, p. 54) 
 
Com base nos métodos DT, a metodologia empregada na elaboração deste estudo 
compreende as fases expostas a seguir: ouvir e interpretar o contexto; criar e prototipar; e 
implementar e testar. 
 
 
 
 
 22 
 
 
 
2.4.1 OUVIR E INTERPRETAR O CONTEXTO 
 
O projeto foi realizado em um cenário em que a ONG enfrenta desafios na gestão de 
doações, especialmente na montagem de cestas básicas. O perfil da entidade participante incluiu 
gestores e voluntários. As informações iniciais foram coletadas por meio de entrevistas e visita 
a um evento, no dia 14 de setembro de 2024, permitindo que os participantes compartilhassem 
suas experiências e dificuldades no processo de doação. 
Os trabalhos ocorrem em um galpão onde funciona o Centro Espírita e Templo de 
Umbanda Sagrado Coração de Jesus, no bairro Wanel Ville, em Sorocaba. No local, uma sala 
foi oferecida à ONG ASAS para armazenamento de mantimentos. Conforme a coordenadora 
da entidade explicou, o espaço é cedido uma vez ao mês para as ações beneficentes, 
possibilitadas por doações, principalmente, de alimentos, brinquedos, roupas e dinheiro. 
Na ocasião, a instituição realizava o atendimento a 25 famílias presentes no evento, e 
para isso, os integrantes executavam a tarefa de separação dos itens armazenados para a 
composição dos kits alimentícios. Nesse dia seriam preparadas cestas formadas por: 5 kg de 
arroz, 2 kg de feijão, 1 kg de açúcar, 500 g de macarrão espaguete, 500g de macarrão parafuso, 
2 latas de molho de tomate e 1 litro de óleo, sendo estes ingredientes básicos doados todos os 
meses, além de 500 g de café ou de achocolatado, 1 kg de farinha de trigo, 500 g de fubá, sal e 
6 litros de leite, possibilitados pelas condições de estoque. 
Assim, pode-se observar que a atividade demanda tempo e esforço para oferecer às 
famílias uma configuração de cesta básica provida pelo material contido em estoque e que seja 
exatamente igual para todos os beneficiados, principalmente, pelo fato dessa montagem ser feita 
manualmente na ONG, impreterivelmente durante o dia de evento. 
Embora o SGD tenha possibilitado o cadastro de produtos alimentícios para o controle 
e gestão de estoques, constatou-se que ainda há atividades que podem ser melhoradas com o 
emprego da informatização, fato que motivou o grupo a considerar o aprimoramento do SGD 
e implantação de novas funcionalidades neste Projeto Integrador 2. 
 
 
2.4.2 CRIAR / PROTOTIPAR 
 
A análise dos dados coletados revelou a necessidade de um sistema que integrasse a 
gestão de estoque e a geração automática de cestas básicas. As soluções encontradas incluíram 
 23 
 
 
 
a criação de um protótipo funcional do Sistema de Gestão de Doações (SGD), que incorporou 
funcionalidades de automação e atualização de inventário em tempo real. O protótipo foi 
desenvolvido utilizando o framework web Tailwind, permitindo a interação com uma base de 
dados dinâmica. 
Nesta fase, considerou-se a situação verificada na visitação à ONG, destacando-se as 
seguintes questões a serem solucionadas: 
• Automatização do Processo de Geração de Kits de Cestas Básicas: O processo manual 
de separação dos itens para a montagem das cestas básicas demanda tempo e esforço 
consideráveis, devido à escassez de voluntários. A automação desse processo é um 
problema central a ser pesquisado. Sua solução envolve o desenvolvimento de um 
sistema de software com banco de dados que organize e facilite a montagem dos kits, 
economizando tempo e recursos. 
• Design Responsivo: Outro problema identificado é a falta de equipamentos adequados 
no local da ONG. Para resolver isso, a pesquisa deverá focar na criação de um design 
responsivo para a aplicação, garantindo que o sistema funcione em dispositivos móveis, 
facilitando o acesso dos voluntários. Esse aspecto está alinhado com a exigência de 
utilização de frameworks web. 
• Acessibilidade: Considerando a diversidade de idades e níveis de conhecimento 
tecnológico dos voluntários, a interface do sistema precisa ser acessível e intuitiva. A 
pesquisa deverá explorar como incorporar recursos de acessibilidade na aplicação para 
atender a todos os usuários, reforçando a inclusão digital. 
• Segurança e Confiabilidade: A segurança no acesso ao sistema é uma preocupação 
significativa. O uso de uma API para login e o armazenamento seguro na nuvem são 
aspectos que precisam ser pesquisados para garantir a confiabilidade do sistema. Isso se 
relaciona com o tema norteador, que exige o emprego de APIs e práticas de controle de 
versões, além de garantir a segurança dos dados armazenados. 
 
 
2.4.3 IMPLEMENTAR / TESTAR 
 
A metodologia estruturada em Implementação e Testes permitiu que o grupo entendesse 
profundamente o contexto, desenvolvesse uma solução eficaz e realizasse testes práticos, 
 24 
 
 
 
garantindo que o sistema proposto não apenas resolvesse o problema identificado, mas também 
fosse bem recebido pelos usuários finais. 
 
A) IMPLEMENTAÇÃO 
A construção do protótipo foi executada conforme as listas de requisitos funcionais e 
não funcionais levantadas para implementação do sistema ONG, que realiza a distribuição de 
cestas básicas: 
i. Requisitos Funcionais 
1. Cadastro de Famílias 
• Permitir o cadastro de famílias beneficiadas, incluindo informações como nome, 
endereço, número de membros e situação econômica. 
• Atualizar dados das famílias conforme necessário. 
• Consultar e buscar famílias cadastradas por nome, CPF ou endereço. 
2. Cadastro de Produtos 
• Cadastrar diferentes produtos recebidos, incluindo nome, categoria, data de 
validade, fornecedor e quantidade disponível. 
• Permitir a atualização do estoque de produtos quando novas doações forem 
recebidas. 
• Consultar e buscar produtos por nome ou categoria. 
3. Gestão de Cestas de Referência 
• Criar diferentes tipos de cestas de referência, que incluem uma lista padrão de 
produtos e quantidades mínimas por cesta. 
• Possibilidade de editar ou excluir uma cesta de referência. 
• Associar uma cesta de referência a uma distribuição. 
4. Gestão de Distribuição de Cestas 
• Registrar a distribuição de cestas para as famílias, associando a família e a cesta 
de referência. 
• Registrar a data da distribuição e a quantidade de cestas entregues. 
• Emitir relatórios de distribuição por período, família, ou quantidade de cestas 
distribuídas. 
•Avisar se a família já recebeu uma cesta em um período configurável (ex.: 30 
dias). 
5. Controle de Estoque 
 25 
 
 
 
• Gerenciar o estoque de produtos conforme são distribuídos nas cestas, reduzindo 
automaticamente a quantidade disponível após cada distribuição. 
• Avisar sobre produtos em estoque que estão prestes a vencer ou com quantidade 
baixa. 
6. Cadastro de Usuários 
• Cadastrar e gerenciar usuários do sistema, incluindo voluntários e 
administradores. 
• Gerenciar permissões de acesso (por exemplo, quem pode editar, visualizar ou 
distribuir cestas). 
7. Autenticação e Segurança 
• Autenticação de usuários para acessar o sistema. 
• Controle de permissões baseado em perfil (administradores, voluntários, etc.). 
• Implementação de logs para registrar as operações realizadas no sistema 
(cadastros, edições, distribuições). 
8. Relatórios 
• Gerar relatórios mensais de cestas distribuídas. 
• Gerar relatórios de estoque e produtos expirados. 
• Exportar relatórios para formatos como CSV ou PDF. 
9. Histórico de Distribuições 
• Manter um histórico das distribuições realizadas para cada família. 
• Permitir a consulta ao histórico por família ou por período. 
 
ii. Requisitos Não Funcionais 
1. Segurança 
• O sistema deve criptografar senhas e garantir segurança nas operações, 
principalmente para evitar acessos não autorizados. 
• Garantir a integridade dos dados, evitando modificações indevidas. 
2. Desempenho 
• O sistema deve ser capaz de gerenciar muitos cadastros de famílias, produtos e 
distribuições sem queda de performance. 
• Responder rapidamente às consultas e relatórios. 
3. Escalabilidade 
 26 
 
 
 
• O sistema deve permitir a expansão conforme o número de famílias e produtos 
aumente, sem precisar de grandes reconfigurações. 
4. Disponibilidade 
• O sistema deve estar disponível para os usuários de forma contínua, 
minimizando o tempo de inatividade. 
5. Usabilidade 
• O sistema deve ser intuitivo, fácil de usar e acessível, considerando que muitos 
dos usuários podem não ter familiaridade com tecnologia. 
• Interface simples para facilitar a inclusão de dados e a geração de relatórios. 
6. Manutenibilidade 
• O código do sistema deve ser estruturado para permitir fácil manutenção e 
adição de novas funcionalidades. 
• O sistema deve ser modular para facilitar futuras expansões e correções. 
7. Portabilidade 
• O sistema deve funcionar em diferentes navegadores e dispositivos (desktop, 
tablet, smartphone), garantindo que voluntários e administradores possam 
acessar de qualquer lugar. 
 
iii. Requisito Funcional: Montagem de Cestas com Base no Estoque Disponível 
• Montagem Automática de Cestas: O sistema deve calcular automaticamente a 
quantidade de cestas que podem ser montadas com base no estoque atual, 
considerando a cesta de referência cadastrada. 
• Para cada tipo de cesta de referência, o sistema deve verificar a quantidade 
mínima necessária de cada produto em estoque e calcular o número máximo de 
cestas que podem ser montadas. 
• O sistema deve atualizar o estoque de produtos automaticamente após a 
montagem das cestas. 
• Avisar o usuário quando não houver produtos suficientes em estoque para 
montar a cesta completa ou quando algum produto necessário estiver em falta. 
• Sugestão de Quantidade de Cestas: O sistema deve exibir uma sugestão de 
quantas cestas podem ser montadas com os produtos disponíveis no estoque, 
informando a quantidade de cada item que será utilizado. 
 27 
 
 
 
• Distribuição Parcial: Se a cesta de referência não puder ser montada 
integralmente (por falta de produtos), o sistema deve sugerir a montagem de 
cestas parciais, informando quais itens faltam e permitindo que o administrador 
decida se ainda assim deseja prosseguir com a distribuição dessas cestas 
incompletas. Esse requisito garante que o processo de montagem das cestas seja 
otimizado de acordo com os recursos disponíveis e evita desperdícios ou erros 
de distribuição. 
 
B) TESTES 
O teste de software é uma etapa imprescindível para a verificação e validação de 
sistemas. “Verificação refere-se ao conjunto de tarefas que garantem que o software 
implemente corretamente uma função específica. Validação refere-se ao conjunto de tarefas 
que asseguram que o software foi criado e pode ser rastreado segundo os requisitos do cliente.” 
(PRESSMAN&MAXIM, 2015, p. 373) 
Entre as estratégias existentes para testes de sistemas, o grupo fez uso do teste de 
unidade no decorrer da implementação pelos próprios desenvolvedores. “O teste de unidade 
usa intensamente técnicas de teste, com caminhos específicos na estrutura de controle de um 
componente para garantir a cobertura completa e a máxima detecção de erros.” 
(PRESSMAN&MAXIM, 2015, p. 470) 
Nessa fase de testes, também foram realizadas sessões de feedback com os usuários, 
que forneceram devolutivas sobre a usabilidade e eficácia do sistema. As principais melhorias 
indicadas incluíram a necessidade de uma interface mais intuitiva e a adição de tutoriais para 
novos usuários. Com base nessas informações, ajustes foram feitos para garantir que a solução 
atendesse plenamente às necessidades identificadas durante as etapas anteriores. 
 
 
2.5 RESULTADOS PRELIMINARES: SOLUÇÃO INICIAL 
Resultados preliminares significativos já foram alcançados na migração do software 
para PHP, com a colocação da estrutura principal da aplicação em funcionamento. Este 
progresso inicial possibilitou a criação de uma base sólida para as etapas seguintes de 
desenvolvimento e aprimoramento da plataforma. A Figura 1 mostra o funcionamento do 
aplicativo em um smartphone. Nesta primeira tela observa-se a função de login de acesso ao 
 28 
 
 
 
sistema, por meio de e-mail e senha. Esse método confere mais segurança aos usuários, dados 
e informações, operando como uma chave. Dessa forma, controla o acesso a recursos, permite 
a aplicação de política de acesso, uso do sistema de forma personalizada, entre outras 
contribuições. 
 
Figura 1- Tela de login do aplicativo (esquerda) e tela inicial (direita) visualizadas em um smartphone. 
 
Em termos de acessibilidade, uma parte dos elementos previstos já foi implantada na 
página com as funções de modo escuro e modo monocromático, atendendo a alguns requisitos 
de inclusão digital desde o início do processo de migração. Estes modos são facilmente 
aplicados a partir de botões no canto superior direito da tela, e são visíveis em qualquer parte 
do aplicativo. A Figura 2 mostra a diferença dos modos. 
 29 
 
 
 
 
Figura 2- Modo escuro (esquerda) e modo monocromático (direita) visualizadas em um smartphone. 
 
Atualmente, o sistema ainda está acessível apenas via endereço IP, uma vez que o 
domínio DNS ainda não foi configurado, sendo este um ponto que será abordado em etapas 
futuras do projeto. O acesso preliminar por IP, no entanto, já viabiliza a utilização da plataforma 
para testes e ajustes necessários. 
Outro aspecto em desenvolvimento é a função de criação de cestas básicas a partir do 
estoque de materiais. Essa funcionalidade ainda não foi implementada, mas já está planejada 
como parte crucial do sistema, visando facilitar a organização e distribuição eficiente de 
doações pela ONG. A Figura 3 apresenta o menu de navegação lateral, que se configura entre 
 30 
 
 
 
os principais componentes da aplicação, responsável por oferecer orientação e acesso rápido e 
intuitivo às sessões do projeto, abrangendo todo o conteúdo fornecido aos usuários. 
À esquerda, destaca-se a seleção referente às famílias cadastradas no sistema, atendidas 
pela ONG, com as opções de adicionar novos integrantes ao projeto ou listá-los. À direita, 
foram visualizadas as opções referentes ao cadastro de produtos, com os acessos à configuração 
e geração dos kits de cestas básicas para doação. 
 
Figura 3 – Menu lateral com destaque aocadastro de famílias (esquerda) e futura funcionalidade de criação de 
cestas básicas (direita). 
 31 
 
 
 
REFERÊNCIAS 
ABNT – Associação Brasileira de Normas Técnicas. NBR 14724: Informação e documentação. 
Trabalhos Acadêmicos - Apresentação. Rio de Janeiro: ABNT, 2002. 
ANDREI, L. O Que é CDN? Explicamos as Redes de Distribuição de Conteúdo Hostings 
Tutoriais. Disponível em: https://www.hostinger.com.br/tutoriais/o-que-e-
cdn?ppc_campaign=google_search_generic_hosting_all&bidkw=defaultkeyword&lo=910071
9&gad_source=1. Acesso em: 12 abr 2024. 
API Google https://developers.google.com/identity/protocols/oauth2?hl=pt-br 
API Correios https://www.correios.com.br/atendimento/developers 
BAIRD, A. (2018). Nonprofit Organizations: Theory, Management, Policy. New York: 
Routledge, p. 10. Disponível em: https://www.routledge.com/Nonprofit-Organizations-
Theory-Management-Policy/Baird/p/book/9781138505791. 
BATISTA, Claudia R.; ULBRICHT, Vania R.; FADEL, Luciane M. Design para 
acessibilidade e inclusão. São Paulo: Editora Blucher, 2017. E-book. ISBN 9788580393040. 
Disponível em: https://integrada.minhabiblioteca.com.br/#/books/9788580393040/. Acesso 
em: 26 set. 2024.) 
BERGAMO FILHO, Clovis (org.); OLIVEIRA, Wellington Santos de; DUVA, Maria 
Gabriela; OLIVEIRA, Luis. Ruptura no modelo tradicional das empresas: 10 grandes 
especialistas ajudam a desvendar as mudanças que estão impactando sua organização. 1. ed. 
Rio de Janeiro, RJ: Brasport, 2019. E-book. Disponível em: https://plataforma.bvirtual.com.br. 
Acesso em: 02 abr. 2024. 
CAUCHICK, Paulo. Metodologia de Pesquisa em Engenharia de Produção e Gestão de 
Operações. Rio de Janeiro: GEN LTC, 2018. E-book. ISBN 9788595153561. Disponível em: 
https://integrada.minhabiblioteca.com.br/#/books/9788595153561/. Acesso em: 27 set. 2024. 
DALE, Nell; LEWIS, John. Ciência da Computação, 4ª edição. São Paulo, Grupo GEN, 2010. 
E-book. ISBN 9788521635215. Disponível em: 
https://integrada.minhabiblioteca.com.br/#/books/9788521635215/. Acesso em: 12 abr. 2024.) 
ELMASRI, R.; NAVATHE, S. B. Sistemas de banco de dados. 7. ed. São Paulo, SP: Pearson, 
2018. E-book. Disponível em: https://plataforma.bvirtual.com.br. Acesso em: 27 set. 2024. 
FERRAZ, Reinaldo. Acessibilidade na web: boas práticas para construir sites e aplicações 
acessíveis. São Paulo, SP: Casa do Código, 2020. E-book. Disponível em: 
https://plataforma.bvirtual.com.br. Acesso em: 26 set. 2024. 
 
https://developers.google.com/identity/protocols/oauth2?hl=pt-br
https://www.correios.com.br/atendimento/developers
 32 
 
 
 
FISHER, E. PHP é uma linguagem de programação para criação de sites WEB dinâmicos 
sever-side scripts. 2000. Disponível em: 
https://www.alice.cnptia.embrapa.br/alice/bitstream/doc/8559/1/art100.pdf. Acesso em: 1 out. 
2024. 
JERÔNIMO, A. P. de L. Práticas da cultura DevOps no desenvolvimento de sistemas. São 
Paulo, Editora Saraiva, 2021. E-book. ISBN 9786553560567. Disponível em: 
https://integrada.minhabiblioteca.com.br/#/books/9786553560567/. Acesso em: 28 mar. 2024.) 
JÚNIOR, Armando Kolbe. Computação em nuvem. 1. ed. São Paulo: Contentus, 2020. E-
book. Disponível em: https://plataforma.bvirtual.com.br. Acesso em: 09 abr. 2024. 
MANZANO, José Augusto N G. MySQL 5.5 Interativo: Guia Essencial de Orientação e 
Desenvolvimento. Rio de Janeiro: Grupo GEN, 2011. E-book. ISBN 9788536519449. 
Disponível em: https://integrada.minhabiblioteca.com.br/#/books/9788536519449/. Acesso 
em: 27 set. 2024. 
MORAES, Alexandre Fernandes D. Firewalls - Segurança no Controle de Acesso. São Paulo, 
Editora Saraiva, 2015. Disponível em: 
https://integrada.minhabiblioteca.com.br/#/books/9788536521978. Acesso em 12 abr. 2024. 
PRESSMAN, Roger S.; MAXIM, Bruce R. Engenharia de software. Porto Alegre: Grupo A, 
2021. E-book. ISBN 9786558040118. Disponível em: 
https://integrada.minhabiblioteca.com.br/#/books/9786558040118/. Acesso em: 26 set. 2024. 
RAPPIN, Noel. Modern CSS with Tailwind. 1. ed. Raleigh: The Pragmatic Bookshelf, 2021. 
Disponível em: https://dokumen.pub/qdownload/modern-css-with-tailwind-flexible-styling-
without-the-fuss-1nbsped-1680508180-9781680508185.html. Acesso em: 26 set. 2024. 
SEVERINO, A. J. Metodologia do trabalho científico. 22. ed. rev. e ampl. São Paulo: Cortez, 
2002. 
SILVA, F. R.; SOARES, J. A.; SERPA, M. da S., Cloud Computing. São Paulo, Grupo A, 
2020. E-book. ISBN 9786556900193. Disponível em: 
https://integrada.minhabiblioteca.com.br/#/books/9786556900193/. Acesso em: 28 mar. 2024. 
SILVA, K. L. Planos de hospedagem web: vantagens e desafios para desenvolvedores. 2007. 
Disponível em: https://elton.s3.amazonaws.com/docs/monografia_kassiano.pdf. Acesso em: 1 
out. 2024. 
SOMMERVILLE, Ian. Engenharia de software. 10. ed. São Paulo, SP: Pearson, 2018. E-book. Disponível 
em: https://plataforma.bvirtual.com.br. Acesso em: 26 set. 2024. 
WELLING, Luke; THOMSON, Laura. PHP and MySQL Web Development. 4ª ed. Pearson 
Education, 2008. Disponível em: 
https://books.google.com.br/books?id=_xv1frKVlp8C&pg=PR9&hl=pt-BR. Acesso em: 26 
set. 2024. 
https://www.alice.cnptia.embrapa.br/alice/bitstream/doc/8559/1/art100.pdf
https://dokumen.pub/qdownload/modern-css-with-tailwind-flexible-styling-without-the-fuss-1nbsped-1680508180-9781680508185.html
https://dokumen.pub/qdownload/modern-css-with-tailwind-flexible-styling-without-the-fuss-1nbsped-1680508180-9781680508185.html
https://books.google.com.br/books?id=_xv1frKVlp8C&pg=PR9&hl=pt-BR
 33 
 
 
 
O trabalho deverá ser redigido conforme recomendações das Diretrizes para confecção de teses 
e dissertações da Universidade de São Paulo (USP), disponíveis em: 
. 
Acesso em 24 jun.2021. 
http://www.teses.usp.br/index.php?option=com_content&view=article&id=52&Itemid=67

Mais conteúdos dessa disciplina