Lalabase
Tickets, Doku, Zeiterfassung und Kundengespräche an einem Ort, durchsuchbar per KI. Für Softwarefirmen mit Kundenprojekten. Open Source: auf deinem eigenen Server oder in unserer Cloud in Deutschland.
翻譯準備中
尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證正在載入完整 README。 以下為已儲存的摘錄。
CidadeIA — Sistema Operacional Inteligente para Gestão Municipal Projeto real (Next.js + banco de dados + autenticação), separado do site de vendas. Este é o produto de verdade — login, cadastro de prefeitura, dashboard e IA Central conectada.檢視完整 README ↗
Projeto real (Next.js + banco de dados + autenticação), separado do site de vendas. Este é o produto de verdade — login, cadastro de prefeitura, dashboard e IA Central conectada.
jose), senha
com hash bcrypt. Sem dependência de serviço de terceiro.@anthropic-ai/sdk, respondendo com base SOMENTE nos dados
reais cadastrados (nunca inventa números).npm install
cp .env.example .env
Edite o .env:
AUTH_SECRET: gere com node -e "console.log(require('crypto').randomBytes(32).toString('hex'))"ANTHROPIC_API_KEY: opcional para rodar o site, mas necessária pra IA
Central responder de verdade. Gere em https://console.anthropic.com/settings/keys
Sem essa chave, a IA Central mostra uma mensagem explicando que precisa
ser configurada — o resto do site funciona normalmente.Depois:
npx drizzle-kit migrate # cria as tabelas no banco local.db
npm run dev # http://localhost:3000
Acesse http://localhost:3000 → você será redirecionado para /login →
clique em Cadastrar Prefeitura para criar sua primeira conta.
src/
├── app/ # Next.js App Router
│ ├── api/ # API routes (server-side)
│ ├── dashboard/ # Dashboard autenticado
│ ├── login/ # Página de login
│ ├── cadastro/ # Onboarding de prefeituras
│ ├── globals.css # Estilos globais com Tailwind v4
│ └── layout.tsx # Layout raiz
├── components/ # Componentes React reutilizáveis
├── db/ # Schema Drizzle ORM
├── lib/ # Funções e utilitários
│ ├── sessao.ts # Gerenciamento de sessão JWT
│ ├── ia.ts # Integração com IA Anthropic
│ ├── planos.ts # Lógica de planos e add-ons
│ └── ... # Outros utilitários
└── proxy.ts # Middleware de proxy/autenticação
jose, senhas com hash bcryptBanco de dados: crie um banco gratuito em https://turso.tech (libSQL
hospedado) e configure DATABASE_URL e DATABASE_AUTH_TOKEN no seu
provedor de hospedagem.
Variáveis de ambiente em produção:
AUTH_SECRET segura: node -e "console.log(require('crypto').randomBytes(32).toString('hex'))"ANTHROPIC_API_KEY se usar IA CentralNEXT_PUBLIC_APP_URL com seu domínio em produçãoDeploy no Vercel:
npm i -g vercel
vercel
Adicione as variáveis no painel do Vercel antes de fazer deploy.
Hospedagem: Vercel é o caminho mais simples para Next.js
(vercel.com → importar o repositório → configurar as variáveis de
ambiente do .env no painel do projeto).
Rode npx drizzle-kit migrate apontando pro banco de produção antes do
primeiro deploy (ou configure isso como parte do seu processo de build).
/dashboard/* (redireciona pra login se não autenticado)proxy.ts) e também na IA Central (o
contexto que a IA recebe já vem filtrado pelo cargo de quem pergunta).src/
app/
login/ → tela de login + esqueci senha
cadastro/ → wizard de 4 etapas
dashboard/
page.tsx → Visão Geral
ia/ → IA Central (chat real)
alertas/ → CRUD de alertas
configuracoes/ → dados da prefeitura
secretarias/ → Saúde, Educação, Obras, Licitações (Fase 3)
db/
schema.ts → todas as tabelas (Drizzle)
lib/
sessao.ts → JWT em cookie httpOnly
senha.ts → hash/verificação bcrypt
documento.ts → validação de CPF/CNPJ
ia.ts → lógica da IA Central (contexto real + chamada à Anthropic)
dados-prefeitura.ts → funções de leitura do banco
proxy.ts → protege rotas /dashboard/* (antigo "middleware")
/dashboard/historico, só prefeito/admin):
gráficos de tendência real — cada atualização de indicador (financeiro,
saúde, educação) já vira uma linha nova no banco, então o histórico se
acumula sozinho conforme o uso. Os gráficos só aparecem quando há pelo
menos 2 registros reais; com menos que isso, mostra uma mensagem
explicando a limitação em vez de inventar uma linha de tendência.
A partir de 3 registros reais, cada gráfico soma uma linha
tracejada de projeção estatística simples (src/lib/projecao.ts):
regressão linear sobre o histórico real, com nível de confiança
(baixa/média/alta) calculado a partir da quantidade de pontos e do R².
Essa mesma projeção (pra saldo financeiro) também entra no contexto
da IA Central quando o plano Gestão está ativo — o system prompt
instrui explicitamente a nunca apresentá-la como algo mais confiável
do que uma regressão simples. Também tem um simulador financeiro
(calculadora de "e se a receita/despesa variar X%", aritmética direta
e transparente, identificada como calculadora).
O que isso NÃO é: um gêmeo digital de verdade, nem previsão de
risco de saúde, evasão escolar, atraso de obras etc. — isso exigiria
um modelo estatístico multivariável treinado com anos de dados reais
e validado contra o que de fato aconteceu, que este sistema ainda não
tem tempo de acumular. A regressão linear simples é uma direção
aproximada de curtíssimo prazo (~30 dias), não uma simulação.@react-pdf/renderer
(gera PDF de verdade no servidor, sem precisar de navegador headless —
mais leve e confiável em produção/serverless que Puppeteer). Dois
tipos: Relatório Executivo (financeiro + alertas + resumo de todas
as secretarias, só prefeito/admin) e Relatório por Secretaria
(indicadores + lista de itens daquela área — prefeito/admin baixa
qualquer um, secretário só o da própria secretaria). Botão "Baixar
relatório (PDF)" na Visão Geral e em cada página de secretaria. Testei
extraindo o texto de dentro do PDF gerado pra confirmar que os valores
reais (receita, alerta cadastrado, unidade de saúde) aparecem
corretos — nada de conteúdo de exemplo. Os relatórios específicos por
destinatário mencionados na visão original (Vice-Prefeito, Câmara
Municipal, Tribunal de Contas, Audiências Públicas) ainda não têm
formatação própria — hoje usam o mesmo Relatório Executivo/por
secretaria; adaptar o layout para cada público é um próximo passo
natural, não uma limitação de dados.