Confete caindo sob luz azul de palco sobre o público de um show: o banner de uma página de evento na PassNow.

Estudo de caso PassNow

Da página do evento até a portaria, um ingresso no celular.

Cliente
PassNow
Tipo
Plataforma de ingressos
Papel
Produto e desenvolvimento full-stack
Ano
2026

Uma plataforma de venda e gestão de ingressos: catálogo público e checkout para quem compra, painéis para organizadores, promoters e administradores, e um scanner de check-in que continua funcionando offline. Uma única base de código para web, PWA e app Android.

Um ingresso passa por muitas mãos: quem compra e paga, o organizador que precisa acompanhar as vendas, o promoter que ganha comissão, a equipe na portaria. Qualquer um deles pode ser o ponto fraco, e um ingresso que pode ser copiado ou lido duas vezes não vale nada.

Colocar todas as regras no servidor e tratar o ingresso como um segredo. O frontend nunca toca o banco; a API decide quem pode ver, vender, sacar ou liberar uma entrada, e cada ingresso só pode ser usado uma vez, mesmo quando a portaria está sem sinal.

O que foi de fato construído

  1. 01

    Um frontend Next.js 16 que conversa só com uma API REST, e um backend NestJS 11 com Prisma e PostgreSQL que é o único processo com a URL do banco: 25 módulos sobre um schema de 48 modelos, com JWT de vida curta e refresh token rotativo e revogável em cookies HTTP-only.

  2. 02

    Um checkout em quatro etapas com PIX, cartão de crédito e de débito pela Canvi. Número do cartão e CVV vão direto para o provedor; a PassNow guarda só a bandeira e os quatro últimos dígitos. Os tokens dos ingressos ficam salvos como hash SHA-256 com pepper e uma cópia cifrada em AES-256-GCM para exibição autorizada, e quem compra sem conta abre o ingresso com uma chave de acesso.

  3. 03

    Um check-in que não deixa o mesmo ingresso entrar duas vezes: a primeira leitura é uma atualização condicional dentro de uma transação, o operador precisa pertencer à organização do evento e cada entrada fica registrada em log de auditoria. Offline, as leituras entram numa fila no IndexedDB e sincronizam depois, com os choques marcados como conflito.

  4. 04

    Papéis por organização (dono, admin, financeiro, marketing, check-in, suporte), promoters e saques, e uma área administrativa. O login com Google é exclusivo de compradores. O mesmo app é distribuído como PWA com aviso de atualização e como APK Android via Capacitor.

Tecnologia

  • Next.js
  • TypeScript
  • React
  • Tailwind CSS
  • NestJS
  • Prisma
  • PostgreSQL
  • Zod
  • Capacitor
  • Docker

A versão 1.0.0 foi lançada em junho de 2026, com PWA e APK Android assinado. As capturas vêm de um build local rodando com dados de demonstração.

Próximo projetoPC Control CenterPersonal project · App desktop & agente remoto