Inspiração

Pequenos negócios, vendedores informais e prestadores de serviços em Moçambique frequentemente dependem de WhatsApp, Facebook e contactos diretos para divulgar produtos. Criar um anúncio visualmente consistente, escrever uma legenda convincente e manter um histórico confiável da origem do conteúdo exige tempo, ferramentas e competências que muitos vendedores não têm.

O Boladas-ponto-com nasceu para transformar informações simples — produto, preço em Meticais, localização, contacto, público e objetivo — num post pronto a publicar, mantendo a origem de cada ficheiro verificável.

O que faz

A aplicação gera conteúdo publicitário para redes sociais e organiza cada execução como um fluxo auditável:

  • imagem quadrada 1080×1080;
  • legenda, chamada para ação e hashtags;
  • composição determinística de nome, preço e CTA sobre a imagem;
  • manifesto de proveniência em JSON;
  • hash SHA-256 por ficheiro;
  • armazenamento durável no Backblaze B2;
  • verificação pública ao vivo contra os objetos atualmente existentes no bucket.

Além do gerador, a aplicação inclui perfis pessoais e empresariais, diretório de negócios, feed público, comparação de preços em Meticais, cálculo de proximidade por GPS, mensagens associadas aos produtos, comentários, reações e moderação.

Como foi construído

O backend e o frontend são servidos por uma aplicação FastAPI com Jinja2. Os utilizadores autenticam-se por sessão assinada e passwords protegidas com bcrypt. Os dados relacionais ficam numa base SQLite, enquanto os ativos gerados, legendas, miniaturas e manifestos ficam no Backblaze B2.

O Genblaze é usado para orquestrar a geração de imagem. A aplicação suporta dois provedores:

  • Gemini, através de um provider integrado no Pipeline do Genblaze;
  • GMICloud como alternativa.

A saída do modelo é normalizada para PNG quadrado. Depois, Pillow adiciona deterministicamente elementos comerciais como nome do negócio, preço e chamada para ação. Esse desenho híbrido evita depender de texto embutido por modelos de imagem, que frequentemente produz letras deformadas.

Backblaze B2 e proveniência

Cada post utiliza o seguinte layout:

posts/<post_id>/image.png
posts/<post_id>/caption.txt
posts/<post_id>/provenance.json
posts/<post_id>/thumbnail.webp

O upload não é considerado concluído apenas porque o objeto existe. Depois do envio, a aplicação descarrega novamente os bytes do B2, recalcula o SHA-256 e compara com o conteúdo local. Qualquer divergência impede que o post seja marcado como concluído.

A página pública de proveniência oferece uma verificação ao vivo: o sistema volta a descarregar cada ficheiro declarado no manifesto e apresenta o resultado individual. Se um objeto for substituído mantendo a mesma chave, a alteração é detetada.

Princípio: Nunca fingir

O produto segue uma regra simples: nunca apresentar uma operação não verificada como sucesso.

  • Falhas de armazenamento mantêm o post como failed.
  • O diagnóstico testa ligações reais ao B2 e aos provedores de IA.
  • Se a moderação por IA não responder, o estado é “não verificado”, não “limpo”.
  • Se a geração de imagem não estiver disponível por quota, a proveniência regista explicitamente que nenhuma imagem de IA foi gerada.
  • Quando todos os provedores falham, a aplicação conserva e apresenta as razões reais.

Desafios

Os maiores desafios foram integrar provedores diferentes sem contornar o Genblaze, verificar o conteúdo realmente armazenado no B2 em vez de confiar apenas em metadados e manter o produto funcional quando quotas gratuitas de geração de imagem ficam indisponíveis.

Outro desafio foi adaptar o fluxo ao uso móvel e à realidade de pequenos negócios: publicação individual simples por omissão, suporte a empresas com vários gestores, preços em Meticais, contacto direto e páginas públicas partilháveis sem exigir conta do visitante.

Realizações

  • Pipeline real de geração integrado ao Genblaze.
  • Armazenamento e revalidação criptográfica no Backblaze B2.
  • Proveniência pública e verificável por qualquer visitante.
  • Arquitetura multi-provider com erros transparentes.
  • Plataforma completa para utilizadores individuais e empresas.
  • Moderação local, por IA e por reporte humano.
  • Interface responsiva para telemóveis.
  • Mais de 115 testes automatizados documentados no repositório.

Próximos passos

Os próximos passos incluem ampliar testes de produção, melhorar observabilidade, adicionar métricas de utilização, facilitar a exportação direta para diferentes redes sociais e validar o produto com mais vendedores e pequenos negócios moçambicanos.

Built With

Share this project:

Updates