Sistema SaaS Multi-Município

Gestão escalável de prescrições médicas para até 50 municípios

Saiba Mais
Implantado na Cloudflare Pages

Recursos Principais

Isolamento Total de Dados

Arquitetura Firestore hierárquica garante 100% de separação entre municípios

municipalities/{municipalityId}/...

Autenticação Avançada

Firebase Auth com Custom Claims: role, municipalityId, plan

✓ SuperAdmin Nacional
✓ Admin Municipal
✓ ACS e Farmácia

Cloud Functions

6 funções críticas para validação backend

✓ createUserWithClaims
✓ validateMunicipalityAccess
✓ checkPlanLimits

Planos SaaS

4 planos com limites automáticos de usuários e pacientes

💎 Free → Enterprise
📊 Validação no Backend
🚫 Bloqueio Automático

Auditoria Completa

Logs detalhados para compliance com licitação pública

📝 Usuário, Município, Ação
⏰ Data/Hora, IP
💾 Backup por Município

SuperAdmin Global

Visão nacional com acesso a todos os municípios

🌍 Gerencia Todos
📊 Métricas Globais
⚙️ Config. Planos

Planos SaaS

Free

R$ 0
  • ✓ 3 usuários
  • ✓ 1 unidade
  • ✓ 100 pacientes
  • ✓ Prescrições básicas

Basic

R$ 500/mês
  • ✓ 10 usuários
  • ✓ 3 unidades
  • ✓ 500 pacientes
  • ✓ Relatórios avançados
MAIS POPULAR

Professional

R$ 1.500/mês
  • ✓ 30 usuários
  • ✓ 10 unidades
  • ✓ 2.000 pacientes
  • ✓ Telemedicina

Enterprise

R$ 3.500/mês
  • ✓ Ilimitado
  • ✓ Ilimitado
  • ✓ Ilimitado
  • ✓ Todos os módulos

Potencial de Receita

Conservador: 50 municípios Professional = R$ 75.000/mês
Otimista: 100 municípios mixed = R$ 150.000/mês

Arquitetura

municipalities/
├── {municipalityId-1}/
│   ├── users/           ← Isolamento total
│   ├── patients/        ← por município
│   ├── prescriptions/
│   ├── units/
│   └── logs/
└── {municipalityId-2}/
    ├── users/           ← Outro município
    ├── patients/        ← completamente separado
    └── ...

Cloud Functions:
✓ createUserWithClaims(role, municipalityId)
✓ updateUserClaims(userId, newClaims)
✓ validateMunicipalityAccess(userId, municipalityId)
✓ checkPlanLimits(municipalityId, resource)
✓ logCriticalAction(userId, action, metadata)
✓ cleanupOldLogs(daysToKeep)

Firestore Rules:
• request.auth.token.municipalityId == municipalityId
• No cross-municipality access
• SuperAdmin bypass with token.role == 'superadmin'
                

Documentação Completa

README.md

Visão geral do projeto

DEPLOY_GUIDE.md

Guia de implantação

LICITACAO_COMPLIANCE.md

Conformidade licitatória

TESTES_VALIDACAO.md

Testes e validações

Stack Tecnológica

🎯

Frontend

Flutter Web + Dart

🔥

Backend

Firebase (Firestore + Functions + Auth)

☁️

Hosting

Cloudflare Pages (275+ POPs)

Pronto para Começar?

Configure seu projeto Firebase e inicie a gestão multi-município