Synaplan
開源 AI 平台,供企業使用:自行託管的 AI 代理、符合 GDPR 的聊天機器人小工具、RAG 知識庫、WhatsApp 與 Outlook AI、MCP、多模型路由。Docker、Kubernetes 或託管於 Germ
AI 翻譯
尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
CONTROLE TRANSPORTE: painel de gestão, área do frentista, documentação e testes.
翻譯準備中
正在載入完整 README。
檢視完整 README ↗Sistema interno do posto para lançar abastecimentos de veículos de instituições conveniadas, controlar a Oficina (estoque e entrega de peças por veículo) e fechar a cobrança mensal de cada instituição.
Duas áreas, um banco:
/): visão geral, abastecimentos, Oficina, cadastros (instituições, veículos, pessoas, contratos), fechamento mensal, combustíveis e preços, equipe e acessos./frentista): lançamento rápido de abastecimento pelo celular, histórico da própria conta e Oficina. A rota mantém o nome técnico antigo; na interface o perfil se chama "colaborador".A administração busca novos registros a cada 5 segundos enquanto a aba está visível.
components/), Radix Select e animações do React Bits (respeitam "reduzir movimento").| Caminho | Conteúdo |
|---|---|
app/dashboard.tsx | Painel administrativo |
app/frentista/ | Área do colaborador |
app/workshop.tsx | Interface da Oficina (usada nas duas áreas) |
app/auth-screens.tsx | Login por perfil, primeiro acesso, esqueci/redefinir senha e convite |
app/api/data/ | Cadastros, abastecimentos, equipe e permissões |
app/api/workshop/ | Operações da Oficina (transacionais) |
app/api/convite/, app/api/setup/ | Aceite de convite e criação do primeiro administrador |
lib/auth.ts, lib/permissions.ts | Configuração do Better Auth e perfis |
lib/invites.ts | Links de convite |
lib/email.ts | Envio de e-mail (Resend) |
components/ | Campos, selects, modal, toolbar, link de convite e animações |
db/, drizzle/ | Esquema e migrações do banco |
tests/ | Testes de integração e da Oficina |
docs/ | Especificações e regras de negócio |
admin (administrador) e attendant (colaborador). As permissões são sempre verificadas no servidor.RESEND_API_KEY, o link aparece no terminal do servidor.Requer Node.js 24 e pnpm 11.
pnpm install.vercel env pull .env.local (o projeto precisa estar vinculado com vercel link).pnpm db:migrate.pnpm dev (abre em http://127.0.0.1:3000).Outros comandos: pnpm exec tsc --noEmit (tipos), pnpm lint, pnpm build, pnpm db:generate (gera migração depois de alterar db/schema.ts).
| Variável | Uso |
|---|---|
DATABASE_URL | Conexão do app com o Neon (pool) |
DATABASE_URL_UNPOOLED | Conexão direta, usada nas migrações e nos testes |
BETTER_AUTH_SECRET | Segredo das sessões (obrigatório, nunca versionar) |
BETTER_AUTH_URL | URL pública do app; na Vercel, se ausente, usa a URL de produção do projeto |
RESEND_API_KEY | Envio de e-mail; obrigatória em produção |
EMAIL_FROM | Remetente dos e-mails, de um domínio verificado no Resend (sem ela, usa o remetente de teste [email protected], que só entrega para o dono da conta Resend) |
.env.local está no .gitignore e não deve ser versionado.
Com o servidor rodando (pnpm dev), em outro terminal:
pnpm test # os dois conjuntos
pnpm test:integracao # login, abastecimentos e permissões (22 verificações)
pnpm test:oficina # estoque, planejamento, entregas e concorrência (28 verificações)
Os testes entram com as contas de teste (TEST_ADMIN_EMAIL/TEST_ADMIN_PASSWORD e TEST_COLAB_EMAIL/TEST_COLAB_PASSWORD, com padrão nas contas locais), criam registros fictícios e, ao final, removem só o que criaram. Rode apenas contra um banco de desenvolvimento, nunca contra o banco com dados reais.
Produção: https://gestaotransportece.com.br (também em https://controle-de-transporte-one.vercel.app)
O projeto da Vercel está conectado a VINICIUSCANINDE/posto-vn:
main publica em produção automaticamente.db/schema.ts exigem pnpm db:migrate contra o banco de produção antes do push que depende delas.Pendente: verificar o domínio de envio no Resend e configurar RESEND_API_KEY e EMAIL_FROM na Vercel.
CHECK no banco e baixa em transação. Regras completas em docs/03-modulo-oficina.md.Detalhes de funcionamento em docs/implementacao-atual.md.