Javis OS
Javis OS는 기업가를 돕는 에이전시 AI로, 업무를 지원하고 함께 성장합니다
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기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.