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.
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).
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.
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.
implementação a partir dos PDFs/Figma
commit 8b5e345
commit 0b7e28f (esta sessão)
commit b8ec8b8 (Codex)
commit 6b04917, deploy hetz2 (esta sessão)
tratada, revista por agentes (42 pass/0 fail) e deploy hetz2 (commit 236ef15)
testemunho da empresa com destaque + última distinção por tipo + cascata Distrito→Concelho
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.
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.
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.
2026-06-30, deploy hetz2 (commits a2587fb..<último>). Ver secção dedicada abaixo.
(TOP5/TOP10/IBF/Certificação/Sustentabilidade/Formação/Estratégia&Crescimento) — 2026-07-03, deploy hetz2 (commits 38fe1a0..3af25d7). Ver secção dedicada abaixo.
isolamento por empresa, estados pendente/aprovada/suspensa, rascunhos/publicação e documentos privados revistos e revalidados.
Setor → Sub-setor → Distrito, validação server-side contra valores forjados e pedido de troféu persistido em submissoes.
revisão independente concluída; typecheck, build, migrations locais e fluxos browser desktop/mobile aprovados.
pipeline Hetzner com backup prévio da base e migrations apenas no sentido up.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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*.
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.
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.
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.
commit c249a3c.
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.
wa-context escondeuempresas 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.
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.
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.
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.
scoring-qa-pg com o .env.qa.local, que não existe nos worktrees e tem de ser copiado do checkout principal.