Construído junto
Portal da comunidade
Uma janela aberta do nosso processo: acompanhe o que está sendo construído, as sugestões que a comunidade enviou e como cada uma está sendo tratada. O envio de feedback fica disponível para quem já usa o NestCards.
Planejado
12Scan: várias cartas na mesa — Etapa 3 (experimental, SPEC 014)
Uma foto com ~10 cartas abertas na mesa: detectar os retângulos das cartas (contornos via canvas/OpenCV.js), recortar cada um e passar pelo mesmo pipeline de sinais da Etapa 1. Começa como experimento de viabilidade — só promete se a taxa de acerto for boa. Spec: docs/SPEC-CAMERA-SCAN.md
Lances públicos (bid offers)
Faça lances públicos em cartas; demanda visível à comunidade.
Índices NestCards
NestCards 100, índice de liquidez, vintage e moderno.
API de mercado
Endpoints de preços, liquidez, tendências e rankings.
Alertas de preço
Avise-me quando uma carta passar ou cair de um valor.
Dashboard de mercado por carta
Aba de mercado em cada carta: preço, histórico, liquidez e score.
Rankings de mercado
Mais negociadas, maior valorização, maior liquidez e volume.
Market Score da carta
Indicador único (0-100) de saúde de mercado da carta.
Tendências de preço e volume
Alta, baixa e estabilidade a partir de médias móveis.
Liquidez de mercado
Medir oferta, demanda e velocidade de negociação real.
Histórico de preços
Timeline de preço e volume (7/30/90/180/365 dias).
Preço real de mercado
Preço baseado só em negociações concluídas — mediana como referência.
Em desenvolvimento
1Catálogo em português completo
Todos os sets passam a ter cartas em PT (dados em inglês onde a fonte ainda não publicou o PT).
Em teste
4Validação CIS: reconhecer o token na foto da carta
IMPLEMENTADA (commit 593f9ba): submitValidationPhoto roda OCR server-side na foto e exige que o token VAL apareça nela antes de marcar verified — tolerante a erros clássicos de leitura (O→0, I/L→1, U→V). Token VAL agora é opaco (mesmo esquema do CLM, data embutida via HMAC). Cartas adicionadas pelo scan (com foto real) nascem VERIFIED com source=scan.
Feed: correção da página quebrada
O feed caía no error boundary: função de i18n passada do server pro client (não serializa). Virou template string interpolada no client. Commit: cfe1f28
Skeletons de carregamento e feedback de envio nos forms
Skeletons (loading.tsx) em home/binder/feed/pokédex, SubmitButton com spinner nos formulários e modal de transferência no tema Nest. Commits: 1805bc7, 5004b3c
Pokédex contando cartas em PT
Cartas em português agora marcam os Pokémon na Pokédex (dexNumber preenchido).
Aguardando liberação
0Concluído
38[Scan] Reconhecimento de cartas por foto (SPEC 014)
Scanner de cartas por foto — **em teste em produção**. ## O que foi entregue - **OCR no servidor** (PaddleOCR PP-OCRv4 via onnxruntime-node) — saiu do navegador, que crashava o iPhone. - **Câmera in-app com moldura** (formato de carta), recorta só a carta, captura várias em sequência com miniaturas dentro da câmera. - **Identificação** por número `N/M` + **número da Pokédex** (`Nº046`) + nome + idioma + similaridade visual (dHash). - **Filtro de espécie** (por dex ou nome) — descarta cartas de outro Pokémon com o mesmo N/M. - **Idioma**: detectou no template → filtra; não detectou → preferência do usuário desempata. - **Fila processa 3 fotos em paralelo**. - Liberado para todos os usuários. ## Checklist de teste - [ ] Carta PT moderna (com `Nº` da dex) — número e espécie corretos - [ ] Carta EN — idioma detectado/filtrado certo - [ ] Carta antiga sem `Nº` da dex — filtro por nome - [ ] Duas espécies com mesmo N/M (ex.: 4/149 Paras vs Bellossom) — só a certa - [ ] Carta de Treinador/Energia (sem espécie) - [ ] Lote de 5+ fotos — velocidade aceitável - [ ] iPhone (Safari e Chrome) — não crasha
Scan: recortar só a carta da foto (limpar fundo)
Hoje a foto enviada no scan é salva inteira como foto da cópia (fundo/mesa aparecem). Detectar o retângulo da carta (contornos via canvas/OpenCV.js), corrigir perspectiva e salvar só a carta recortada. Mesma base técnica do multi-carta na mesa (#54) — resolver os dois juntos pode fazer sentido. Spec: docs/SPEC-CAMERA-SCAN.md
Scan: câmera ao vivo — Etapa 2 (SPEC 014)
getUserMedia com moldura-guia na proporção da carta, obturador e loop contínuo (escaneia → ajusta → próxima sem sair da câmera). Refinamento de UX sobre a mesma infra de OCR/resolver da Etapa 1. Spec: docs/SPEC-CAMERA-SCAN.md
Scan: dHash da arte — Etapa 1.5 (SPEC 014)
Índice de hash perceptual (dHash 64-bit) da janela de arte das ~37k cartas (coluna `CatalogCard.imageHash` + script de backfill a partir dos webp no R2). O resolver passa a pontuar com 3 sinais: arte + número + nome. Elimina ambiguidade de sets com o mesmo total impresso. Spec: docs/SPEC-CAMERA-SCAN.md
Scan por fotos — Etapa 1 (SPEC 014)
A pessoa envia fotos das cartas (galeria ou câmera nativa), uma carta por foto. OCR client-side (tesseract.js) lê número/total do rodapé + nome; resolver sugere candidatos do catálogo; condição/variante por carta e inserção em lote. Rota: `/add/scan` (botão Escanear fotos no /add). Commit: 199d94e · Spec: docs/SPEC-CAMERA-SCAN.md Ajuste conhecido pra polir durante o teste: dois sets com o mesmo total impresso podem confundir (ex.: 4/102 é Charizard base1 E Drapion Triumphant) — o peso do nome no score resolve a maioria; o dHash da arte (Etapa 1.5) elimina de vez.
Lightbox do perfil público corrigido no celular
O lightbox das seções raras/recentes abria preso dentro da seção (will-change permanente do scroll-reveal criava containing block pro position:fixed). Agora cobre a tela inteira, com efeito holo. Commit: 61f8cf7
Ajustes mobile: safe-area, viewport, Pokédex em 3 colunas
Bottom nav e painel Mais respeitam env(safe-area-inset-bottom) (iPhone com barra de gesto), viewport-fit=cover + theme-color, Pokédex com 3 colunas no celular e resumo de cartas+valor no hero da home. Commit: cfe1f28
Catálogo de imagens 100% WebP
347 imagens png convertidas pra webp (~189MB economizados). Script: `npm run db:r2:convert-webp` (objetos antigos mantidos até validar; depois rodar `db:r2:prune`). Commit: d0267ab
Hardening das actions de troca, escrow e claims
Rejeição no escrow em transação atômica, rate limit em ofertas/sessões de troca e transferências, validação Zod na criação de oferta. Commit: 1805bc7
Variantes de carta corrigidas
Holo e reverse holo recuperados em sets cujo dado da fonte vinha incompleto.
Correção do feed de novidades
Posts da rede passam a aparecer corretamente no feed; aba para ver seus próprios posts.
Efeito holográfico no celular
Inclinação/brilho da carta agora respondem ao toque no mobile.
Ampliar carta em tela cheia
Clique numa carta pra vê-la grande, sem moldura, com efeito holográfico.
Adicionar cartas em lote
Busque e marque várias cartas (de sets diferentes) e adicione todas de uma vez, escolhendo o estado.
Pokédex pública por colecionador
Veja a Pokédex de cada colecionador: o que capturou e o que falta.
Perfil público de colecionador
Perfil com selo de fundador, nível de treinador, cartas mais raras, últimas adicionadas, sets, wishlist e atividade — respeitando privacidade.
Busca de colecionadores e cartas
Barra de busca encontra usuários e cartas; nova página com todos os colecionadores cadastrados.
Navegação mobile e melhorias de uso
Nova barra de navegação inferior no celular, busca que encontra cartas mesmo filtrando por idioma, e correções de robustez em trocas e importação. Em teste antes da liberação geral.
Deploy em produção
Subindo a plataforma para a nuvem (Vercel + banco gerenciado).
Acesso por e-mail e Google
Cadastro e login por e-mail/senha além do Google.
Dashboard público de confiança
Página pública com score, histórico e avaliações de cada colecionador.
Programa de Founders
Os primeiros membros ganham número de Founder vitalício.
Badges e conquistas
Conquistas automáticas por trocas, escrow e marcos.
Avaliações pós-troca
Avalie quem negociou com você; nota e comentário.
Reputação e níveis de confiança
Reputação event-sourced, níveis automáticos e selo de confiança.
Trocas com escrow seguro
Custódia intermediada para trocas e vendas com segurança.
Feed social e comunidade
Movimentação real da comunidade, sugestões, bugs e changelog.
Coleções temáticas
Vitrines curadas por você, públicas no seu perfil.
Pokédex pessoal
Acompanhe quantas espécies você já tem na coleção.
Binders e fichário digital
Organize sua coleção em fichários, com impressão estilo 9-pocket.
Importação de coleções
Importe sua coleção via CSV (LigaPokemon e genérico).
Catálogo completo de cartas
Todos os sets de Pokémon, multilíngue (EN/PT), com imagens próprias.
Scan de cartas
proporcionar o scan de cartas pra localizar uma carta pela imagem dela
Ícone do app (favicon)
Pikachu no lugar do ícone padrão na aba do navegador.
Entrega de e-mail no domínio próprio
E-mails saem de @nestcards.com.br com DKIM, SPF e DMARC para cair na caixa de entrada.
Convite de acesso pelo admin
Admin convida alguém por nome e e-mail: libera o cadastro e dispara o e-mail de convite.
Foto de perfil personalizada
Avatar puxa a foto do Google no login e botão para enviar/trocar a própria imagem.
Ajuste botao ver todos os set
Na tela de Binders ao clickar no botao para ver todos os sets a pagina nao renderizava