Todos os projetos

SaaS multi-tenant para condomínios

Recebe Avisa

Recebe, registra e avisa. Sozinho.

Ano
2026
Papel
Produto · Backend · Frontend · Infraestrutura · Observabilidade
Status
MVP em desenvolvimento

Repositório privado — este case é o registro público do projeto. A demonstração pública está sendo preparada com ambiente isolado e dados fictícios.

O problema

Encomenda em condomínio ainda é resolvida com caderno, planilha ou grupo de WhatsApp. O porteiro anota à mão em horário de pico, o morador só descobre que chegou quando passa na portaria, e quando algo se perde não existe registro de quem recebeu nem de quem retirou. O atrito é diário e recai sobre a portaria.

A solução

O porteiro fotografa a etiqueta pelo próprio navegador do celular. A API lê o texto com OCR, encontra o morador por busca fuzzy no cadastro e dispara o aviso pelo canal preferido — WhatsApp, Telegram ou e-mail — com fallback automático se o primeiro falhar. A retirada fecha o ciclo e deixa o registro auditável.

Decisões técnicas

  1. 01

    O OCR nunca bloqueia o registro

    A rota de scan responde sucesso sempre. Se o OCR falhar, vier ilegível ou com baixa confiança, o fluxo cai em modo degradado: a etiqueta é registrada mesmo assim e o porteiro confirma o morador a partir de sugestões ou da busca manual. Portaria em horário de pico não pode parar por causa de uma etiqueta amassada — e essa é a diferença entre um sistema que é usado e um que é abandonado na primeira semana.

  2. 02

    Busca fuzzy em vez de correspondência exata

    O nome impresso na etiqueta quase nunca bate com o cadastro: vem abreviado, com o nome de quem comprou, sem acento ou com erro do remetente. A identificação usa pg_trgm com apelidos cadastrados por morador, devolvendo sugestões ranqueadas em vez de um acerto ou erro binário.

  3. 03

    Multi-tenant por coluna, filtrado em toda query

    Cada tabela carrega o identificador do condomínio e nenhuma query cruza tenants — é regra de arquitetura, não convenção. Um SaaS de condomínio que vaze dado entre clientes não tem segunda chance comercial.

  4. 04

    Dado pessoal fora da telemetria, com portão automatizado

    A telemetria é OpenTelemetry coletada por um agente que remove PII ainda dentro da VM, antes de qualquer coisa sair para fora. E há um verificador de PII rodando no CI que quebra o build se dado pessoal aparecer em span, métrica ou log. O portão não é teórico: um vazamento real, causado pela forma como o ORM interpola valores dentro do SQL, motivou a normalização das queries antes de virarem atributo de span.

  5. 05

    Custo zero como requisito de arquitetura

    O MVP inteiro roda em camada gratuita: VM ARM na Oracle Cloud, mil requisições de OCR por mês, WhatsApp Cloud API e observabilidade no plano free. Fila gerenciada e serviços pagos só entram a partir de cinquenta condomínios. Restrição de custo declarada desde o início evita a arquitetura que fica cara antes de ter cliente.

O que ficou pronto

  • API com autenticação por papéis, cadastro de moradores com apelidos, fluxo completo de registro e retirada e painel do síndico
  • 27 testes automatizados sobre a API (Jest + supertest)
  • CI/CD completo: imagem ARM64 publicada no registry, deploy por rede privada sem abrir nenhuma porta nova, smoke test e rollback automático
  • Observabilidade como código: dashboards versionados e 13 alertas, com notificação por Telegram
  • Infraestrutura em Terraform na Oracle Cloud, com expurgo de objetos em 30 dias e alerta de orçamento
  • Portaria funcional no ar em ambiente de teste

Stack

  • React 18
  • Vite
  • Node.js 20
  • Express
  • Sequelize
  • PostgreSQL 15 · pg_trgm
  • Cloud Vision OCR
  • WhatsApp Cloud API
  • Terraform · OCI