Categoriza Brasil
Ecossistema para classificação sanitária de serviços de alimentação, conectando conteúdo público, estabelecimentos e gestão institucional.
- Papel
- Desenvolvimento full stack
- Período
- 2023 – 2025
- Tipo
- Plataforma pública

O problema
A classificação sanitária de bares, restaurantes e padarias precisava sair do papel e virar informação pública consultável, sem perder o controle institucional de quem emite e mantém cada selo.
Requisitos
Funcionais
- Cadastrar estabelecimentos com selo A, B ou C, categoria, endereço, coordenadas, contato, data da inspeção e foto de capa.
- Preencher o cadastro pela busca do Google Places e ajustar a posição arrastando o marcador no mapa.
- Mostrar ao público o mapa dos estabelecimentos publicados, com agrupamento dos marcadores.
- Publicar notícias com galeria, publicações e páginas institucionais pelo painel.
- Organizar a mídia em pastas, com arquivos no storage S3.
- Manter uma newsletter com descadastro por link.
- Criar contas com verificação de e-mail por PIN, com acesso ao painel liberado por um administrador.
Não funcionais
- Separar os domínios em módulos dentro de um único monólito.
- Aplicar CSP, rate limit no login e no cadastro e validação de uploads pelo conteúdo do arquivo.
- Registrar as ações administrativas com usuário, ação, alvo e IP.
- Recusar a inicialização contra um banco sem migrações e bloquear comandos destrutivos fora do ambiente local.
Minha contribuição
Desenvolvi a plataforma como um monólito modular em Laravel, com seis domínios separados (site público, painel administrativo, identidade, contas, clientes de aplicação e área institucional). A peça central é o cadastro de estabelecimentos integrado à API do Google Places. A busca com autocomplete traz nome, endereço quebrado em campos, coordenadas, telefone, site e foto de capa, e ainda traduz as categorias do Google para as categorias sanitárias da plataforma. Arrastar o marcador no mapa dispara geocodificação reversa. A primeira versão da interface usava Vue com Pinia, e migrei tudo para Livewire 4, o que removeu cerca de 2 mil linhas e deixou a aplicação em uma única stack. Também construí o CMS de publicações e mídia com storage S3, o mapa público com clusterização em Leaflet e a camada de segurança, com CSP, rate limit no login e no cadastro, upload validado pelo conteúdo do arquivo, verificação de e-mail por PIN e registro das ações administrativas. Em produção, a aplicação se recusa a subir contra um banco sem migrações e bloqueia comandos que apagariam um banco que não seja local.
Destaques do projeto
- 6domínios no mesmo monólito
- 1 buscapreenche o cadastro do estabelecimento
- −2 millinhas na troca de Vue por Livewire
Tecnologias
Laravel 12, Livewire 4, Alpine.js, PostgreSQL, Google Places API, Leaflet, Tailwind CSS, S3, Docker
Modelo de dados


Telas do sistema
