Synaplan
기업을 위한 오픈소스 AI 플랫폼
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
Sistema para o ponto de retirada: motorista chega, é anotado na Fila (nome + número da saca), sai pra escanear em outro app, volta e alguém confirma em Liberar se ele levou ou recusou a saca. Pacote faltante é reportado depois, já na aba Liberadas, quando o motorista termina de conferir. Sistema separado do restante do GBS/MNS — login e banco próprios. Stack: HTML/CSS/JS puro (sem build) + Supabase (banco + login) + deploy estático na Vercel.README 전문 보기 ↗
Sistema para o ponto de retirada: motorista chega, é anotado na Fila (nome + número da saca), sai pra escanear em outro app, volta e alguém confirma em Liberar se ele levou ou recusou a saca. Pacote faltante é reportado depois, já na aba Liberadas, quando o motorista termina de conferir. Sistema separado do restante do GBS/MNS — login e banco próprios.
Stack: HTML/CSS/JS puro (sem build) + Supabase (banco + login) + deploy estático na Vercel.
index.html — a página única do app (login + as 6 abas).app.js — toda a lógica, incluindo as chamadas ao Supabase.config.js — o único arquivo que você precisa editar para ligar o app ao seu projeto Supabase.sql/schema.sql — cria as tabelas, os índices e as regras de acesso (RLS) no Supabase.Crie uma conta/projeto em supabase.com (plano free serve).
No painel do projeto, abra SQL Editor > New query, cole o conteúdo de
sql/schema.sql e rode. Isso cria as tabelas usuarios_sacas, motoristas,
roster, fila e registros, já com a segurança (RLS) configurada.
Em Project Settings > API, copie a Project URL e a anon public key.
Abra config.js e cole os dois valores:
window.GESTAO_SACAS_CONFIG = {
supabaseUrl: "https://xxxxxxxx.supabase.co",
supabaseAnonKey: "eyJhbGciOi..."
};
A anon key é pública por natureza (todo app Supabase client-side expõe ela) — quem protege os dados é a regra de RLS do schema, que só libera quem tem login. Não tem problema esse arquivo ir pro GitHub.
O Supabase Auth exige e-mail, mas a tela de login do app só pede um usuário —
o app.js completa sozinho com o domínio fixo @gestaosacas.local antes de mandar
pro Supabase (isso é só uma formalidade técnica, não é um e-mail real). A tabela
usuarios_sacas diz quem é gestor. Repita para cada pessoa:
Authentication > Users > Add user — em e-mail, coloque
[email protected] trocando usuario pelo nome de login que a pessoa
vai digitar (ex.: [email protected] pro usuário ponto1). Defina uma
senha. Marque "Auto Confirm User" — sem isso o Supabase espera uma
confirmação por e-mail que nunca vai chegar, porque o endereço não existe de
verdade.
Copie o User UID que aparece na lista.
No SQL Editor, rode um insert pra esse UID:
insert into usuarios_sacas (id, nome, perfil) values
('cole-o-uuid-aqui', 'Nome da pessoa', 'operador'); -- ou 'gestor'
Quem é 'gestor' também enxerga a aba Relatórios; 'operador' só vê o
dia a dia (Fila, Liberar, Liberadas, Recusadas, Lista). No login do app, a pessoa
digita só ponto1 (sem o @gestaosacas.local) — isso é adicionado por trás dos
panos.
Se um dia quiser trocar o domínio fixo, é só editar a constante AUTH_DOMAIN no
topo do app.js — mas troque antes de criar os usuários, senão os e-mails já
cadastrados não batem mais.
Não precisa de servidor especial — qualquer servidor estático funciona, por exemplo:
npx serve .
Ou abra index.html direto no navegador (funciona também, já que não há build).
cd gestao-sacas
git init
git add .
git commit -m "Gestão de Sacas — versão inicial"
git branch -M main
git remote add origin https://github.com/SEU-USUARIO/gestao-sacas.git
git push -u origin main
Nos módulos antigos do GBS/MNS o padrão é desligar o RLS e controlar o acesso só pela
tela de login do app. Aqui o login é de verdade (Supabase Auth), então o schema.sql
deixa o RLS ligado, com uma política simples por tabela: "usuário autenticado pode
tudo". Isso fecha a porta pra quem não tem login (a anon key sozinha não abre nada),
sem criar regra por linha que possa travar alguém em silêncio.
operador — não é uma
barreira de segurança separada (as mesmas linhas de registros que aparecem em
Liberadas/Recusadas alimentam o relatório). Se isso precisar virar proteção de
verdade um dia, dá pra mover a agregação pra uma function no Supabase.fetchAll) em vez de confiar no limite implícito
do Supabase — o mesmo problema de corte silencioso em 1000 linhas que já pegou outros
módulos do GBS/Exata foi evitado de propósito aqui.