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