[TabNews] Encerramento da Milestone 6

Fala Turma, tudo bem com vocês?

Chegamos ao término da Milestone 6 no desenvolvimento do TabNews, onde o objetivo foi a otimização de desempenho e segurança.

Hoje venho destacar as principais melhorias implementadas no final da Milestone, desde a publicação comemorativa do aniversário de 1 ano de lançamento.

Dada a extensão das melhorias, desta vez apresentarei apenas uma lista resumida. Os detalhes e discussões sobre cada implementação podem ser encontrados nos links dos PRs, bem como nas issues relacionadas.

Novas funcionalidades

  • Mostrar mais dados no Perfil (saldos de TabCoins e TabCash, data de cadastro e link para editar) (#1558)
  • Separadas as abas de Perfil, Publicações e Comentários (#1577)
user_profile_page
Figura 1: Novas informações no perfil do usuário
  • API: Filtrar conteúdos de um usuário por tipo (publicação e/ou comentário) (#1188)
  • Adicionadas abas de Recentes para Comentários e Todos (#1588 e #1593)
  • API: Filtrar conteúdos por tipo (publicação e/ou comentário) (#1601)
  • Criada permissão para moderadores editarem perfil de outros usuários (#1615)
  • Armazenados eventos de edição do perfil, similar ao que ocorre na edição de um conteúdo (#1615)
  • Adicionado botão de copiar trecho de código (#1563)
Clique aqui >>>
para copiar
  • Destacar nos comentários o autor da publicação principal da página (#1589)
author
Figura 2: Identificador do autor nos comentários
  • Exibir (e retornar via API) a quantidade de qualificações positivas e negativas do conteúdo (#1607)
Página da lista de conteúdos Página do conteúdo
Figura 3: Votos na lista de conteúdos Figura 4: Votos no conteúdo
Turnstile
Figura 5: Cloudflare Turnstile

Acessibilidade/UX/SEO

  • Adicionados ou alterados ícones dos menus (#1562)
  • Indicar quando já estamos na página de cada link do menu (#1562)
ícones do menu
Figura 6: Menu com ícones e indicador da página atual
  • Melhoria na mensagem de aviso após alteração de email cadastrado (#1578)
  • Salvar Email no autocomplete ao invés do Nome de Usuário (#1584)
  • Usar a tag time para melhorar a indexação e apresentar corretamente a data de postagem das publicações nos resultados de busca (#1573)
  • Adequações em diversas tags com foco em acessibilidade e SEO (#1580)
  • Melhora ou adiciona labels nos formulários (#1580)
  • Adicionar rel="nofollow" nos links de conteúdos gerados por usuário (#1603)
  • Exibir sugestão randômica de título no placeholder ao criar conteúdo (#1604)
  • Melhora na mensagem de confirmação ao alterar username (#1617)
  • Retornar resposta da criação de conteúdo independente do resultado da notificação (#1630)
  • Aumenta o espaçamento entre o saldo e os botões de TabCoins (#1633)

Sistema/DevEx/Refatoração

  • Atualização do Node.js para v18 (#1572), com teste da v20 no (#1565)
  • Tratado erro de desconexão com banco de dados no descongelamento das lambdas (#1570)
  • Atualiza primer/react para v36.4.0, primer/octicons-react para v19.8.0 e faz as adequações necessárias (#1578)
  • Criados templates de issues e PRs (#1574)
  • Usar variáveis de ambiente no docker-compose.development.yml (#1602)
  • Criar o CONTRIBUTING.md (#1583)
  • Ajustes nas funções do authorization para deixá-las mais seguras e fáceis de entender (#1618)
  • Simplifica a leitura dos scripts do package.json ao unificar comandos repetidos (#1621)
  • Atualiza todas as dependências possíveis (#1622)
  • Altera os tipos de transações de conteúdos na tabela balance_operations (#1624)
  • Atualiza regras de lint e corrige problemas apontados pelo DeepScan (#1629)
  • Configura Mailgun como serviço de email transacional de contingência ao Resend (#1632)

Correções de Bugs

  • Corrige o valor debitado de TabCoins ao excluir conteúdo avaliado como relevante (#1554)
  • Faz aparecer as opções de classificação dos resultados na versão mobile da barra de pesquisa (#1559)
image image
Figura 7: Opções de ordenação de resultados da busca
  • Limitado tamanho do slug. Diminui o limite de 255 para 226 bytes para evitar erros na Vercel (#1560)
  • Rolagem horizontal por falta de espaço na lista de conteúdos. A v1 (#1562) corrigia com quebra de linha, mas a v2 (#1573) passou a truncar o username em caso de falta de espaço.
image
Figura 8: Nomes dos usuários truncados por falta de espaço
  • Rolagem horizontal por falta de espaço no Header. Passa a barra de busca para dentro do menu em telas muito pequenas (#1562)
  • Quebra do saldo de TabCoins e TabCash em diferentes linhas na página de perfil em telas pequenas. Evitada a quebra de linha (#1573)
  • Corrige texto TabCoin no singular na página de perfil (#1590)
  • Corrige numeração dos itens nas listas de conteúdos (#1594)
  • Corrige a navegação pelo menu utilizando o teclado (#1595)
  • Criado um Tooltip customizado para corrigir bugs do Primer (#1589)
  • Torna visível o Tooltip do ícone de exibir/ocultar a senha (#1620)
  • Correção de bugs na edição de perfil (#1615)
  • Correção dos nomes dos erros nos logs (#1628)

Contribuidores

Passamos de 70 contribuidores com código mesclado. 🎉🎉🎉

Deixamos nossos agradecimentos à Turma que colaborou de alguma forma com as últimas melhorias que chegaram em produção:

Concluindo

E com isso podemos concluir a Milestone 6, a mais longa até o momento:

user_profile_page
Figura 9: Fechando a Milestone no GitHub

Próximos passos

O desafio agora é criar ferramentas para que os autores possam utilizar seu TabCash.

A ideia é que o TabCash possa ser utilizado para o compartilhamento de espaços publicitários, então em breve traremos uma publicação que irá inaugurar a Milestone 7 - Revenue Share, mas as contribuições já podem ser enviadas. 🚀

Que sensacionaaaaaal!!! E muita coisa de valor destacada nessa publicação, valores de vários tipos inclusive, por exemplo:

Fui navegar naquela publicação no Museu sobre a evolução do TabNews que o GabrielSoziho criou e eu não lembrava que a árvore dos comentários ia gradativamente diminuindo espaço na esquerda e direita. Não lembrava que o menu lá em cima tinha um botão gigantesco verde para criar conteúdo... caramba como está legal acompanhar toda a evolução do projeto!

É só não parar, que sem perceber o projeto organicamente vai se transformando em algo melhor. Parabéns a todos os envolvidos 🤝

PS: o Figura 5 e Figura 6 parecem estar quebrados aqui para mim.

> Não lembrava que o menu lá em cima tinha um botão gigantesco verde para criar conteúdo... Eu não cheguei a ver esse botão em produção. Ele foi [movido para o menu](https://github.com/filipedeschamps/tabnews.com.br/pull/286) pouco antes de eu conhecer o TabNews. Já a árvore de comentários ainda possui pendências ([#379](https://github.com/filipedeschamps/tabnews.com.br/issues/379)). > PS: o `Figura 5` e `Figura 6` parecem estar quebrados aqui para mim. As duas imagens que eu tinha aproveitado do GitHub. 😒 Mudei elas para o imgpile, como os demais.
Quanta evolução! É muito massa fazer parte dessa comunidade e ver esse projeto crescendo e melhorando cada vez mais. Uma dúvida, existe algum **Changelog** sem ser publicações como essa?
> Uma dúvida, existe algum Changelog sem ser publicações como essa? Excelente pergunta meu caro! Não há changelog no sentido de `releases` oficiais, como em um software que utiliza Semantic Versioning, por exemplo. Tudo que é mesclado na branch `main` por padrão acaba entrando em produção automaticamente. Então o que de fato está acontecendo com o projeto é o que acontece lá no [repositório](https://github.com/filipedeschamps/tabnews.com.br) através das Issues e Pull Requests 🤝
Até dá pra criar um [changelog](https://www.npmjs.com/package/generate-changelog) automático pelos commits, até pq o repo ja usa commits no padrão usual (feat, fix, chore...) o que controla o changelog é a versão da app no package.json, entçao os commits indo pra produção nao seria bem um problema. Seria apenas um problema conceitual

Novamente, todos estão de parabéns pelo encerramento dessa Milestone!! E muito obrigado por detalhar tudo nesse post FelipeBarso!

E eu estou muito curioso de como a próxima, de Revenue Share, vai se desenvolver! Eu tenho certeza que vai ser uma das mais, se não a mais desafiadora de todo o desenvolvimento do TabNews...

Acho muito interessante que um conteúdo postado há 27 dias consiga voltar ao top 20 do TabNews (no momento em que escrevo está em 14˚).

Faz todo sentido uma publicação grande e relevante como essa manter destaque suficiente para continuar aparecendo na primeira página.

Parabéns pelo bom trabalho; certamente outras boas publicações também ressurgem do passado para capturar a atenção de novos olhos curiosos.

Viva o tabNews, de facto se está tornando no pedaço massa da internet que preconizado. obrigado e parabéns a toda equipe!

Parabéns a todos envolvidos no desenvolvimento desse pedaço de internet massa!