Pular para o conteúdo principal

Portfólio do Estudante

Cada estudante pode ter uma página de portfólio público — uma exibição curada de seus certificados conquistados, acessível via uma URL única. As instituições gerenciam a página em nome dos estudantes por meio da API.

Formato da URL da página de portfólio

As páginas de portfólio são acessíveis publicamente em:
https://portfolio.dokstamp.eu/{slug}
Por exemplo: https://portfolio.dokstamp.eu/maria-fernanda-silva

Criar uma página de portfólio

curl -X POST "https://api.dokstamp.eu/students/{student_uuid}/pages" \
  -H "Authorization: Bearer {TOKEN}" \
  -H "Accept: application/json" \
  -H "Content-Type: application/json" \
  -H "X-Tenant: {TENANT}" \
  -d '{
    "slug": "maria-fernanda-silva",
    "is_public": true,
    "bio": "Formada em Ciência da Computação com foco em sistemas distribuídos e aprendizado de máquina."
  }'
O slug deve ser amigável para URL (letras minúsculas, números, hífens) e único na plataforma.

Adicionar certificados ao portfólio

Após emitir os certificados, adicione-os à página de portfólio do estudante:
curl -X POST "https://api.dokstamp.eu/students/{student_uuid}/pages/{page_uuid}/items" \
  -H "Authorization: Bearer {TOKEN}" \
  -H "Accept: application/json" \
  -H "Content-Type: application/json" \
  -H "X-Tenant: {TENANT}" \
  -d '{
    "certificate_uuid": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    "sort_order": 1,
    "is_visible": true
  }'

Reordenar itens do portfólio

# Atualizar sort_order para reposicionar um item
curl -X PATCH "https://api.dokstamp.eu/students/{student_uuid}/pages/{page_uuid}/items/{item_uuid}" \
  -H "Authorization: Bearer {TOKEN}" \
  -H "Accept: application/json" \
  -H "Content-Type: application/json" \
  -H "X-Tenant: {TENANT}" \
  -d '{ "sort_order": 2 }'

Ocultar um certificado da visualização pública

Mantenha o item no portfólio, mas torne-o invisível para visitantes públicos:
curl -X PATCH "https://api.dokstamp.eu/students/{student_uuid}/pages/{page_uuid}/items/{item_uuid}" \
  -H "Authorization: Bearer {TOKEN}" \
  -H "Accept: application/json" \
  -H "Content-Type: application/json" \
  -H "X-Tenant: {TENANT}" \
  -d '{ "is_visible": false }'

Tornar a página privada

Uma página privada não é acessível publicamente. Útil enquanto adiciona certificados antes de publicar:
curl -X PATCH "https://api.dokstamp.eu/students/{student_uuid}/pages/{page_uuid}" \
  -H "Authorization: Bearer {TOKEN}" \
  -H "Accept: application/json" \
  -H "Content-Type: application/json" \
  -H "X-Tenant: {TENANT}" \
  -d '{ "is_public": false }'

Exemplo completo — fluxo para novo formando

JavaScript
async function onboardarNovoFormando(student, certificate) {
  // 1. Criar a página de portfólio
  const pageRes = await api.post(`/students/${student.uuid}/pages`, {
    slug: slugify(`${student.name}-${Date.now()}`),
    is_public: false, // começar como privada
    bio: `${student.name} se formou em ${certificate.course.name}.`,
  });
  const page = pageRes.data;

  // 2. Adicionar o certificado
  await api.post(`/students/${student.uuid}/pages/${page.uuid}/items`, {
    certificate_uuid: certificate.uuid,
    sort_order: 1,
    is_visible: true,
  });

  // 3. Publicar a página
  await api.patch(`/students/${student.uuid}/pages/${page.uuid}`, {
    is_public: true,
  });

  return `https://portfolio.dokstamp.eu/${page.slug}`;
}

Regras de privacidade do portfólio

is_publicis_visible (item)Resultado
truetrueCertificado visível na página pública
truefalsePágina pública, mas certificado oculto
falsequalquerPágina inteira é privada