Pular para o conteúdo principal

Dhedalos - Frontend de Cadastros

Visão geral do repositório

Este repositório implementa uma aplicação Next.js para onboarding, cadastro e inscrição de participantes, com páginas em app/, APIs internas em pages/api/ e app/api/, Storybook para componentes e artefatos de operação com Docker, Helm e Kubernetes.

Evidências:

Documentação

A baseline de documentação criada nesta tarefa está em docs/, com visão geral, arquitetura, API, modelo de dados, operação, ADRs e inventário de features.

Links principais:

Como rodar

Pré-requisitos observados no repositório

Setup local

  1. Crie .env a partir de .env.example.
  2. Instale as dependências com npm install.
  3. Execute um dos fluxos abaixo.

Comandos disponíveis:

npm run dev
npm run test:unit
npm run build
npm run start
npm run start:storybook
npm run build:storybook

Evidências:

Execução com Docker Compose

O repositório também expõe execução via Docker Compose, com a aplicação em 3010:3000 e leitura de variáveis a partir de .env.

source ./compose.sh

Evidências:

Variáveis de ambiente

Declaradas em .env.example

  • NEXT_APP_VERSION
  • NEXT_BACKEND_URL
  • NEXT_ENABLE_API_MOCKS
  • API_CLASSES_BACKEND_URL
  • API_REGISTRATION_BACKEND_URL
  • API_REGISTRATION_TOKEN
  • API_WP_BACKEND_URL
  • API_WP_BACKEND_TOKEN
  • API_WHATS_BASE_URL
  • API_WHATS_TOKEN
  • NEXTAUTH_URL
  • NEXTAUTH_SECRET
  • NEXT_DATADOG_ENV
  • NEXT_DATADOG_APP_ID
  • NEXT_DATADOG_CLIENT_ID
  • NEXT_DATADOG_SERVICE_NAME
  • NEXT_DATADOG_SESSION_SAMPLE_RATE
  • NEXT_DATADOG_SESSION_REPLAY_SAMPLE_RATE
  • NEXT_AMEI_URL
  • NEXT_AMEI_REALM
  • NEXT_AMEI_CLIENT_ID
  • NEXT_AMEI_SCOPE
  • TOGGLE_AMEI_INTEGRATION
  • TOGGLE_INSCRIPTION_FALLBACK
  • METADATA_SITE_NAME
  • METADATA_SITE_DESCRIPTION
  • METADATA_SHOW_COMPANY_BRAND
  • METADATA_SUPPORT_URL
  • METADATA_PRIVACY_POLICY_URL
  • METADATA_FAVICON_URL

Evidência:

Consumidas no código e no deploy

  • WordPress: API_WP_BACKEND_URL, API_WP_BACKEND_TOKEN.
  • WhatsApp: API_WHATS_BASE_URL, API_WHATS_TOKEN.
  • NextAuth: NEXTAUTH_URL, NEXTAUTH_SECRET.
  • Datadog: NEXT_DATADOG_APP_ID, NEXT_DATADOG_CLIENT_TOKEN, NEXT_DATADOG_SERVICE_NAME, NEXT_DATADOG_ENV, NEXT_DATADOG_SESSION_SAMPLE_RATE, NEXT_DATADOG_SESSION_REPLAY_SAMPLE_RATE.
  • AMEI/Keycloak: TOGGLE_AMEI_INTEGRATION, NEXT_AMEI_URL, NEXT_AMEI_REALM, NEXT_AMEI_CLIENT_ID.
  • Metadata e tracking: METADATA_*, META_PIXEL_ID, META_ACCESS_TOKEN.

Evidências:

Contexto C4 L1

Atores

  • Participante: consulta detalhes do curso, inicia inscrição, valida OTP e conclui cadastro.
  • Time de operação: publica imagens Docker e faz deploy via Helm em clusters oke-we-001 e oke-we-002.

Evidências:

Integrações e dependências

  • WordPress backend: customização do curso, cadastro de participantes, status de inscrição, link de grupo e modo manutenção.
  • Backend de WhatsApp: envio e confirmação de OTP, além do disparo de template de fluxo.
  • AMEI/Keycloak e pacote @dhedalos/auth: autenticação opcional do fluxo de inscrição.
  • NextAuth: sessão local baseada em credenciais cpf.
  • Datadog RUM: telemetria do browser inicializada a partir de /api/envs.
  • Meta Conversions API e Meta Pixel: tracking client-side e server-side.

Evidências:

Não há URLs confirmadas de outros repositórios dentro do workspace analisado. O que existe com evidência local são dependências internas distribuídas via GitHub Packages:

  • @dhedalos/auth
  • @dhedalos/ui-component

Pendência: mapear os repositórios-fonte dessas dependências antes de adicionar links concretos aqui.

Evidências:

Práticas complementares

Storybook

O repositório já possui configuração do Storybook, autodocs habilitado e stories espalhadas por src/.

Evidências:

Jest

O repositório possui testes unitários com Jest em ambiente jsdom, setup com @testing-library/jest-dom e comando dedicado npm run test:unit. A evidência local de cobertura automatizada é pontual: neste inventário foram encontrados dois arquivos de teste versionados.

Evidências:

Cypress e E2E

Não há, neste inventário, evidência versionada de Cypress, Playwright ou outro runner E2E como prática ativa do repositório. Isso significa que a documentação deve registrar explicitamente a ausência atual, em vez de presumir cobertura E2E.

Evidências:

JSDoc e Docstrings

Há uso pontual de comentários de documentação em endpoints e utilitários, mas não existe ainda uma convenção centralizada documentada no repositório.

Evidências:

Mindmap

A visão resumida da arquitetura e dos fluxos foi registrada em docs/architecture/mindmap.md.

Pendências de documentação