Cena 04 · API · 2026
Sistema de Sorteios Rethink3D — missões, tickets e um sorteio que dá para auditar
Missões que viram tickets e um sorteio transmitido ao vivo por WebSocket, com auditoria de cada resultado.
Rascunho — texto em revisão
- Papel
- Autor único — API e web.
- Stack
- NestJS 11 · Prisma 5 · PostgreSQL · Socket.IO · Passport JWT · React 19 · Zustand · TanStack Query
- Links

O problema
Em eventos, a Rethink3D queria engajar quem passa pelo estande — e sorteio feito no improviso não convence ninguém de que foi justo.
O que eu construí
API e web, sozinho, em cinco semanas (10/07 a 15/08/2026, 66 commits):
- participantes cumprem missões — foto como prova, quiz, feedback, indicação, pesquisa — e ganham tickets;
- o admin dispara o sorteio, transmitido ao vivo para o telão e para os celulares;
- telas de participante, admin, público e um totem de estande pareado.
Decisões
Sorteio auditável. O peso de cada participante é proporcional aos tickets, e cada sorteio grava um log com a foto dos participantes, os pesos e o resultado.
Gateway público com limites. O WebSocket aceita até 1.000 conexões, 10 por IP e mensagens de até 10 KB.
Campanha como máquina de estados. Rascunho → ativa → sorteando → pausada → encerrada, sem atalho entre estados.
Em números
- 66 commits em 5 semanas
- 23 migrações Prisma e 15 módulos na API