Skip to content

v1.5.0

Choose a tag to compare

@JsCodeDevlopment JsCodeDevlopment released this 26 May 00:45
· 24 commits to main since this release

Notas de Release (v1.5.0)

🚀 Novas Funcionalidades

  • Sistema de Gamificação (XP e Streaks): Implementado um motor de recompensas onde o utilizador ganha XP ao concluir leituras de código, ler deep dives e passar em simulados. Inclui multiplicadores de XP para streaks (dias consecutivos) e uma chama animada interativa no cabeçalho (Session Nav) com o progresso em tempo real e tooltip detalhado.
  • Desafio Diário (Daily Challenge): Adicionado um banner de destaque no topo do catálogo de problemas (/problems). O sistema escolhe deterministicamente um desafio igual para todos os utilizadores diariamente, oferecendo bónus (+50 XP) para quem o completar em 24 horas, protegendo a sua streak.
  • Fila de Repetição Espaçada (Review Queue): Novo painel introduzido no Perfil do Utilizador (/profile) que utiliza algoritmos de repetição baseados no tempo (1d, 3d, 7d, 14d, 30d) para sugerir a revisão de problemas já completados. Consolida o conhecimento algorítmico e incentiva a prática diária.
  • Leaderboard Global e Social: Criação de uma página dedicada de Ranking (/leaderboard) onde os programadores podem comparar o seu XP e nível (Rookie a Master). Permite alternar entre o ranking "Global" (toda a comunidade) e "Seguidos" (apenas amigos e conexões do utilizador), utilizando ícones premium para o Top 3.

🛠️ Melhorias Técnicas

  • Sincronização Contínua de Progresso (Background Sync): O componente ProgressSyncOnLogin foi reescrito. Agora, além de sincronizar no login, ele escuta reativamente o evento algoria-progress e utiliza debouncing (espera de 5 segundos) para enviar discretamente atualizações de XP e Streaks para a base de dados Postgres, garantindo que o ranking está sempre atualizado sem request storms.
  • Performance com Extração JSONB: A rota da API do Leaderboard foi desenhada de forma altamente otimizada, utilizando queries SQL nativas do Postgres e o operador ->> do JSONB para extrair, converter para inteiro e ordenar o XP diretamente na query, evitando gargalos de processamento de memória no Node.js.