Javis OS
Javis OS is an Agentic AI that assists entrepreneurs in business tasks, helping them grow their work.
AI translation
Sistema de gestão do escritório Fernandes Advocacia (criminal). Fase 1 — leitura.
Translation pending
BusinessTypeScript · CSSGitHub @DanielFernandesBiOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
The maker's introduction consists of the line above. Read the repository README for more details. Repository README ↗
Loading the full README.
Read the full README ↗Frontend do sistema de gestão do escritório Fernandes Advocacia (criminal).
Next.js (App Router) + @supabase/ssr + Supabase Auth + Tailwind, deploy no Vercel.
Fase 1 = SOMENTE LEITURA. As páginas leem com a sessão do usuário para que o RLS valha. A
service_rolenunca vai para o cliente (e nesta fase nem é usada). Doutrina do manual: prazos penais em dias corridos · gatevalidado=false· nunca deletar ·segredo_justicasempre sinalizado.
proxy.ts.proxy.ts.Copie .env.example para .env.local e preencha:
NEXT_PUBLIC_SUPABASE_URL=https://yaqrfftsnqqecoaqssij.supabase.co
NEXT_PUBLIC_SUPABASE_PUBLISHABLE_KEY=sb_publishable_...
[email protected] # Rodolfo entra aqui depois
NEXT_PUBLIC_SITE_URL=http://localhost:3000 # só no dev; no Vercel pode omitir (auto-detecta o domínio)
No Vercel,
NEXT_PUBLIC_SITE_URLé opcional: o redirect do magic link detecta o domínio atual pelos headers (funciona em produção e em previews). Defina apenas se quiser forçar um domínio fixo. Opackage.jsonestá na raiz do repositório, então o Root Directory no Vercel fica no padrão (./).
npm install
npm run dev # http://localhost:3000
ALLOWED_EMAILS (Daniel e, depois, Rodolfo).
O gate é aplicado em três camadas: na ação de envio, no proxy.ts e no callback./auth/confirm trata tanto o fluxo
PKCE (?code=, template padrão) quanto o token_hash (template SSR).{{ .ConfirmationURL }} por:
{{ .SiteURL }}/auth/confirm?token_hash={{ .TokenHash }}&type=emailproxy.ts # renova sessão + gate de acesso (Next 16)
app/login/ # tela de login (magic link) + server action
app/auth/confirm/route.ts # callback do magic link (PKCE e token_hash)
app/auth/signout/route.ts # logout
app/(app)/layout.tsx # shell: sidebar + topbar + drawer (busca badges ao vivo)
app/(app)/painel/ # Painel — ritual matinal (LIGADO ao banco)
app/(app)/<modulo>/ # demais módulos (em construção na sequência da Fase 1)
lib/supabase/ # clients browser/server + proxy (padrão @supabase/ssr)
lib/queries.ts # leituras das views/tabelas (badges + painel)
lib/allowlist.ts # allowlist de e-mails
components/ # Sidebar, Topbar, Drawer, UI (semáforo, pills, gate)...
vw_pendentes_validacao, vw_prazos_abertos, vw_intimacoes_orfas, vw_agenda_semana,
vw_financeiro_pendente, vw_situacao_cliente, vw_relatorio_diario,
vw_movimentacoes_recentes, vw_andamentos_orfaos.
Gravação pela sessão do usuário (RLS): a migração v2.5 adicionou políticas
INSERT/UPDATE para authenticated (DELETE segue bloqueado por trigger; nunca
deletar) e tornou fn_auditar SECURITY DEFINER para a auditoria funcionar sob RLS.
Toda gravação passa por um resumo + confirmação (regime chat) e é auditada.
Operações disponíveis: validar prazo/audiência (gate validado), dar baixa em prazo
(+ andamento), cancelar prazo, providência/arquivar intimação, mover/criar tarefa,
registrar andamento, criar prazo, cadastrar intimação, marcar parcela paga, rodar
fn_marcar_atrasados, decidir sugestões do sistema.
Ao validar um prazo, o app cria o marcador fatal vermelho (e recolore o provisório);
ao criar prazo, lança o evento provisório (Tangerina); audiência validada vira evento.
Configure uma service account com acesso de escrita ao calendário e defina
GOOGLE_CLIENT_EMAIL, GOOGLE_PRIVATE_KEY, GOOGLE_CALENDAR_ID (ver .env.example).
Sem essas variáveis, a validação grava só no banco (degradação segura — nunca derruba a gravação).