Pular para o conteúdo

Fotos GEFI, case de ia (2026)

Fotos GEFI, 2026: aplicativo, ia

Resumo

O Fotos GEFI (SnapFinder) é o acervo privado de fotos do Grupo Escoteiro Franca do Imperador. Cada pasta do Google Drive vira um álbum de sábado, e pais, jovens e escotistas encontram as fotos em que aparecem enviando uma selfie, em vez de rolar centenas de imagens. O acesso é restrito a membros identificados pelo Registro Escoteiro ou CPF, e a chefia faz a curadoria dos álbuns. Feito com TanStack Start, React 19, Tailwind 4, Supabase e Google Drive, com reconhecimento facial ArcFace.

Read in English

Fotos GEFI (SnapFinder) is the private photo archive of the Franca do Imperador Scout Group. Each Google Drive folder becomes a Saturday album, and parents, youth members and leaders find the photos they appear in by sending a selfie, instead of scrolling through hundreds of images. Access is restricted to members identified by Scout Registration or CPF, and the group leadership curates the albums. Built with TanStack Start, React 19, Tailwind 4, Supabase and Google Drive, with ArcFace face recognition.

Contexto

O Grupo Escoteiro Franca do Imperador tem atividades aos sábados, e cada uma gera centenas de fotos guardadas em pastas do Google Drive. Para uma família achar o filho, era preciso abrir álbum por álbum e rolar imagem por imagem.

O Fotos GEFI mantém o Drive como fonte e coloca por cima uma busca por rosto, acesso restrito e curadoria. Usam pais e responsáveis, jovens e escotistas; a chefia, com três contas de administração, sincroniza os álbuns e aprova o que aparece. Por serem fotos de crianças, a privacidade veio antes da conveniência.

PROBLEMA

Achar as fotos de um jovem exigia abrir álbum por álbum e rolar centenas de imagens no Drive.

Descobertas e Decisões

Detectar no navegador, reconhecer no servidor

O face-api detecta o rosto no aparelho, e o vetor ArcFace é gerado numa API Python (insightface), comparado em memória com um catálogo de rostos em cache por 15 minutos. O recorte enviado deixou de ser esticado em 128×128 e passou a ser quadrado, de 256 px e com margem, porque o detector do ArcFace precisa ver o rosto inteiro sem distorção.

Curadoria com duas assinaturas

Nenhum álbum é publicado sem a aprovação de duas pessoas diferentes da chefia, e a mesma pessoa não assina duas vezes. Ao publicar, as fotos recusadas saem do catálogo e do Drive e entram numa lista de expurgadas, para nunca voltarem à fila.

Login sem senha para as famílias

Membros e pais entram com Registro Escoteiro ou CPF, sem senha, porque o público inclui pais pouco técnicos. Só administradores confirmam com senha. Convidados pedem acesso por formulário e, aprovado pela chefia, o acesso vale 30 dias. As senhas fixas de admin foram removidas: o papel vem do cadastro.

O Google Drive como fonte das fotos

As fotos continuam onde a chefia já as guarda. O app lê as pastas pela API do Drive e indexa os rostos no Supabase, então subir uma foto é colocá-la na pasta do sábado, sem upload em outro sistema.

Independente da plataforma de origem

O projeto foi desvinculado do Lovable e passou a operar com Supabase, Google Drive e Node.js na Hostinger. Há limite de pedidos por IP e por pessoa nas ações sensíveis (login, busca e feedback de rosto), tabelas de fotos trancadas no banco e chaves apenas no servidor.

Processo

Recuperação do código

Em 13/10/2026 o projeto foi recuperado de um backup da Hostinger, com README, guia de deploy e guia para conectar o Google Drive.

Indexação dos álbuns

Scripts sincronizam as pastas do Drive e processam cada álbum, extraindo rostos e gravando os vetores no Supabase, com auditorias de duplicadas e de contagem de rostos.

Busca e curadoria

Busca com ArcFace e limiar padrão de 0,48 de similaridade, verificação rápida com feedback positivo e negativo guardado, fluxo de aprovação e arquivamento por álbum.

Publicação e orientação

Deploy Node.js na Hostinger, com cookie seguro e HSTS em produção, e um tutorial de cinco passos dentro do app para quem usa pela primeira vez.

Visão Geral

Cada sábado escoteiro, achado pelo rosto.

Acesso por Registro Escoteiro, CPF ou código de convidado.

Fotos GEFI: tela de acesso por Registro Escoteiro, CPF ou código de convidado

Funcionalidades

Busca por rosto

O navegador detecta o rosto da selfie (face-api) e o servidor gera o vetor ArcFace, que é comparado com os rostos já indexados no Supabase. A pessoa vê só as fotos em que aparece. A verificação rápida, com respostas Sim e Não, treina a busca, e o perfil aceita várias fotos do mesmo rosto.

Selfie

ArcFace

Verificação rápida

Perfil com várias fotos

Álbuns do Google Drive

Cada pasta do Drive vira um álbum, uma por atividade de sábado, organizados por ano e data. Quando a mesma foto existe em versão editada e em original, o app agrupa as duas e mostra a melhor.

Google Drive

Por ano

Editada e original

Minhas fotos primeiro

Ao abrir um álbum, as fotos em que a pessoa aparece sobem para o topo, com o selo “Você” e o índice de correspondência facial. A família não precisa procurar foto por foto.

Selo “Você”

Ordem automática

Por álbum

Visualizador de foto

Com a foto aberta, é possível marcar quem aparece, calibrar a IA, alternar entre editada e original, favoritar e baixar a original em alta definição. As favoritas ficam numa galeria pessoal.

Marcar pessoas

Favoritar

Baixar original

Tutorial do app, passo 3: busca inteligente com selfie, verificação rápida e treino da IA
Tutorial do app, passo 2: álbuns do grupo filtrados por ano
Tutorial do app, passo 4: Minhas fotos primeiro, com o selo Você e a correspondência facial
Tutorial do app, passo 5: ações no visualizador de foto, como marcar pessoas, favoritar e baixar a original

Resultado

Os pais encontram mais fotos, e mais rápido.

2

assinaturas de pessoas diferentes para publicar um álbum

1 pasta

do Drive por sábado: colocar a foto na pasta é o upload

5

passos de tutorial dentro do app

Os pais conseguem achar mais fotos, em menos tempo, e o tempo para subir uma foto ficou menor porque o app é vinculado ao Google Drive. Não há medição registrada: os números acima descrevem a estrutura do app, não um ganho medido.

Stack

  • TanStack Start
  • React 19
  • TypeScript
  • Tailwind 4
  • Supabase
  • Google Drive API
  • face-api (navegador)
  • ArcFace / insightface
  • Hugging Face Space
  • Hostinger Node.js
  • Servidor Node.js na Hostinger; a API Python do ArcFace roda à parte, em um Space do Hugging Face, e é chamada com chave compartilhada. Segredos só no servidor.

Quer um projeto assim?

Conte o que você precisa. Respondo com escopo, prazo e valor, sem enrolação.

Pedir orçamento