SaaS Operacional·2026

Fresh Cleaning 4U

Ponto com geofence · faturamento GST automatizado

Tela do projeto Fresh Cleaning 4U
Papel
Engenheiro único: modelagem de domínio, implementação, testes e deploy
Período
2026 · MVP entregue em sprints

Resumo

Software operacional para uma empresa australiana de limpeza residencial: clientes, jobs recorrentes, calendário de despacho, funcionários batendo ponto em campo, faturas com GST e folha de pagamento. O interessante não é o CRUD. É a engine de recorrência e o dinheiro.

Arquitetura e decisões

  • Dinheiro nunca é float. Todos os valores são Decimal de ponta a ponta, e o GST (10%) é derivado na emissão em vez de armazenado, então mudar a alíquota não reescreve o histórico silenciosamente.
  • Timestamps são gravados em UTC e exibidos em AEST. A regra é aplicada na fronteira, então a engine de recorrência nunca raciocina em hora local e o horário de verão não distorce a agenda.
  • A engine de jobs recorrentes materializa ocorrências a partir de uma regra (ex.: a cada 3 semanas) em vez de clonar linhas, então editar a regra não órfã o futuro.
  • O app do funcionário é um PWA offline-first: o profissional num subsolo sem sinal ainda bate o ponto, e o evento sincroniza quando a rede volta.
  • O ponto tem geofence (raio de 200 m contra o endereço do job). A verificação é no servidor, já que localização reportada pelo cliente é sugestão, não prova.
  • Faturas são renderizadas em PDF no servidor (@react-pdf/renderer), então o documento é idêntico independente do aparelho que pediu.

Desafios

Problema: O celular do profissional perde sinal no meio do turno. O ponto não pode se perder.

Solução: O PWA enfileira o evento de ponto localmente com as coordenadas capturadas e o reenvia ao reconectar. O geofence é avaliado no servidor, no reenvio, contra as coordenadas e o timestamp gravados. Estar offline nunca vira um jeito de furar a checagem.

Resultados

  • Engine de jobs recorrentes, ponto com geofence e faturamento com GST entregues
  • PWA offline-first do funcionário com eventos de ponto enfileirados
  • Lembretes por SMS (Twilio) e cálculo de folha a partir das horas registradas
  • CI obrigatoriamente verde antes do merge; suítes Vitest + Playwright

Stack

Núcleo

Next.js 15React 19TypeScript strict

Dados

PostgreSQL 16Prisma 6Decimal money

Campo

PWA offline-firstGeolocationGeofence 200m

Integrações

Twilio SMSResend@react-pdf/renderer

Qualidade

VitestPlaywrightSentryDocker

Tecnologias

Next.js 15TypeScriptPrismaTwilioPlaywright

// vamos conversar

Começar um projeto

Me conta o que você precisa. Costumo responder em até um dia.

Carregando verificação…