Skip to content

feat: agenda de próximos eventos da comunidade na landing page #483

Description

@fernanduandrade

Agenda de próximos eventos na landing page

O que construir

  • Exibir na landing page uma seção "Próximos eventos da comunidade" com a agenda de encontros comunitários, apresentada em cards navegáveis (carrossel).
  • Permitir que a comunidade edite a agenda por meio do painel administrativo: criar, editar e desativar eventos, além de controlar a ordem de exibição.
  • Suportar dois tipos de agendamento: eventos recorrentes (repetem semanalmente, com dia da semana e horário) e eventos pontuais (data e hora específicas).
  • Registrar para cada evento o conteúdo editorial: título, descrição, categoria (ex.: reunião semanal, aula livre, aula de inglês, onboarding, networking), capa, anfitrião (nome e cargo), local (presencial/online) e link de participação.
  • Gerar dados estruturados de SEO (rich results) para que o Google exiba os eventos nos resultados de busca.
  • Exibir apenas eventos ativos cuja próxima ocorrência ainda não aconteceu, ordenados pela data mais próxima.

Critérios de aceite

  • A seção "Próximos eventos da comunidade" é renderizada na landing page com os cards dos eventos ativos.
  • Eventos recorrentes exibem o padrão semanal (dia da semana e horário) e eventos pontuais exibem a data específica.
  • Eventos inativos, eventos passados e eventos sem próxima ocorrência definida não aparecem na landing.
  • Os cards são ordenados pela próxima ocorrência, do mais próximo para o mais distante.
  • Cada card apresenta capa (ou placeholder da marca), badge de local (presencial/online), título, descrição, anfitrião (nome e cargo) e botão de participação.
  • O painel administrativo permite criar, editar, ativar/desativar, reordenar e pular a próxima ocorrência de um evento.
  • A landing inclui dados estruturados (JSON-LD) dos eventos quando existem eventos ativos com ocorrência futura.
  • Quando não há eventos futuros, a seção exibe uma mensagem de fallback orientando o visitante para o Discord.
  • Os cenários BDD abaixo estão cobertos por testes automatizados.

Teste

BDD

# language: pt

Funcionalidade: Agenda de próximos eventos da comunidade

  Cenário: Exibir a agenda com eventos ativos na landing page
    Dado que existem eventos recorrentes e pontuais ativos com ocorrências futuras
    Quando um visitante acessa a landing page
    Então a seção "Próximos eventos da comunidade" é exibida
    E os cards dos eventos ativos aparecem com título, data/horário, local e botão de participação

  Cenário: Ocultar eventos inativos
    Dado que existe um evento marcado como inativo
    Quando a landing page é renderizada
    Então esse evento não aparece na seção de agenda

  Cenário: Ocultar eventos sem ocorrência futura
    Dado que existe um evento cuja próxima ocorrência já passou
    Quando a landing page é renderizada
    Então esse evento não aparece na seção de agenda

  Cenário: Ordenar eventos pela próxima ocorrência
    Dado que existem vários eventos ativos com ocorrências futuras em datas diferentes
    Quando a landing page é renderizada
    Então os eventos são ordenados do mais próximo para o mais distante

  Cenário: Diferenciar eventos recorrentes de pontuais
    Dado que existe um evento recorrente (semanal) e um evento pontual (data única)
    Quando a landing page é renderizada
    Então o evento recorrente exibe o padrão semanal (ex.: "Toda Seg • 21:00")
    E o evento pontual exibe a data específica (ex.: "28 AGO • 20:00")

  Cenário: Publicar dados estruturados para SEO
    Dado que existem eventos ativos com ocorrência futura
    Quando a landing page é renderizada
    Então a página contém dados estruturados de eventos (formato de busca do Google)

  Cenário: Exibir fallback quando não há eventos futuros
    Dado que não existem eventos ativos com ocorrência futura
    Quando a landing page é renderizada
    Então a seção exibe a mensagem "Nenhum evento agendado no momento"
    E o visitante é orientado a entrar no Discord

  Cenário: Pular a próxima ocorrência de um evento recorrente
    Dado que um evento recorrente tem a opção de pular a próxima ocorrência ativada
    Quando a landing page é renderizada
    Então a próxima ocorrência exibida é a da semana seguinte

Bloqueada por

Metadata

Metadata

Labels

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions