No updates detected yet. GitHub releases will appear here.
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 ↗Site para organizar o amigo secreto do seu grupo pelo celular. Cada um entra com a sua conta, participa pelo link da sala, e o sorteio sai na hora — sem baixar aplicativo.
Feito para aquele grupo da família ou do trabalho em que sempre falta alguém, alguém esquece quem tirou, e o organizador vira secretário do Natal.
Você cria uma conta rapidinha (nome, email e um PIN de 6 números). Essa conta serve para qualquer sala e funciona em qualquer aparelho — é só entrar de novo com o email e o PIN.
Uma pessoa cria a sala e recebe um código de 6 letras e um link. Manda no grupo.
Cada um abre o link, entra com a sua conta e participa. A lista cresce na tela de todo mundo ao mesmo tempo, então dá para ver quem já entrou e quem falta.
Quando não falta ninguém, o organizador clica em sortear. A sala tranca.
Aí cada um vê só quem tirou — junto com a dica de presente que a pessoa deixou, se deixou. Dá para copiar o resultado ou mandar para você mesmo no WhatsApp, para guardar.
Como a identidade é a conta (e não o aparelho), você entra no celular, no PC, onde quiser, e continua sendo você — com o mesmo resultado.
Mínimo de 3 pessoas. Com 2 todo mundo já sabe.
O sorteio é livre. Qualquer um pode tirar qualquer um. A única regra é que ninguém tira a si mesmo — se acontecer no embaralhamento, o sistema refaz.
Depois de sortear, acabou. A lista tranca, ninguém mais entra ou sai, e não dá para refazer o sorteio depois que alguém já olhou o resultado.
O resultado não muda. Pode fechar, voltar daqui a um mês, trocar de aparelho: é sempre a mesma pessoa.
Pode tirar alguém da lista antes do sorteio, desfazer o sorteio enquanto ninguém tiver olhado, e apagar a sala.
Não pode ver quem tirou quem. Nem ele. O painel dele mostra só quem já abriu o resultado.
Precisa do Node. Nenhuma biblioteca, nenhum npm install.
git clone https://github.com/Brunoverly77/amigo-secreto-online.git
cd amigo-secreto-online
Depois, um banco (é de graça):
sql/01-schema.sql inteiro e rode. Ele monta as
tabelas e toda a lógica do sorteio.js/config.example.js para js/config.js e cole a Project URL e a
publishable key.js/servidor.secreto.example.js para js/servidor.secreto.js e cole
a Project URL e a secret key (é ela que o cadastro usa, pelo servidor).Aí: npm run dev e abra http://localhost:8099.
A publishable key e a URL são públicas de propósito — vão no navegador de quem acessa. Quem protege os dados são as regras do banco. Já a secret key fica só no servidor: nunca no navegador, nunca no git (o
.gitignorejá segura ojs/config.jse ojs/servidor.secreto.js).
É site estático + uma função de servidor. Na Vercel: importe o repositório e cadastre nas variáveis de ambiente:
SUPABASE_URLSUPABASE_ANON_KEY — a publishable keySUPABASE_SERVICE_ROLE_KEY — a secret keyO resto já está no vercel.json.
HTML, CSS e JavaScript na mão, sem framework. O banco é o Supabase (Postgres
O sorteio roda dentro do banco, não no navegador de quem clicou. As tabelas com o resultado e as dicas não têm permissão nenhuma para quem acessa pelo site — só as funções do servidor chegam nelas.
index.html entrar e listar suas salas
login.html criar conta e entrar
sala.html a sala
api/criar-conta.js cria a conta no cadastro (servidor)
css/natal.css o visual
js/ a lógica
sql/ o banco
MIT. Pode usar, mudar e publicar à vontade.