Ponto de situação

Site da SCORING,
no ar e em rondas

Site institucional completo da SCORING (13 páginas: Home, Certificação, TOP 5%, TOP 10, Índice de Bem-Estar, Sustentabilidade & ESG, Estratégia & Crescimento, Pessoas & Organização, Consultoria, Sobre Nós, Formação, Agenda de Workshops, Contactos) alinhado ao Figma, com directório de empresas certificadas, pronto para produção em hetz2.

📁 ~/new-scoring-website/scoring-website 🌿 claude/revisao-requisitos-grupo-66e404 📅 Início 2026-03-30 📦 github.com/kwana117/scoring-website
Progresso global
92%
Milestones
35/38
35 feitos 3 em curso 0 por fazer

À espera de

3 itens bloqueiam o avanço
📄 Documento com as alterações aos formulários de certificação
Pedido a 21/08 e outra vez a 25/08
Sem ele a ronda dos formulários de certificação não arranca.
📞 Confirmação do Carlos sobre a opção "sem prazo"
Perguntado a 27/08
Se quiser prazo obrigatório em cada patrocínio, a opção sai.
🖼️ Imagens dos banners e escolha das empresas em destaque
Campos entregues a 26 e 27/08
Sem imagens e sem escolhas, os campos não têm efeito visível.
01 · Milestones

O caminho até dar o projecto como fechado.

Imagem e metadata de partilha (18/08)

partilhar uma ligação do site dava um cartão sem imagem. Passa a haver imagem 1200×630 com o logo e os selos, metadataBase, Open Graph completo, twitter card, robots com pré-visualização grande e endereço canónico nas nove páginas com metadata própria. Verificado em produção com o user-agent do WhatsApp. Falta o favicon (app/icon.png).

Feito

Pedido da Joana de 18/08 — formação com vários cursos

o tipo de formação passa a aceitar as duas opções ao mesmo tempo, e a formação pretendida passa a ser uma lista onde se escolhem vários cursos com o nº de formandos em cada um, como no formulário do site antigo. Ver secção dedicada abaixo.

Feito

Pedidos do grupo de 13 e 14/08

artigos por página, revalidação ao guardar, ícone editável em todos os quadros (repostos no TOP 10 e no Índice), selos do TOP 10, sobreposição dos testemunhos na Sustentabilidade, campo de escolha múltipla nos formulários, slug editável e "Formulário desta página". Duas defesas anti-robô que descartavam pedidos reais corrigidas. Tudo verificado em produção.

Feito

Build inicial das 13 páginas

implementação a partir dos PDFs/Figma

Feito

1ª ronda de feedback cliente

commit 8b5e345

Feito

2ª ronda de feedback cliente

commit 0b7e28f (esta sessão)

Feito

QA visual Playwright + fixes pós-QA

commit b8ec8b8 (Codex)

Feito

3ª ronda de feedback cliente (12 ajustes)

commit 6b04917, deploy hetz2 (esta sessão)

Feito

Ronda de feedback (PDF Correção2 + reunião 2026-06-24)

tratada, revista por agentes (42 pass/0 fail) e deploy hetz2 (commit 236ef15)

Feito

Feedback do diretório (reunião Carlos 11-06)

testemunho da empresa com destaque + última distinção por tipo + cascata Distrito→Concelho

Feito

Verificação completa + desbloqueio (2026-06-24 tarde)

Checklist A/B verificada no browser; TOP10/IBF alinhados ao Figma (recebido do cliente), gráficos da Consultoria, legal real do scoring.pt, números reais, redirect Moodle, testemunhos do Figma e nova página /recursos-de-comunicacao. Ver secção dedicada abaixo.

Feito

Pedidos do grupo de 27 a 31/08

Sete queixas, quatro com a mesma raiz: a key interna de cada campo de formulário nasce da etiqueta, congela e estava escondida no backoffice. Bloqueava candidaturas (key de 252 caracteres contra um limite de 100), punha o mesmo assunto nos emails de três formulários, deixava condições caladas e mostrava o identificador da opção em vez do texto escolhido. Mais os links das redes sociais a apontar para dentro do site (56 websites arrumados), o ano do selo adivinhado do nome do ficheiro (239 selos errados) e o botão "Publicidade aqui" com formulário próprio. Commits e88d467..5520e77.

Material editorial pendente da cliente

o Excel anunciado com Setor, Sub-setor e Distrito ainda não chegou. O formulário usa provisoriamente valores do diretório importado; substituir e confirmar quando o ficheiro definitivo for reenviado.

Em curso

Ronda 4 de correções (PDF Joana 2026-06-29 + reunião) + números finais + revisão Figma↔live

2026-06-30, deploy hetz2 (commits a2587fb..<último>). Ver secção dedicada abaixo.

Feito

Auditoria a sério TOP10/IBF vs Figma atualizado + fix da secção de testemunhos partilhada

(TOP5/TOP10/IBF/Certificação/Sustentabilidade/Formação/Estratégia&Crescimento) — 2026-07-03, deploy hetz2 (commits 38fe1a0..3af25d7). Ver secção dedicada abaixo.

Feito

Diretório Fase 2 — contas de cliente

isolamento por empresa, estados pendente/aprovada/suspensa, rascunhos/publicação e documentos privados revistos e revalidados.

Feito

Formulários condicionais + recursos de comunicação

Setor → Sub-setor → Distrito, validação server-side contra valores forjados e pedido de troféu persistido em submissoes.

Feito

Ronda de segurança e migrations (21-07-2026)

revisão independente concluída; typecheck, build, migrations locais e fluxos browser desktop/mobile aprovados.

Feito

Deploy da entrega de segurança

pipeline Hetzner com backup prévio da base e migrations apenas no sentido up.

Feito

Ronda do PDF 29.07 + secção da equipa dinâmica

2026-08-03, commit 471f24d, deploy hetz2 com sucesso. 15 dos 16 pontos do PDF fechados (o 16º, workshops automáticos, também ficou feito nesta ronda). Ver secção dedicada abaixo.

Feito

Reunião 03.08 + PDF "Alteração na área de clientes e backoffice"

login por NIF, recuperação de palavra-passe, anti-bot, morada oficial, estado "em ativação", aprovação em massa, exportação filtrada, senha por Excel e correcção da ingestão da ScorePME. Commit cef4dac, deploy hetz2, testado em produção. Ver secção dedicada abaixo.

Feito

PDF "Alterações site - 03.08.2026" (questões gerais)

8 dos 10 pontos. Commits 60240e9 e 0dc04fa. Faltam os dois que dependem de decisão do cliente sobre o mosaico. Ver secção dedicada abaixo.

Feito

PDF "Alterações site - 04.08.2026"

mosaico composto no backoffice quadrado a quadrado (fim do sorteio), cor de fundo por quadrado, fim da inconsistência entre computadores, e listagem do diretório sincronizada com o backoffice. Commit 6655b9b, deploy hetz2. Ver secção dedicada abaixo.

Feito

"Não conseguimos ligar as duas partes" (Joana, 05/08)

criar uma empresa no diretório e ligá-la a uma conta passou a ser um caminho só, sem passos técnicos; e a página de uma empresa criada no backoffice deixou de dar 404. Ver secção dedicada abaixo.

Feito

Criação automática a partir da ScorePME + envio de acesso ao cliente (pedido do Carlos de 31/07)

documentação para um NIF desconhecido cria a empresa no diretório e a conta em processamento; botão *Enviar acesso* na lista de Clientes. A API aceita agora empresa.email/telefone/responsavel. Testado contra produção com limpeza. Ver secção dedicada abaixo.

Feito

PDF "Alterações site - 06.08.2026" (formulários)

exportação em Excel, assunto "Formulário + Serviço + NIF", destino por formulário e por resposta, e opções de formação no pedido de proposta. Mais o número de formandos, os dados das submissões que ficavam a carregar e a secção sobreposta ao banner em /sustentabilidade. Ver secção dedicada abaixo.

Feito

"A empresa teste está pendente mas já aparece no diretório" (Joana, 06/08 11:23)

não era erro de aprovação (são duas listas diferentes), mas por baixo estava um problema real: toda a empresa criada automaticamente nascia publicada. Commits 9dc8de4 e 2bf2fc8, deploy hetz2. Ver secção dedicada abaixo.

Feito

Endereço estável da API para a ScorePME

api-scoring.neuroniocriativo.pt passou a servir o site; a documentação deixou de ter o URL fixo numa variável. Commits ad6ee83 e 9017b3d. Ver secção dedicada abaixo.

Feito

Ambiente de testes da ScorePME

actualizado a 06/08 (estava congelado em 22/07) e mudado para scoring-api-test.178.104.242.232.sslip.io. A ScorePME ainda não confirmou que passou a enviar empresa.email; até lá, o email do responsável é preenchido à mão antes de *Enviar acesso*.

Em curso

Pedidos de 07/08 (Nuno 11:34-11:41 e Joana Faria 16:46)

os 10 pontos fechados a 10/08, ainda por publicar. Os quatro directos (selo fora da área de cliente, cartão "É a sua empresa?" removido, NIF nas Revisões do diretório, região antes do setor); os três do Nuno (contactos e setor/sub-setor editáveis pela empresa, o email geral na página do diretório, aviso à SCORING quando a morada muda); e os três da Joana Faria (FAQs de todas as páginas, esconder a caixa de testemunhos por página, textos dos cartões da Certificação). Ver secções dedicadas abaixo.

Feito

Pedidos do grupo de 24/08 (PDF + mensagens soltas)

negrito com asteriscos em todos os textos, links dos botões a contar da raiz, mensagem de confirmação do Contacto, imagens do hero em telemóvel, estatísticas do TOP 5%, indicadores fora da caixa de testemunhos, três tipos de formação com quadro próprio, e os campos que faltavam no backoffice (caixas e selos da home, Confiança/Credibilidade/Rigor, frase da Consultoria, caixas do RFP e do PAFE, linha das fontes). Mais os treze conjuntos de cartões passados para o backoffice. Verificado em produção, commits 2233764..cd79738.

Feito

As 116 fichas que ficaram no WordPress antigo (25/08)

o diretório vinha de um retrato de 29/04 e tudo o que a SCORING publicou depois ficou de fora. Recolhidas das páginas públicas do servidor antigo e importadas com logótipo, selos e taxonomia: 6081 → 6197 empresas publicadas. Commits 550eba3..378a34d. Ver secção dedicada acima.

Feito

Região e setor no formulário do TOP 10 (26/08)

commit c249a3c.

Feito

Pedidos do grupo de 26/08

rácios de referência editáveis no TOP 5%, banners de publicidade no diretório (geral, por setor e por região), distritos e setores duplicados na pesquisa, a listagem que não mudava ao filtrar (chave repetida nos cartões) e link em cada logótipo da barra de auditores. Migração 20260826_120000_racios_publicidade_e_links. Ver secção dedicada acima.

Feito

Os dois pedidos de 26/08 que o filtro do wa-context escondeu

empresas em destaque com pesquisa própria e ordem aleatória a cada visita, banners com versão de telemóvel, e os três logótipos da barra de auditores semeados no backoffice para o campo de link deixar de ser invisível. Migração 20260826_170000_destaques_e_banner_mobile.

Feito

Empresas em destaque por setor e por região (Carlos, 26/08)

até 3 por setor e até 3 por região, sorteadas nas primeiras posições quando se filtra, 6 quando se filtra pelos dois. Migração 20260827_100000_destaques_por_filtro.

Feito

Respostas dos formulários em lista + prazos dos patrocínios (27/08)

o email das submissões põe cada curso numa linha própria, para colar em lista no Excel; e cada lugar patrocinado do diretório (24 gerais, 3/setor, 3/região e os três banners) leva data de início e de fim, saindo sozinho da posição quando o prazo acaba. Migração 20260827_140000_prazos_de_patrocinio, commit b5ce808. A opção "sem prazo" por omissão está por confirmar com o Carlos. Ver secção dedicada acima.

Feito

Memória do hetz2 no limite

21 de 23 GB usados e swap cheio, com o next build a ser morto pelo OOM killer a 10/08. Mitigado com --max-old-space-size=1536 no workflow, mas é penso rápido: a máquina aloja vários projectos e precisa de ser vista à parte.

Risco
02 · Próximos passos

Onde retomar quando voltar a este projecto.

Imediato

1
Confirmar o "sem prazo" com o Carlos

A quarta opção não foi pedida e é a que fica por omissão. Se ele quiser prazo obrigatório, tira-se em minutos.

2
Documento dos formulários de certificação

Pedido duas vezes desde 21/08. É o que falta para a próxima ronda arrancar.

3
Ver a primeira expiração real de um patrocínio

A página refresca de hora a hora; vale confirmar em produção quando o primeiro prazo acabar.

·
Link "Publicidade" no rodapé da Scoring Magazine

É um WordPress à parte, noutro servidor. O formulário já está pronto a receber em scoring.pt/formularios/publicidade. Falta saber quem tem acesso a esse WordPress.

·
A condição das duas perguntas do Índice está por acabar

Diz "mostrar quando a Preferência for igual a", sem dizer a quê. Ficaram visíveis. Se era para as mostrar só nas candidaturas, é a SCORING escolher a resposta esperada.

·
Caixa de destino do formulário de publicidade

Vai por omissão para geral@scoring.pt. Se houver caixa própria, muda-se em Formulários → Publicidade.

Riscos · Bloqueadores

Memória do hetz2 no limite21 de 23 GB usados e swap cheio; o next build já foi morto pelo OOM killer. Mitigado com --max-old-space-size=1536, mas a máquina aloja vários projectos e precisa de ser vista à parte.
Material editorial da clienteO Excel com Setor, Sub-setor e Distrito nunca chegou; o formulário usa valores do diretório importado.
03 · Actividade recente

Últimos commits + stack.

2 hours agob5ce808 feat: as respostas colam em lista, e os patrocínios do diretório têm prazo
5 hours ago16a7639 feat: até 3 empresas em destaque por setor e por região
24 hours agob4a62ab feat: empresas em destaque, banners em telemóvel, e o link que não se via
25 hours agoe047888 fix: a distinção sem empresas nenhumas sai da caixa de pesquisa
27 hours ago837bd26 feat: os pedidos que a SCORING mandou no grupo a 26/08
28 hours ago6f476d8 docs: milestones da ronda de 24/08 e das 116 fichas, e o servidor de QA arranca
2 days agoc249a3c fix: região e setor no formulário do TOP 10, e a chave repetida que estragava respostas
2 days agocd79738 fix: a mensagem de confirmação do contacto, agora mesmo

Stack

Next.js 16Payload 3PostgresTypeScripthetz2 + PM2
Notas: O diretório tem duas fontes (índice importado do WordPress + registos do Payload) e quase tudo o que corre mal aí vem daí. A base local de QA é o Docker scoring-qa-pg com o .env.qa.local, que não existe nos worktrees e tem de ser copiado do checkout principal.