Skip to content

Repository files navigation

Hoothoot 🦉

Web app de enquetes em tempo real (estilo Kahoot) — Modo Padrão v1.

Stack

Camada Tecnologia
Frontend React 19 + TypeScript + Vite + Tailwind CSS 4
Backend Node.js + Express 5 + Socket.IO
Banco PostgreSQL via Supabase + Prisma ORM
Auth (Criador) Supabase Auth (gratuito — email/senha)
Jogadores Sem conta — nickname + reconexão via sessionKey

Desenvolvimento local

1. Supabase

  1. Crie um projeto em supabase.com (plano free).
  2. Em Settings → Database, copie:
    • DATABASE_URL (pooler, porta 6543)
    • DIRECT_URL (porta 5432)
  3. Em Settings → API, copie:
    • Project URL
    • anon key
    • JWT Secret (Settings → API → JWT Settings)

2. Variáveis de ambiente

cp apps/server/.env.example apps/server/.env
cp apps/client/.env.example apps/client/.env

Preencha os valores do Supabase nos dois arquivos.

3. Instalar e migrar

npm install
npm run db:push

4. Rodar

npm run dev

Testes (TDD)

npm test

Os testes cobrem:

  • @hoothoot/shared — código de sala, pontuação, nickname, URLs
  • @hoothoot/serverGameRoom (máquina de estados), API health

Fluxo da aplicação

  1. Criador — login Supabase → monta deck → abre sala → compartilha link/QR/WhatsApp
  2. Jogador — entra com nickname em /entrar/<codigo> → responde no celular
  3. Telão/telao/<codigo> (somente leitura para TV/projetor)

Deploy

Componente Sugestão
Frontend Vercel / Netlify
Backend Render / Railway (WebSocket persistente)
Banco Supabase (já incluso)

Defina PUBLIC_URL e CLIENT_URL com a URL de produção do frontend.

Documentação

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages