TCC Paulino Fonseca
TCC Paulino Fonseca
DEPARTAMENTO DE ENGENHARIAS
CUITO/BIÉ – 2024/2025
MINISTERIO DO ENSINO SUPERIOR CIÊNCIA TECNOLOGIA E INOVAÇÃO
DEPARTAMENTO DE ENGENHARIAS
FICHA CATALOGRÁFICA
Autora: Paulino Caiaia Cassinda da Fonseca
Título: Aplicativo Móvel com Base de Dados em Nuvem Para a
Comparação de Preços em Lojas do Município do Cuito.
Descrição: Monografia apresentada para obtenção de grau de
licenciatura em Engenharia Informática.
Tutor: Eng. Edgar Tchissingui
FICHA DE APROVAÇÃO
Data de aprovação:____/_________/____
Corpo de júri
Presidente:
1 Vogal:
2 Vogal:
Secretário:
Pensamento
A minha mãe Vitorina Chindambala que incansavelmente nos ensina como andar
neste mundo e de como se proceder diante a sociedade. Sou grato por ser seu filho e
apreender com a senhora.
Agradeço a minha esposa Palmira Tomás, pós minha vida mudou completamente ao
me tornar UM com ela; agradeço por sempre acreditar em meus sonhos, e me ajudar
a alcançar níveis cada vez mais altos. Sempre peço em minhas orações para que o
Senhor continue revelando verdades cada vez mais mas elevadas a fim de que todos
sejam agraciados e influenciados pela sua vida.
Introdução.........................................................................................................................XVI
Referências...........................................................................................................................46
Introdução
A gestão eficiente das finanças pessoais representa um desafio universal, mas assume contornos
particularmente críticos quando se trata da aquisição de bens essenciais, especialmente em
contextos socioeconômicos onde os orçamentos familiares são frequentemente pressionados. No
município do Cuito, localizado na província do Bié, em Angola, esta realidade é vivida
diariamente por inúmeros consumidores. Eles navegam num mercado varejista local caracterizado
por uma notória e, por vezes, desconcertante variação nos preços dos produtos que compõem a
cesta básica – desde alimentos fundamentais a itens de higiene e primeira necessidade. Esta
flutuação, muitas vezes desprovida de uma lógica facilmente discernível pelo consumidor comum,
é agravada por uma carência significativa de informações centralizadas, atualizadas e confiáveis
sobre onde os produtos estão disponíveis e a que preços são comercializados nos diversos
estabelecimentos da cidade, desde supermercados formais a mercados informais e pequenas lojas
de bairro.
É neste contexto desafiador que a presente investigação se insere, propondo uma solução
tecnológica como resposta direta. A literatura sobre comportamento do consumidor e sistemas de
informação demonstra que, quando disponíveis, ferramentas digitais que facilitam a comparação
de preços são prontamente adotadas por consumidores que buscam otimizar suas compras
(Bhargava et al., 2020). A capacidade de agregar dados de mercado, processá-los e apresentá-los
de forma clara e acessível através de plataformas digitais representa um potencial significativo
para transformar a experiência de compra e promover a eficiência econômica no nível do
consumidor individual e do mercado como um todo.
A viabilidade de implementar tal solução no contexto angolano é sustentada pela notável evolução
do cenário digital no país. Relatórios recentes apontam para um crescimento consistente na
penetração da Internet e, de forma ainda mais marcante, na adoção de smartphones pela população
(DATAREPORTAL, 2024). Este avanço tecnológico, que permeia gradualmente diversos estratos
sociais e regiões geográficas, incluindo centros urbanos como o Cuito, cria um ambiente cada vez
mais favorável para o desenvolvimento e a disseminação de aplicações móveis. Um aplicativo
móvel, pela sua natureza portátil, acessível e cada vez mais integrada ao cotidiano, apresenta-se
como um canal particularmente eficaz para entregar informações relevantes diretamente nas mãos
dos consumidores no momento e local em que delas necessitam.
Ao fornecer esta ferramenta, o projeto visa atacar diretamente a raiz do problema da assimetria de
informação e dos elevados custos de busca no mercado varejista do Cuito. Espera-se que a
aplicação capacite os consumidores, oferecendo-lhes maior autonomia e poder de decisão,
facilitando a identificação das opções mais econômicas e contribuindo, assim, para uma gestão
mais eficiente do orçamento familiar. Além do benefício individual, almeja-se que a maior
transparência de preços possa, indiretamente, fomentar uma concorrência mais salutar entre os
comerciantes locais. Em suma, este trabalho propõe não apenas o desenvolvimento de um
software, mas a criação de uma ferramenta com potencial de impacto social e econômico positivo
e mensurável na comunidade do Cuito.
Problema de Investigação
Objeto de Estudo
Campo de Ação
Objetivo Geral
Desenvolver um aplicativo móvel integrado a um banco de dados em nuvem que permita aos
consumidores do município do Cuito comparar preços de produtos alimentícios e bens essenciais
entre diferentes lojas, auxiliando-os a identificar e localizar as melhores ofertas e promovendo uma
gestão financeira mais eficiente.
Objetivos Específicos
Validar o aplicativo com um grupo de usuários reais, coletando feedback sobre usabilidade
e utilidade.
Ideia a Defender
Justificativa
Este trabalho foi estruturado para oferecer uma análise abrangente e organizada sobre o
desenvolvimento e os efeitos do aplicativo de comparação de preços. No próximo capítulo, será
realizada uma revisão da literatura, explorando os fundamentos teóricos e as tecnologias
relacionadas ao projeto. Em seguida, a seção de metodologia detalhará as etapas de planejamento,
design e implementação do aplicativo. Posteriormente, o capítulo de resultados apresentará os
testes realizados e a análise dos dados obtidos, avaliando a eficácia da solução proposta. Por fim, a
conclusão reunirá os principais achados, destacando as contribuições do estudo e sugerindo
caminhos para pesquisas futuras. Essa estrutura visa guiar o leitor por uma narrativa clara e lógica,
evidenciando tanto os aspetos técnicos quanto os impactos práticos do trabalho.
Métodos Teóricos
A otimização das despesas, particularmente em bens essenciais, é uma preocupação central para os
consumidores no município do Cuito e em Angola como um todo. A acentuada variação de preços
e a dificuldade em localizar as melhores ofertas representam barreiras significativas para a
economia familiar. Este capítulo estabelece a fundamentação teórica necessária para o
desenvolvimento de uma solução tecnológica que visa mitigar essas dificuldades. Exploraremos os
conceitos e a evolução das tecnologias móveis, que formam a base da interface com o usuário; a
computação em nuvem, que oferece a infraestrutura escalável necessária; e os bancos de dados na
nuvem, essenciais param o armazenamento e gerenciamento dinâmico das informações de preços.
Adicionalmente, analisaremos os princípios dos sistemas de comparação de preços e o impacto
potencial de tais aplicações no comportamento de consumidores e lojistas, contextualizando essa
análise na realidade específica do município do Cuito e considerando as plataformas tecnológicas
propostas para este projeto: o framework Flutter para o desenvolvimento móvel e a plataforma
Supabase como backend e banco de dados.
A trajetória evolutiva das tecnologias móveis é marcada por avanços significativos nas redes de
comunicação sem fio. As primeiras gerações (1G e 2G) focavam na voz e em mensagens de texto
simples, enquanto a introdução de dados móveis (2.5G e 3G) abriu as portas para a internet móvel
e os primeiros aplicativos mais complexos. A chegada do 4G/LTE representou um salto
22
qualitativo, oferecendo velocidades que viabilizaram o streaming de vídeo de alta definição, jogos
online e o uso intensivo de aplicativos ricos em dados, tornando os smartphones verdadeiros
computadores de bolso (Santos & Lima, 2020). Essa evolução foi crucial para tornar viáveis
aplicações como a proposta neste trabalho, que dependem de acesso rápido a dados atualizados.
Atualmente, a implementação da tecnologia 5G promete inaugurar uma nova era, com velocidades
ainda maiores, latência drasticamente reduzida e a capacidade de conectar um número massivo de
dispositivos simultaneamente. Embora a disponibilidade e a qualidade do 5G ainda possam ser um
fator limitante em algumas regiões, como potencialmente no Cuito, o legado das gerações
anteriores (3G e 4G), cuja penetração é mais ampla conforme dados do DATAREPORTAL (2024)
sobre Angola, já fornece a base de conectividade necessária para a funcionalidade de um aplicativo
de comparação de preços. A contínua expansão da infraestrutura móvel reforça a relevância e o
alcance potencial de soluções baseadas em aplicativos móveis para resolver problemas locais.
Aplicativos móveis, ou "apps", são programas de software desenhados especificamente para serem
executados em sistemas operacionais móveis como Android e iOS. Eles são criados para cumprir
uma vasta gama de funções, desde entretenimento e redes sociais até ferramentas de produtividade,
serviços bancários e, crucialmente para este estudo, comparação de preços e auxílio às compras
(Johnson, 2022). A capacidade de instalar e utilizar software dedicado diretamente no dispositivo
móvel oferece uma experiência mais integrada e otimizada em comparação com o acesso a
serviços via navegador web móvel.
A história dos aplicativos móveis é relativamente recente, mas de crescimento exponencial. Antes
da era dos smartphones modernos, existiam aplicações baseadas em tecnologias como Java ME
(J2ME) e WAP, com funcionalidades e interfaces bastante limitadas. O ponto de inflexão foi o
lançamento do Iphone pela Apple em 2007 e da sua App Store em 2008, seguido de perto pelo
Android e pelo Google Play (anteriormente Android Market). Este modelo de lojas centralizadas
simplificou drasticamente a distribuição, descoberta e monetização de aplicativos, criando um
ecossistema vibrante que incentivou milhões de desenvolvedores a criar soluções para as mais
diversas necessidades (Platform Studies Institute, 2021).
Desde então, os aplicativos móveis evoluíram de simples programas isolados para plataformas
complexas que se integram profundamente com os recursos do hardware (câmera, GPS, sensores
23
de movimento), serviços de nuvem e outros aplicativos. Eles utilizam notificações push para
engajamento em tempo real, incorporam sistemas de pagamento seguros e, cada vez mais,
integram inteligência artificial para oferecer experiências personalizadas. No contexto deste TCC,
a evolução dos apps permite conceber uma ferramenta de comparação de preços que não apenas
lista produtos, mas utiliza a localização do usuário (via GPS) para filtrar lojas próximas, permite a
leitura de códigos de barras (via câmera) e potencialmente envia notificações sobre ofertas
relevantes.
O campo da computação móvel continua a ser um dos mais dinâmicos da tecnologia, com
tendências emergentes que moldam o futuro das aplicações. A conectividade 5G, como já
mencionado, é um pilar fundamental, habilitando experiências mais ricas e em tempo real
(Qualcomm Technologies, 2023). Outra tendência significativa é a crescente capacidade de
processamento de Inteligência Artificial (IA) e Machine Learning (ML) diretamente no dispositivo
(on-device AI). Isso permite funcionalidades como reconhecimento de imagem mais rápido (útil
para identificar produtos), assistentes de voz mais responsivos e personalização de conteúdo sem
necessariamente depender de envio constante de dados para a nuvem, o que pode ser vantajoso em
cenários de conectividade limitada (Chen et al., 2022).
Para o aplicativo proposto, estar ciente dessas tendências é importante para o planejamento futuro.
Embora a versão inicial possa focar nas funcionalidades essenciais de comparação, futuras
iterações poderiam incorporar elementos de IA para prever variações de preço, AR para
visualização de produtos ou integrações com listas de compras inteligentes. A escolha de uma
plataforma de desenvolvimento moderna como o Flutter também facilita a incorporação futura de
24
novas funcionalidades e a adaptação a novas tendências de design e interação que surgem com
novos formatos de dispositivos (como dobráveis).
A decisão sobre como construir uma aplicação móvel impacta diretamente o custo de
desenvolvimento, o tempo de lançamento no mercado, a performance e a experiência do usuário
final. Existem três modelos principais de desenvolvimento. O desenvolvimento Nativo implica
criar códigos separados e específicos para cada plataforma (iOS e Android), utilizando as
linguagens e SDKs (Software Development Kits) oficiais – Swift/Objective-C para iOS e
Kotlin/Java para Android (Apple, n.d.; Google Developers, n.d.). Esta abordagem tende a oferecer
a melhor performance possível e acesso irrestrito a todos os recursos do dispositivo, resultando
numa experiência de usuário perfeitamente alinhada com as convenções de cada sistema
operacional (Fernandes, 2020). Contudo, exige equipes especializadas para cada plataforma ou o
dobro do esforço de desenvolvimento e manutenção.
O desenvolvimento Híbrido surge como uma alternativa que busca unificar o processo. Neste
modelo, uma única base de código, geralmente escrita em linguagens como JavaScript, Dart ou C#,
é utilizada para gerar aplicativos para ambas as plataformas. Frameworks como React Native,
Xamarin e Flutter encapsulam o código em um contêiner nativo ou compilam-no para código
nativo, permitindo o acesso a funcionalidades do dispositivo através de pontes (bridges) ou
diretamente. A principal vantagem é a redução de custo e tempo, pois grande parte do código é
reutilizada (Mobile Dev Insights, 2021). Flutter, a plataforma escolhida para este TCC, destaca-se
neste domínio por usar a linguagem Dart e compilar diretamente para código de máquina ARM
nativo, o que frequentemente resulta em performance próxima à nativa e permite a criação de
interfaces de usuário altamente personalizadas e consistentes entre plataformas.
O terceiro modelo são os Web Apps e Progressive Web Apps (PWAs), que são essencialmente
websites otimizados para dispositivos móveis, acessados através do navegador. PWAs adicionam
capacidades como funcionamento offline básico, notificações push e a possibilidade de serem
"instalados" na tela inicial (W3C, 2022). Sua vantagem é a ampla compatibilidade e a não
dependência de lojas de aplicativos para distribuição. No entanto, o acesso aos recursos do
dispositivo é geralmente mais limitado em comparação com apps nativos ou híbridos robustos
como os feitos com Flutter, o que pode ser uma desvantagem para funcionalidades como uso
intensivo de GPS ou câmera. A escolha pelo Flutter neste projeto visa equilibrar os benefícios da
25
reutilização de código com a necessidade de uma aplicação performática e com boa integração aos
recursos do dispositivo, essencial para funções como geolocalização de lojas e leitura de códigos
de barras.
26
1.3. Computação em Nuvem
Este modelo é sustentado por cinco características essenciais que o distinguem da hospedagem
tradicional. O auto-serviço sob demanda permite que os usuários provisionem recursos sem
intervenção humana. O amplo acesso à rede garante que os serviços sejam acessíveis a partir de
diversos dispositivos (incluindo móveis) e locais. O agrupamento de recursos (resource pooling)
significa que os provedores atendem a múltiplos clientes (multi-tenancy) usando a mesma
infraestrutura física, alocando recursos dinamicamente. A rápida elasticidade permite escalar os
recursos para cima ou para baixo rapidamente, conforme a demanda flutua. Por fim, o serviço
mensurado garante que o uso dos recursos seja monitorado e cobrado de forma transparente,
geralmente em um modelo de pagamento pelo uso (pay-as-you-go) (Mell & Grance, 2011).
27
1.3.2. Modelos de Serviço (IaaS, PaaS, SaaS) e a Escolha do Supabase
A Plataforma como Serviço (PaaS) fornece um nível de abstração mais alto, oferecendo uma
plataforma completa para desenvolvimento, implantação e gerenciamento de aplicações. O
provedor gerência a infraestrutura, sistemas operacionais, bancos de dados e outros middlewares,
permitindo que o desenvolvedor foque apenas no código da aplicação (Microsoft Azure, n.d.).
Exemplos incluem Heroku e Google App Engine. O PaaS acelera o desenvolvimento, sendo ideal
para hospedar APIs e backends de aplicações web e móveis.
O Software como Serviço (SaaS) entrega aplicações completas e prontas para uso pela internet,
geralmente através de um navegador ou aplicativo cliente. O cliente final utiliza o software, mas
não gerência nenhuma parte da infraestrutura ou da plataforma subjacente (Salesforce, n.d.).
Exemplos comuns são serviços de e-mail (Gmail), CRM (Salesforce) e armazenamento de
arquivos (Dropbox). Muitas aplicações móveis consomem funcionalidades de serviços SaaS
através de APIs.
Neste contexto, Supabase, a plataforma escolhida como backend para este projeto, posiciona-se
predominantemente como um Backend as a Service (BaaS), que pode ser visto como uma
especialização ou uma combinação de PaaS e SaaS voltada para o desenvolvimento rápido de
aplicações. Supabase oferece um banco de dados PostgreSQL gerenciado (similar a um DBaaS, um
tipo de PaaS), mas também adiciona serviços pré-construídos como autenticação de usuários, APIs
REST e GraphQL geradas automaticamente sobre o banco de dados, armazenamento de arquivos e
funcionalidades em tempo real (Supabase, n.d.). Ao prover esses componentes essenciais de
backend como serviços gerenciados e fáceis de integrar através de SDKs (incluindo um para
Flutter), Supabase alinha-se ao objetivo de desenvolver rapidamente um aplicativo funcional,
abstraindo grande parte da complexidade do gerenciamento de backend e permitindo que a equipe
foque na lógica da aplicação móvel e na experiência do usuário.
28
1.3.3. Vantagens e Desafios da Computação em Nuvem
No entanto, a utilização da nuvem não está isenta de desafios. A segurança é uma preocupação
constante. Embora os provedores de nuvem invistam pesadamente em segurança física e de rede, a
configuração correta dos serviços e a proteção dos dados da aplicação (preços, dados de usuários e
lojistas) são responsabilidades do desenvolvedor. É essencial implementar práticas seguras, como o
uso de senhas fortes, controle de acesso granular (as Row Level Security do Supabase são vitais
aqui) e criptografia (Subashini & Kavitha, 2011). A privacidade dos dados dos usuários e a
conformidade com eventuais regulamentações locais de proteção de dados também devem ser
cuidadosamente consideradas.
29
1.4. Bancos de Dados na Nuvem
Bancos de dados são o coração de quase todas as aplicações modernas, servindo como repositório
central para armazenar, organizar e recuperar informações de forma estruturada e eficiente.
Quando hospedados na nuvem, geralmente sob o modelo de Banco de Dados como Serviço
(DBaaS), eles oferecem as vantagens da nuvem – escalabilidade, disponibilidade, gerenciamento
simplificado – aplicadas ao armazenamento de dados (Oracle, 2022). O provedor de DBaaS cuida
de tarefas operacionais complexas como provisionamento inicial, aplicação de patches de
segurança, backups regulares e, em muitos casos, escalonamento automático, liberando os
desenvolvedores para focarem na modelagem dos dados e na lógica da aplicação.
Para uma aplicação móvel como a de comparação de preços, um banco de dados na nuvem é
absolutamente essencial. Ele armazenará informações críticas e dinâmicas: o catálogo de produtos
(nomes, descrições, códigos de barras), a lista de lojas participantes no Cuito (nomes,
localizações), os preços de cada produto em cada loja (com timestamps para indicar a atualidade),
dados dos usuários registrados (perfis, listas de compras salvas) e, potencialmente, avaliações de
produtos ou lojas. A natureza centralizada do banco de dados na nuvem garante que todos os
usuários do aplicativo Flutter acessem a mesma informação atualizada (Moniruzzaman & Hossain,
2013).
A importância transcende o mero armazenamento. O banco de dados deve ser capaz de responder
rapidamente às consultas do aplicativo móvel (por exemplo, "Quais os preços do arroz de 1kg nas
lojas próximas?"), suportar a inserção de novos dados (seja por administradores, lojistas ou
crowdsourcing) e escalar para acomodar um número crescente de produtos, lojas e usuários. A
escolha de um DBaaS adequado, como o PostgreSQL oferecido pelo Supabase, é portanto uma
decisão arquitetural crítica para o sucesso do projeto.
O universo dos bancos de dados na nuvem abrange principalmente duas grandes categorias:
Relacionais (SQL) e Não Relacionais (NoSQL). Bancos de dados Relacionais (SQL), como
MySQL, PostgreSQL, SQL Server e Oracle, baseiam-se em um modelo de dados estruturado em
tabelas, com linhas e colunas, e relações bem definidas entre elas. Eles utilizam a Structured Query
30
Language (SQL) para manipulação e consulta de dados e são conhecidos por garantirem as
propriedades ACID (Atomicidade, Consistência, Isolamento, Durabilidade), o que os torna ideais
para transações e dados que exigem alta integridade e consistência (Elmasri & Navathe, 2017).
Bancos de dados NoSQL (Not Only SQL) surgiram para lidar com desafios de escalabilidade
massiva, flexibilidade de esquema e tipos de dados não estruturados ou semi-estruturados, comuns
na era da web e do Big Data. Existem vários tipos de NoSQL, incluindo bancos de dados de
Documentos (como MongoDB), Chave-Valor (Redis, DynamoDB), Colunares (Cassandra) e de
Grafos (Neo4j). Eles geralmente oferecem escalabilidade horizontal mais fácil e esquemas
flexíveis, mas podem ter modelos de consistência mais relaxados (Eventual Consistency) em
comparação com os SQL tradicionais (Sadalege & Fowler, 2012).
A escolha de Supabase para este TCC implica o uso do PostgreSQL como banco de dados
subjacente. PostgreSQL é um sistema de gerenciamento de banco de dados relacional (SQL)
objeto-relacional, conhecido por sua robustez, extensibilidade e forte conformidade com os
padrões SQL. A escolha de um banco de dados relacional como o PostgreSQL para a aplicação de
comparação de preços pode ser justificada pela natureza inerentemente relacional de muitos dos
dados envolvidos: produtos pertencem a categorias, preços estão associados a produtos e lojas,
usuários têm listas de compras. A estrutura tabular e as garantias de consistência do SQL são
vantajosas para gerenciar essas relações e garantir a integridade dos dados, por exemplo, ao
atualizar preços ou gerenciar contas de usuários e lojistas. Além disso, o PostgreSQL moderno, e
as extensões que Supabase adiciona, oferecem flexibilidade, como o suporte nativo a tipos de
dados JSONB, permitindo armazenar dados semi-estruturados dentro do modelo relacional quando
necessário.
31
Plataformas BaaS como Supabase simplificam significativamente essa integração. Supabase gera
automaticamente uma API RESTful sobre o esquema do banco de dados PostgreSQL e também
fornece SDKs (Software Development Kits) específicos para diversas plataformas, incluindo
Flutter. Este SDK permite que o aplicativo Flutter interaja diretamente com os serviços do
Supabase (banco de dados, autenticação, armazenamento) de forma segura e conveniente,
utilizando chamadas de função em Dart (a linguagem do Flutter) em vez de requisições HTTP
manuais. Por exemplo, para buscar os preços de um produto, o código Flutter poderia usar uma
função do SDK Supabase que se traduz internamente em uma consulta SQL ao banco de dados
PostgreSQL (Supabase Docs, n.d.).
Esta abordagem via SDK acelera o desenvolvimento, pois elimina a necessidade de construir e
hospedar uma API separada. Supabase também oferece funcionalidades de tempo real, que podem
ser particularmente úteis para um aplicativo de comparação de preços. Utilizando as subscrições
em tempo real do Supabase, o aplicativo Flutter poderia ser notificado automaticamente sempre
que um preço relevante for atualizado no banco de dados, permitindo exibir informações sempre
atualizadas aos usuários sem a necessidade de polling constante. Além disso, a questão da
conectividade intermitente no Cuito pode ser parcialmente abordada implementando estratégias de
cache local no Flutter e utilizando as capacidades do SDK para lidar com a sincronização quando a
conexão for restabelecida, embora o suporte offline robusto possa exigir bibliotecas adicionais ou
lógica customizada (Mobile Architecture Patterns, 2021).
Garantir a segurança dos dados e a performance das consultas é vital para a confiança e usabilidade
do aplicativo de comparação de preços. Ao utilizar um BaaS como Supabase, parte da
responsabilidade é compartilhada com o provedor, mas aspetos cruciais permanecem sob o
controle do desenvolvedor. Em termos de segurança, Supabase oferece mecanismos importantes
que devem ser corretamente configurados. A autenticação de usuários (identificando quem está
usando o app) é um serviço integrado. Talvez o mais crítico seja o uso de Row Level Security
(RLS) no PostgreSQL. RLS permite definir políticas diretamente no banco de dados que
restringem quais linhas de dados um usuário específico pode acessar ou modificar, com base em
seu ID de usuário ou outras características. Implementar políticas RLS robustas é essencial para
garantir que um usuário só veja seus próprios dados privados (como listas de compras) e que um
lojista só possa atualizar os preços da sua própria loja (CSA, 2020; Supabase Docs, n.d.). A
criptografia de dados em trânsito (SSL/TLS) é geralmente padrão.
32
Do ponto de vista da performance, mesmo com a infraestrutura gerenciada pelo Supabase, boas
práticas de banco de dados são necessárias. A criação de índices apropriados nas colunas do
PostgreSQL que são frequentemente usadas em cláusulas WHERE (por exemplo, product_id,
store_id, timestamp) é fundamental para acelerar as consultas de busca e comparação de preços
(Harrison, 2019). A otimização das consultas escritas no aplicativo Flutter (ou nas políticas RLS)
também impacta a performance; evitar consultas complexas desnecessárias ou que escaneiem
tabelas inteiras é importante. Embora Supabase lide com o escalonamento da instância do banco de
dados até certo ponto, entender os limites do plano escolhido e monitorar a performance é
necessário.
Outras otimizações de performance podem incluir o caching de dados no lado do cliente (no
aplicativo Flutter) para informações que não mudam frequentemente (como detalhes de produtos
ou lista de lojas) para reduzir o número de chamadas ao banco de dados. O próprio Supabase pode
ter mecanismos de cache internos, mas o caching no cliente oferece benefícios adicionais de
performance percebida pelo usuário e resiliência à conectividade intermitente. A escolha de um
modelo de dados bem projetado no PostgreSQL, que reflita eficientemente as relações entre
produtos, lojas e preços, também é um fator chave para garantir tanto a segurança (via RLS)
quanto a performance das consultas que sustentam a funcionalidade principal do aplicativo de
comparação de preços.
A busca por eficiência econômica nas compras do dia-a-dia é uma constante universal, mas adquire
contornos particularmente críticos em contextos socioeconômicos como o do município do Cuito.
A flutuação de preços de produtos alimentícios e bens essenciais, combinada com a dispersão
geográfica dos estabelecimentos comerciais e a falta de informação centralizada, impõe um ônus
significativo aos consumidores. Conforme destacado na introdução deste trabalho e corroborado
por estudos sobre comportamento do consumidor, a ausência de ferramentas eficazes para
33
comparar preços transforma a tarefa de economizar em um processo demorado, custoso (em
termos de tempo e transporte) e muitas vezes frustrante (Bhargava et al., 2020). Os consumidores
podem acabar pagando mais caro simplesmente por desconhecerem alternativas mais vantajosas
disponíveis em sua própria localidade.
34
específicos permite que os próprios comerciantes insiram e atualizem seus preços diretamente na
plataforma.
35
Do ponto de vista do consumidor, os comparadores reduzem significativamente os custos de
busca (tempo e esforço necessários para encontrar informações de preços). Essa redução torna os
consumidores mais informados sobre as alternativas disponíveis e, consequentemente, mais
sensíveis às diferenças de preço, levando a escolhas mais racionais e econômicas (Lynch & Ariely,
2000). Este é o benefício direto esperado para os usuários do aplicativo no Cuito, alinhado com o
objetivo de promover uma gestão financeira mais eficiente.
No entanto, os efeitos não são uniformemente positivos ou simples. Alguns estudos apontam que a
dispersão de preços pode persistir devido a fatores como diferenciação (qualidade percebida,
conveniência da loja, atendimento), confiança na marca do vendedor, ou estratégias de
ofuscação por parte dos lojistas (Ellison & Ellison, 2009). Além disso, o impacto no nível médio
de preços é ambíguo: a maior concorrência pode pressionar os preços para baixo, mas os custos de
participação na plataforma ou o uso estratégico da informação pelos lojistas (para monitorar e
talvez coordenar preços tacitamente) poderiam, em teoria, ter efeitos contrários. Portanto, ao
implementar o aplicativo no Cuito, é importante monitorar não apenas a adoção pelos usuários,
mas também as reações dos lojistas e os efeitos gerais sobre a dinâmica de preços local.
O impacto mais direto e mensurável esperado é na gestão financeira das famílias. Para
orçamentos apertados, a economia gerada pela compra sistemática de produtos essenciais a preços
mais baixos pode ser substancial ao longo do tempo. O aplicativo, portanto, transcende a
conveniência, tornando-se uma ferramenta prática de planejamento financeiro, ajudando os
36
usuários a "identificar as opções mais vantajosas para produtos essenciais, otimizar o orçamento
doméstico e aumentar a capacidade de poupança" (Consumer Finance Reports, 2022, p. 15).
Funcionalidades adicionais no aplicativo Flutter, como a criação de listas de compras otimizadas
(que calculam o custo total da cesta em diferentes lojas ou combinações de lojas) ou o envio de
alertas sobre promoções em produtos favoritos, podem amplificar ainda mais esses benefícios
financeiros.
Além do especto puramente econômico, o aplicativo pode influenciar outros fatores da decisão de
compra. Ao incluir informações sobre a localização exata das lojas (integrado com mapas, usando
as capacidades do Flutter e do dispositivo), disponibilidade de produtos (informada pelos lojistas
ou por crowdsourcing) e potencialmente avaliações de outros usuários, a aplicação fornece um
quadro mais completo para a decisão. Isso permite que o consumidor pondere não apenas o preço,
mas também a conveniência (distância vs. economia), a confiabilidade da informação e a
experiência de outros compradores, promovendo um consumo mais consciente e informado no
contexto específico do Cuito.
Embora a perspetiva de maior concorrência de preços possa inicialmente preocupar alguns lojistas
no Cuito, a participação na plataforma de comparação também oferece oportunidades
significativas. Primeiramente, o aplicativo funciona como um canal de visibilidade e marketing
digital, especialmente valioso para pequenos comerciantes que podem não ter recursos para
publicidade online própria ou mesmo uma presença digital estabelecida. Estar listado na
plataforma pode atrair novos clientes, particularmente aqueles mais sensíveis a preço, que talvez
desconhecessem a existência da loja ou suas ofertas (Retail Management Studies, 2020).
Em segundo lugar, a plataforma pode fornecer aos lojistas participantes inteligência de mercado
valiosa. Ao observar (de forma agregada e anonimizada, respeitando a privacidade) quais produtos
são mais pesquisados, quais faixas de preço atraem mais interesse, e potencialmente os preços
praticados por concorrentes diretos (se a plataforma permitir essa visibilidade), os lojistas podem
tomar decisões mais informadas sobre sua própria estratégia de precificarão, gestão de estoque e
promoções. O módulo de gestão para lojistas, previsto como objetivo específico e a ser
implementado no aplicativo Flutter, é crucial aqui, pois permite que eles atualizem seus preços e
disponibilidade de forma fácil e rápida, garantindo a relevância da informação e engajando-os
ativamente na plataforma.
37
Finalmente, a plataforma pode ser uma ferramenta para fidelização e diferenciação, indo além da
simples guerra de preços. Lojistas podem utilizar o aplicativo para comunicar ofertas especiais
exclusivas para os usuários, destacar a qualidade de seus produtos ou serviços, ou promover
programas de fidelidade. Ao participar ativamente e fornecer informações precisas, os lojistas
constroem confiança com os consumidores. A plataforma pode, assim, ajudar a nivelar o campo de
jogo entre grandes e pequenos varejistas no Cuito, permitindo que estes últimos compitam não
apenas no preço, mas também na agilidade, no relacionamento com o cliente e na adaptação às
necessidades locais (Marketing Estratego Journal, 2021). A chave é que a plataforma seja
percebida como benéfica tanto para consumidores quanto para os comerciantes locais.
Da mesma forma, entender o ecossistema varejista do Cuito é crucial. Qual a proporção entre
comércio formal e informal? Os pequenos comerciantes possuem alguma infraestrutura digital
(computador, smartphone com internet) para usar o módulo lojista? Qual a disposição geral em
adotar novas tecnologias e compartilhar informações de preços, considerando a cultura comercial
local? A coleta de dados de preços do setor informal, que pode ser significativo, representa um
desafio particular que talvez precise de abordagens criativas baseadas em crowdsourcing
incentivado. A colaboração com associações comerciais locais, se existentes, pode ser estratégica
para engajar os lojistas (INE, dados anuais de empresas – fontes a confirmar/substituir).
38
Essas investigações revelarão tanto os desafios quanto as oportunidades. Os desafios podem
incluir conectividade deficiente ou cara, baixa literacia digital em certos segmentos, resistência à
mudança por parte dos lojistas, dificuldade em manter os dados de preços atualizados e precisos
(especialmente com crowdsourcing) e a necessidade de construir confiança na plataforma. As
oportunidades, no entanto, são imensas: o potencial de economia real para as famílias, o estímulo
à concorrência saudável, a promoção da transparência no mercado local, a possibilidade de
inclusão digital de pequenos comerciantes e a criação de uma ferramenta genuinamente útil que
responde a uma necessidade concreta da comunidade do Cuito, alinhando-se com iniciativas mais
amplas de digitalização (Programa Angola Digital, 2021 – fonte a confirmar/substituir). O design
da solução em Flutter e Supabase deve ser flexível o suficiente para se adaptar a essas condições
locais, talvez começando com funcionalidades essenciais e evoluindo com base no feedback e na
adoção.
39
1.7 Metodologia de Desenvolvimento de Software Adotada
As metodologias ágeis emergiram no final da década de 1990 e início dos anos 2000 como uma
alternativa aos modelos de desenvolvimento tradicionais, como o modelo Cascata (Waterfall).
Estes modelos sequenciais e rigidamente planejados mostravam-se frequentemente inadequados
para projetos onde os requisitos eram voláteis ou pouco compreendidos no início, levando a longos
ciclos de desenvolvimento, dificuldade em incorporar feedback e, por vezes, a entrega de produtos
desalinhados com as necessidades reais dos usuários (Pressman & Maxim, 2016). A insatisfação
com essa rigidez culminou na criação do "Manifesto para o Desenvolvimento Ágil de Software"
em 2001, que estabeleceu um conjunto de valores e princípios norteadores.
O Manifesto Ágil preconiza valorizar "indivíduos e interações mais que processos e ferramentas;
software em funcionamento mais que documentação abrangente; colaboração com o cliente mais
que negociação de contratos; responder a mudanças mais que seguir um plano" (Beck et al., 2001).
Essa filosofia enfatiza a flexibilidade, a comunicação constante, a entrega incremental de valor e a
capacidade de adaptação como elementos centrais para o sucesso no desenvolvimento de software.
No contexto deste projeto – criar uma ferramenta para consumidores no Cuito, um ambiente com
dinâmicas de mercado e necessidades de usuários que podem necessitar de ajustes ao longo do
desenvolvimento – a abordagem ágil é particularmente pertinente, pois permite incorporar
feedback e ajustar o rumo do projeto de forma mais eficiente do que um plano pré-definido e
inflexível.
As metodologias que derivam deste manifesto, como Scrum, Kanban, Lean e XP, partilham desta
filosofia comum, mas diferem nas suas práticas e focos específicos. Elas promovem ciclos de
40
desenvolvimento mais curtos (iterações), colaboração intensa entre os membros da equipe e
stakeholders (como os futuros usuários do aplicativo no Cuito) e uma busca contínua pela melhoria
tanto do produto quanto do processo de desenvolvimento (Highsmith, 2009).
Dentro do espectro ágil, diversas metodologias ganharam popularidade. O Scrum, talvez a mais
difundida, organiza o trabalho em ciclos fixos chamados Sprints, com papéis bem definidos
(Product Owner, Scrum Master, Equipe de Desenvolvimento) e cerimônias específicas
(Planejamento da Sprint, Reunião Diária, Revisão da Sprint, Retrospetiva da Sprint). Seu foco
principal é a gestão do projeto e a entrega de incrementos de produto potencialmente utilizáveis ao
final de cada Sprint (Schwaber & Sutherland, 2020). Embora eficaz para equipes, sua estrutura
pode ser excessiva para um projeto com um único desenvolvedor.
O Kanban, por sua vez, foca na visualização do fluxo de trabalho e na limitação do trabalho em
progresso (WIP) para identificar gargalos e otimizar a entrega contínua. Utilizando um quadro
visual (Quadro Kanban), as tarefas fluem de uma coluna para outra à medida que progridem. É
uma metodologia altamente flexível e menos prescritiva que o Scrum, focada na eficiência do
fluxo (Anderson, 2010). Sua simplicidade é atraente, mas pode carecer da estrutura de feedback e
planejamento iterativo mais explícita de outras metodologias.
A Extreme Programming (XP), uma das metodologias pioneiras do movimento ágil, diferencia-se
por seu forte foco nas práticas técnicas de engenharia de software, visando produzir código de alta
qualidade de forma sustentável e adaptável a mudanças. Concebida por Kent Beck, a XP é definida
por um conjunto de valores, princípios e práticas que se reforçam mutuamente (Beck & Andres,
41
2004). É considerada uma metodologia "leve", adequada para equipes de diferentes tamanhos e
níveis de experiência, e particularmente eficaz em projetos onde os requisitos são incertos ou
sujeitos a alterações frequentes (Miranda, 2020), cenário plausível ao desenvolver uma ferramenta
inovadora para o mercado do Cuito.
Estes valores são colocados em prática através de um conjunto de práticas interligadas. Para este
projeto, mesmo com um único desenvolvedor, várias práticas da XP são adaptáveis e altamente
benéficas:
42
tempo, mantendo-o limpo, legível e fácil de manter, o que é vital para a sustentabilidade do
projeto, mesmo sendo individual.
Integração Contínua (Continuous Integration - Adaptada): Embora classicamente
envolva a integração frequente do trabalho de múltiplos desenvolvedores, o princípio pode
ser adaptado para um único desenvolvedor através da integração e teste frequentes de novas
funcionalidades no código principal localmente, e potencialmente usando ferramentas de
CI/CD (Continuous Integration/Continuous Deployment) para automatizar builds e testes
na nuvem (por exemplo, com GitHub Actions e a hospedagem do Supabase ou do frontend
Flutter).
Padrões de Codificação (Coding Standards): Adotar e seguir consistentemente um
padrão de codificação melhora a legibilidade e a manutenção do código, mesmo quando
trabalhado por uma única pessoa.
Ritmo Sustentável (Sustainable Pace): Trabalhar de forma focada e eficiente, mas
evitando horas extras excessivas, para manter a produtividade e a qualidade a longo prazo.
Essencial para evitar o esgotamento (burnout) em um projeto individual.
Pequenas Entregas (Small Releases): Entregar versões funcionais do software em ciclos
curtos permite obter feedback rápido dos stakeholders (orientador, potenciais usuários de
teste no Cuito) e validar o progresso.
44
1.8 FERRAMENTAS E TECNOLOGIAS PARA O DESENVOLVIMENTO DA
APLICAÇÃO MÓVEL
A escolha do Flutter foi motivada por diversas características vantajosas. Sua arquitetura baseada
em widgets personalizáveis e de alto desempenho permite a criação de interfaces de usuário ricas,
expressivas e consistentes entre plataformas. O recurso de "Hot Reload" acelera drasticamente o
ciclo de desenvolvimento, permitindo que os desenvolvedores vejam os efeitos das alterações no
código quase instantaneamente sem perder o estado da aplicação. Além disso, o Flutter possui uma
comunidade ativa e crescente, vasta documentação e excelente integração com serviços de
backend, incluindo o Supabase, escolhido para este projeto.
O Flutter utiliza a linguagem de programação Dart, também desenvolvida pelo Google. Dart é
uma linguagem moderna, orientada a objetos, otimizada para o desenvolvimento de interfaces de
usuário e compilada tanto para código nativo ARM (para performance em dispositivos móveis)
quanto para JavaScript (para aplicações web). Sua sintaxe clara, forte sistema de tipos (com
inferência) e recursos assíncronos robustos tornam-na adequada para construir aplicações móveis
45
complexas e responsivas (Dart Docs, n.d.). A combinação Flutter/Dart foi considerada ideal para
entregar uma experiência de usuário fluida e nativa na aplicação de comparação de preços.
A escolha do Supabase justifica-se por vários fatores. Primeiramente, ele fornece os componentes
essenciais necessários para a aplicação de comparação de preços:
Além disso, o Supabase oferece SDKs (Software Development Kits) oficiais para diversas
plataformas, incluindo Flutter, o que simplifica enormemente a integração. Sua base em
tecnologias open-source (principalmente PostgreSQL) evita o aprisionamento tecnológico (vendor
lock-in) excessivo, e seu modelo de preços, incluindo um generoso nível gratuito, torna-o acessível
para projetos acadêmicos e startups.
46
1.8.3 Sistema Gerenciador de Banco de Dados: PostgreSQL (via Supabase)
Conforme mencionado, o coração do backend fornecido pelo Supabase é uma instância gerenciada
do PostgreSQL. PostgreSQL é um poderoso sistema de gerenciamento de banco de dados objeto-
relacional (SGBD-OR) de código aberto, conhecido por sua confiabilidade, robustez,
conformidade com os padrões SQL e vasto conjunto de funcionalidades avançadas (PostgreSQL
Docs, n.d.). A escolha de um banco de dados relacional como o PostgreSQL é adequada para a
aplicação de comparação de preços, dada a natureza estruturada e relacional dos dados envolvidos
(produtos, categorias, lojas, preços, usuários, etc.).
Além das tecnologias centrais (Flutter, Dart, Supabase, PostgreSQL), o desenvolvimento eficiente
do projeto contou com o apoio de diversas ferramentas padrão da indústria:
Visual Studio Code (VS Code): Como editor de código-fonte principal, o VS Code foi
escolhido por ser gratuito, leve, multiplataforma e possuir um ecossistema de extensões
extremamente rico. Suas extensões oficiais para Dart e Flutter oferecem excelente suporte
ao desenvolvimento, incluindo realce de sintaxe, autocompletar inteligente, depuração
integrada, formatação de código e integração com o Hot Reload do Flutter (Visual Studio
Code Docs, n.d.).
Git e GitHub: O Git foi utilizado como sistema de controle de versão distribuído,
essencial para rastrear todas as alterações no código-fonte, gerenciar diferentes ramos de
desenvolvimento (branches) e permitir a reversão para versões anteriores, caso necessário.
47
É uma ferramenta fundamental para qualquer projeto de software, mesmo individual,
garantindo a segurança e o histórico do código (Git SCM Docs, n.d.). O GitHub serviu
como plataforma de hospedagem remota para os repositórios Git, funcionando como um
backup seguro do código, facilitando a sincronização entre diferentes máquinas (se
aplicável) e oferecendo ferramentas adicionais para gerenciamento de projetos (GitHub
Docs, n.d.).
Google Play Store: Como plataforma de distribuição primária para aplicações Android, a
Google Play Store será o canal para disponibilizar a aplicação aos usuários do Cuito após a
fase de desenvolvimento e teste. O processo envolve a compilação de uma versão de
lançamento da aplicação Flutter (em formato APK ou AAB) e o envio através do Google
Play Console, onde se gerência a listagem, descrição, capturas de tela e atualizações da
aplicação (Google Play Console Help, n.d.).
Figma (Design e Prototipagem): Na fase de conceção visual e funcional da aplicação, a
ferramenta de design baseada na web Figma foi utilizada extensivamente. Por meio do Figma,
foram criados os wireframes para estruturar o fluxo de navegação do usuário, seguidos por mockups
de alta fidelidade que definiram a identidade visual da aplicação (cores, tipografia, ícones,
componentes de UI) e, finalmente, protótipos interativos. Este processo foi fundamental para
visualizar a experiência do usuário final, iterar sobre o design de forma ágil e fornecer um guia
visual preciso e detalhado para a implementação das interfaces no framework Flutter, garantindo
consistência e usabilidade.
48
CAPÍTULO II: DESENVOLVIMENTO DA SOLUÇÃO PROPOSTA
Neste capítulo faz-se a modelagem do sistema proposto, desenvolvendo vários dos artefactos
propostos na metodologia XP, que permitem dar cumprimentos ao problema exposto (História do
usuário e tarefas de Engenharia) também são apresentados os requerimentos funcionais e não
funcionais que contribuem á implementação do sistema.
Os requisitos de um sistema são as descrições do que o sistema deve fazer, os serviços que oferece
e as restrições a seu funcionamento. Esses requisitos refletem as necessidades dos clientes para um
sistema que serve a uma finalidade determinada, como controlar um dispositivo, colocar um
pedido ou encontrar informações. O processo de descobrir, analisar, documentar e verificar esses
serviços e restrições é chamado engenharia de requisitos (SOMMERVILLE, 2011, p. 57).
São declarações de serviços que o sistema deve fornecer, de como o sistema deve reagir a entradas
específicas e de como o sistema deve se comportar em determinadas situações (SOMMERVILLE,
2011, p. 59). Os principais requerimentos funcionais para o sistema são apresentados a seguir:
RF01 - Cadastro de Usuário (Consumidor): O sistema deve permitir que novos usuários
(consumidores) se cadastrem na aplicação fornecendo informações básicas (ex: nome,
e-mail/telefone, senha).
RF03 - Pesquisa de Produtos: O sistema deve permitir que o consumidor pesquise produtos por
nome, categoria ou código de barras (se implementada a leitura).
RF04 - Comparação de Preços de Produtos: O sistema deve exibir uma lista de lojas que
vendem o produto pesquisado, mostrando o preço em cada loja e a data da última atualização do
preço.
49
RF05 - Visualização de Detalhes da Loja: O sistema deve permitir que o consumidor visualize
informações detalhadas de uma loja selecionada (ex: nome, endereço, contato, localização no
mapa).
RF06 - Cadastro/Gestão de Lojas (Módulo Lojista - simplificado): O sistema deve permitir que
um usuário com perfil de lojista (após aprovação/cadastro diferenciado) cadastre sua loja e
gerencie os preços dos produtos que vende em seu estabelecimento.
RF08 - (Crowdsourcing) Submissão de Preços por Consumidores: O sistema pode permitir que
consumidores submetam informações de preços encontradas em lojas (potencialmente com
validação ou moderação).
RF09 - Filtragem de Resultados por Localização: O sistema deve permitir que o consumidor
filtre/ordene as lojas exibidas com base na sua proximidade geográfica (utilizando o GPS do
dispositivo).
RNF002 - Usabilidade: A interface do usuário deve ser intuitiva e fácil de usar, mesmo para
usuários com pouca experiência em aplicativos móveis. O design deve seguir as diretrizes de
Material Design (para Android) e Human Interface Guidelines (para iOS) de forma consistente, ou
um design customizado claro.
RNF003 - Segurança: Os dados dos usuários (informações pessoais, senhas) devem ser
armazenados de forma segura (ex: senhas hasheadas). A comunicação entre o aplicativo cliente
50
(Flutter) e o backend (Supabase) deve ser criptografada (HTTPS/TLS). Lojistas só devem poder
modificar os dados de suas próprias lojas (via Row Level Security no Supabase).
RNF004 - Confiabilidade: O sistema deve estar disponível para uso 99% do tempo. Os dados de
preços exibidos devem ser precisos e refletir a última informação disponível no banco de dados.
RNF007 - Escalabilidade (Backend): A infraestrutura do Supabase deve ser capaz de lidar com
um aumento gradual no número de usuários, produtos e lojas no município do Cuito sem
degradação significativa do desempenho (dentro dos limites do plano escolhido).
RNF008 - Privacidade: O sistema deve respeitar a privacidade dos dados do usuário, informando
como os dados são coletados e usados (se aplicável, uma política de privacidade simples). Dados
de localização só devem ser usados com permissão do usuário e para a funcionalidade de
proximidade.
RNF009 - Atualização de Dados: A informação de preços deve ser facilmente atualizável pelos
lojistas ou administradores, e o sistema deve indicar claramente a data/hora da última atualização
de um preço para o consumidor.
RNF010 - Eficiência no Uso de Recursos (Dispositivo): O aplicativo móvel não deve consumir
excessivamente a bateria ou os dados móveis do dispositivo do usuário. Deve haver um esforço
para otimizar o tamanho do aplicativo e o uso de rede.
Tipo de
Id Desejo (ação) Objetivo/benefício Prioridade
usuário
Me cadastrar no aplicativo Eu possa salvar minhas
Consumidor(a
1 usando meu e-mail e uma preferências e acessar Alta
)
senha funcionalidades personalizadas
51
Consumidor(a Fazer login no aplicativo Eu possa acessar minha conta e
2 Alta
) com meu e-mail e senha minhas listas de compras
Pesquisar um produto Eu possa ver onde ele está
Consumidor(a
3 específico pelo nome (ex: disponível e comparar seus Alta
)
"arroz tio João 5kg") preços
Ver uma lista de lojas que
vendem o produto que
Consumidor(a Eu possa identificar a opção
4 pesquisei, com o preço em Alta
) mais barata e recente
cada uma e a data da última
atualização
Ver os detalhes de uma loja
Consumidor(a Eu possa decidir se vale a pena ir
5 (nome, endereço, contato) e Média
) até lá
sua localização no mapa
Filtrar as lojas por
Consumidor(a Eu possa encontrar as ofertas
6 proximidade há minha Média
) mais convenientes para mim
localização atual
Criar uma lista de compras
Consumidor(a Eu possa me organizar e não
7 e adicionar produtos que Média
) esquecer de nada
pretendo comprar
Ver o custo total estimado
Consumidor(a da minha lista de compras, Eu possa planejar meu
8 Baixa
) considerando os preços orçamento
mais baixos encontrados
Poder navegar por Eu possa descobrir produtos e
Consumidor(a
9 categorias de produtos (ex: ofertas mesmo sem saber o nome Média
)
"grãos", "higiene") exato
Poder submeter o preço de
um produto que encontrei Eu possa ajudar outros
Consumidor(a
10 em uma loja física não consumidores e manter a Baixa
)
listada ou com preço plataforma atualizada
desatualizado
11 Consumidor(a Ver uma indicação clara da Eu possa ter uma ideia da Alta
) data e hora da última confiabilidade da informação
52
atualização de um preço
Solicitar o cadastro da Meus produtos e preços possam
12 Proprietário(a) Alta
minha loja no aplicativo ser vistos pelos consumidores
Fazer login no aplicativo Eu possa gerenciar as
13 Lojista com minhas credenciais de informações da minha loja e Alta
lojista produtos
Adicionar novos produtos
ao catálogo da minha loja,
Os consumidores possam
14 Lojista informando nome, Alta
encontrá-los
descrição, categoria e preço
inicial
Atualizar rapidamente o A informação exibida aos
15 Lojista preço de um produto consumidores seja sempre a mais Alta
existente na minha loja recente
Indicar se um produto está
em promoção ou com
16 Lojista Eu possa atrair mais clientes Média
desconto especial na minha
loja
Visualizar um painel
simples com as
17 Lojista informações dos produtos Eu possa ter um controle fácil Média
que cadastrei e seus
respetivos preços atuam
Poder marcar um produto Os consumidores não sejam
18 Lojista como "indisponível" direcionados há minha loja por Média
temporariamente um item que acabou
53
Referências
Anderson, D. J. (2010). Kanban: Successful Evolutionary Change for Your Technology
Business. Blue Hole Press.
Baye, M. R., Morgan, J., & Scholten, P. (2006). Information, search, and price dispersion.
In T. Hendershott (Ed.), Handbook on Economics and Information Systems (Vol. 1, pp.
323-371). Elsevier.
Beck, K., Beedle, M., van Bennekum, A., Cockburn, A., Cunningham, W., Fowler, M.,
Grenning, J., Highsmith, J., Hunt, A., Jeffries, R., Kern, J., Marick, B., Martin, R. C.,
Mellor, S., Schwaber, K., Sutherland, J., & Thomas, D. (2001). Manifesto for Agile
Software Development. Agile Alliance. [Link]
Beck, K., & Andres, C. (2004). Extreme Programming Explained: Embrace Change (2nd
ed.). Addison-Wesley Professional.
Bhargava, H. K., Kim, B., & Merchants, S. (2020). Emerging trends in economics of
information systems. Management Science, 66(4), 1813-1826.
Dart Docs. (n.d.). Dart programming language. [Link]
DATAREPORTAL. (2024). Digital 2024: Angola.
Flanagan, D. (2020). JavaScript: The Definitive Guide (7th ed.). O'Reilly Media.
Flutter Docs. (n.d.). Flutter - Build apps for any screen. [Link]
Git SCM Docs. (n.d.). Git Documentation. [Link]
GitHub Docs. (n.d.). GitHub Docs. [Link]
Google Play Console Help. (n.d.). Google Play Console Help.
[Link]
Lynch Jr, J. G., & Ariely, D. (2000). Wine online: Search costs affect competition on price,
quality, and distribution. Marketing science, 19(1), 83-103.
Mell, P., & Grance, T. (2011). The NIST Definition of Cloud Computing (NIST Special
Publication 800-145). National Institute of Standards and Technology.
[Link]
Poppendieck, M., & Poppendieck, T. (2003). Lean Software Development: An Agile
Toolkit. Addison-Wesley Professional.
PostgreSQL Docs. (n.d.). PostgreSQL Documentation. [Link]
Pressman, R. S., & Maxim, B. R. (2016). Engenharia de Software: Uma Abordagem
Profissional (8ª ed.). McGraw-Hill.
54
Schwaber, K., & Sutherland, J. (2020). The Scrum Guide. [Link].
[Link]
Sommerville, I. (20--). Engenharia de Software. Pearson.
Stauffer, M. (2019). Laravel: Up & Running (3rd ed.). O'Reilly Media.
Supabase Docs. (n.d.). Supabase Documentation. [Link]
Visual Studio Code Docs. (n.d.). Visual Studio Code Documentation.
[Link]
Armbrust, M., Fox, A., Griffith, R., Joseph, A. D., Katz, R., Konwinski, A., Lee, G.,
Patterson, D., Rabkin, A., Stoica, I., & Zaharia, M. (2010). A view of cloud computing.
Communications of the ACM, 53(4), 50–58. [Link]
Elmasri, R., & Navathe, S. B. (2015). Fundamentals of database systems (7th ed.). Pearson.
Highsmith, J. (2009). Agile project management: Creating innovative products (2nd ed.).
Addison-Wesley Professional.
Moniruzzaman, A. B. M., & Hossain, S. A. (2013). NoSQL database: New era of databases
for big data analytics - Classification, characteristics and comparison. International Journal
of Database Theory and Application, 6(4), 1–14.
Subashini, S., & Kavitha, V. (2011). A survey on security issues in service delivery models
of cloud computing. Journal of Network and Computer Applications, 34(1), 1–11.
[Link]
Apple. (n.d.). Human interface guidelines. Apple Developer.
[Link]
Gartner. (2023). Top strategic technology trends for 2024. Gartner Research.
Google. (n.d.). Material Design. [Link]. [Link]
55