尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证制作者的介绍仅有上面的一句话。 更多详情请阅读仓库 README。 仓库 README ↗
正在加载完整 README。
查看完整 README ↗Aplicativo web (PWA, funciona no celular e pode ser instalado na tela inicial) para controlar a frota:
O sistema é multiempresa: cada cliente (empresa ou município) é uma organização, com os próprios veículos, usuários, parâmetros e histórico, totalmente separados dos demais (a placa só precisa ser única dentro da organização). Quem vende o sistema é o ADM; dentro de cada cliente há gestores e motoristas.
| Motorista | Gestor (da organização) | ADM (dono do sistema) | |
|---|---|---|---|
| Iniciar e finalizar viagem com fotos e GPS | ✅ só nos carros vinculados a ele | ✅ | ✅ |
| Ver avisos de óleo/revisão dos carros dele | ✅ (só leitura) | ✅ | ✅ |
| Cadastrar carro | ❌ | ✅ | ✅ |
| Registrar manutenção (óleo, revisão…) e ver histórico | ❌ | ✅ | ✅ |
| Medir pneus | ❌ | ✅ | ✅ |
| Painel da frota, viagens, fotos e rota de todos | ❌ | ✅ da organização | ✅ de todas |
| Parâmetros de manutenção (padrão e por carro) | ❌ | ✅ da organização | ✅ de todas |
| Vincular motoristas a carros | ❌ | ✅ | ✅ |
| Convidar pessoas, promover a gestor, desativar acesso | ❌ | ✅ da organização | ✅ |
| Cadastrar/suspender organizações | ❌ | ❌ | ✅ |
As permissões são garantidas no próprio banco (Row Level Security do Supabase), não só na tela. Organização suspensa ou usuário desativado perde o acesso na hora.
Como entra cada pessoa: o gestor (ou o ADM) gera um convite em Usuários e envia o link (/convite?c=CÓDIGO). A pessoa cria a conta, o convite a coloca na organização com o papel escolhido. Convites vencem em 7 dias (ajustável), valem uma vez e podem ser revogados.
Next.js 16 (App Router) · React 19 · Tailwind CSS 4 · Supabase (Postgres, Auth e Storage) · Tesseract.js
supabase/banco.sql. No GitHub, use o botão Copy raw file (ícone de copiar, no canto superior direito do arquivo).Se der algum erro, pode rodar o arquivo de novo: ele não apaga nada.
Atualizações do app: quando o
banco.sqlmudar, basta rodá-lo de novo do mesmo jeito. Ele adiciona o que falta e mantém os dados.
No Supabase, vá em Project Settings → API e copie a Project URL e a chave anon public. Crie um arquivo .env.local (copie o .env.example) e preencha:
NEXT_PUBLIC_SUPABASE_URL=cole-aqui-a-project-url
NEXT_PUBLIC_SUPABASE_ANON_KEY=cole-aqui-a-anon-key
Rode o app (npm install e depois npm run dev), abra http://localhost:3000 e clique em Cadastre-se.
A primeira conta criada vira ADM automaticamente. Depois, em Organizações, cadastre cada cliente e gere o convite do primeiro gestor dele; o gestor convida os próprios motoristas. Quem se cadastra sem convite fica na tela de código até ser convidado.
Atualizando um banco já em uso: rode o supabase/banco.sql de novo. Os dados existentes são mantidos e vão para uma organização chamada Frota própria (renomeie em Organizações); os usuários que eram comuns viram motoristas e o ADM promove quem for gestor.
Por padrão o Supabase pede confirmação por e-mail. Para testar mais rápido, desligue em Authentication → Sign In / Providers → Email → Confirm email.
Importe o repositório na Vercel, cadastre as duas variáveis NEXT_PUBLIC_SUPABASE_* e publique. Em Authentication → URL Configuration do Supabase, coloque a URL da Vercel como Site URL.
supabase/banco.sql banco completo: copiar e colar no SQL Editor
src/proxy.ts exige login em todas as páginas (exceto /login)
src/lib/ocr.ts leitura dos números nas fotos (Tesseract.js)
src/lib/regras.ts regras de óleo, revisão e pneus (TWI)
src/components/FotoNumero.tsx foto + leitura automática + campo para conferir
src/app/(app)/ telas de todos os usuários (o que aparece depende do papel)
src/app/(app)/admin/ painel do gestor/ADM, usuários, parâmetros e organizações