Sistema de quiz interativo em tempo real para meetups e eventos. O host cria uma sessão com perguntas, compartilha o código da sala, e os participantes respondem pelo celular.
- Monorepo com Bun workspaces
- Backend: Elysia + Drizzle ORM + SQLite (bun:sqlite)
- Frontend: Vite + React 19 + shadcn/ui + Tailwind CSS
- Comunicação: WebSocket para tempo real
- Tipos compartilhados: pacote
@codecon/shared
packages/
shared/ # Tipos compartilhados (Session, Question, WS protocol)
server/ # API REST + WebSocket (porta 3001)
web/ # Interface React (porta 5173)
# Instalar dependências
bun install
# Rodar o backend
cd packages/server
bun run dev
# Rodar o frontend (em outro terminal)
cd packages/web
bun run devAcesse http://localhost:5173
- Host acessa
/host/create, cria uma sessão e adiciona perguntas - Participantes acessam
/join, digitam o código da sala e um apelido - O host inicia o jogo no lobby quando todos estiverem conectados
- Cada pergunta tem um timer — pontuação baseada em velocidade e acerto
- Ao final, o ranking completo é exibido
Para eventos presenciais, use ngrok ou similar para expor o frontend:
ngrok http 5173Adicione allowedHosts: true no vite.config.ts para aceitar conexões externas.
cd packages/server && bun test
cd packages/web && bun test