Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft da Milestone 4 - TabCoins #317

Closed
filipedeschamps opened this issue May 17, 2022 · 11 comments
Closed

Draft da Milestone 4 - TabCoins #317

filipedeschamps opened this issue May 17, 2022 · 11 comments

Comments

@filipedeschamps
Copy link
Owner

filipedeschamps commented May 17, 2022

Turma, chegou a hora de tornar a Milestone 4 realidade, a que implementa as TabCoins 💪 e que devemos fazer nessa próxima sexta-feira uma Live de Inauguração da Milestone como sempre fazemos.

Mas apesar do objeto central dessa Milestone ser as TabCoins, estou recebendo por vários locais outras sugestões e features satélites, sendo que umas são emergenciais. Então tentei centralizar o que eu acredito caber para uma próxima Milestone e dividi as sugestões em 4 tipos:

  1. Objeto principal da Milestone
  2. Features críticas
  3. Melhorias
  4. Itens de segurança

1. Objeto principal da Milestone

Isso já está definido, que são as TabCoins, mas tem algo extra que gostaria de agregar e discutir com vocês que é o TabCash. Na issue sobre as TabCoins eu vou detalhar isso. De qualquer forma, a existência das TabCois faz com que seja possível ordenar os itens da Home de uma forma mais sofisticada, como por exemplo, os conteúdos considerados mais valiosos dentro de um período de tempo.

2. Features críticas

Isso são as features que deveriam ser feitas urgentemente, inclusive até antes do objeto principal da Milestone:

  1. Recuperação de Senha #323
  2. Sistema de Notificação: versão beta #321
  3. Feature para remover conteúdos ou remover acesso dos usuários. Por enquanto tive que fazer isso no braço marretando diretamente o banco de dados. Por remover o conteúdo, precisaremos de um novo status de deleted.
  4. Paginação dos dados: isso primariamente para não deixar a Home crescer infinitamente e também para não estourar a API, como vai acontecer em endpoints como https://www.tabnews.com.br/api/v1/users e https://www.tabnews.com.br/api/v1/contents
  5. Primeira versão do sistema de auditoria pública: por conta das TabCoins, vamos precisar registrar todos os eventos de crédito e débito entre os usuários. E esse sistema deveria poder ser utilizado para registrar qualquer outro tipo de métrica. Isso foi inicialmente discutido nessa issue: Estatísticas do Site #237

3. Melhorias

  1. Salvar o conteúdo das postagens ainda não publicadas no localStorage #335
  2. Quantidade de respostas #332
  3. Tags para SEO e Redes Sociais #337
  4. useUser(): somente bater no endpoint se existir cookie indicando sessão #336
  5. Acessibilidade: Plugin eslint para verificar a11y em jsx #322

Não vai caber nessa Milestone:

  1. Upload de imagens: Upload de imagens #308

4. Itens de segurança

Isso pode e deve ser executado a qualquer momento, em qualquer ordem, e pode e deve ser arrastado entre as Milestones:

  1. Validação de email+senha deve tomar o mesmo tempo quando o usuário existe ou não: A validação de email+senha deve tomar o mesmo tempo quando o usuário existe ou não #186
  2. Problema: "Entrada do tipo de senha com auto-preenchimento habilitado" Fonte
  3. Problema: "Referrer Policy Inseguro" Fonte
  4. Problema: "Práticas recomendadas de HTTP Strict Transport Security (HSTS)" Fonte
  5. Problema: "Content Security Policy (CSP) não implementado" Fonte
  6. Problema: "Páginas sensíveis que podem ser armazenadas em cache" Fonte
  7. Problema: "Header Clickjacking: X-Frame-Options" Fonte
  8. Rate limiting: Alguma estratégia que bloqueie um mesmo ip de realizar o mesmo comando de forma abusiva contra o backend, seja criando contas, postando conteúdos, editando, etc.

Acho que isso cria uma Milestone de peso e que vai levar a experiência do TabNews para um nível simplesmente sensacional. Eu sinto que a plataforma já está muito gostosa de usar e interagir, principalmente pela postura das pessoas lá dentro, e com essa Milestone, tudo isso vai ser maximizado 🤝

E qualquer coisa extra que for executada da Milestone (que for feito o merge na branch main), vamos incluir ela na Milestone em curso para darmos os devidos créditos 🤝

E se eu esqueci de algo, por favor me avisem. Naturalmente não dá para incluir tudo numa única Milestone, mas vamos abrir próximas Milestones até sentirmos seguros em colocar o projeto no estágio de Lançamento Público 🤝

@tembra
Copy link
Contributor

tembra commented May 18, 2022

Obtive acesso ao projeto hoje e até agora estou achando delicinha (:satisfied:) toda a ideia, organização e colaboração de todos os membros da turma!

Somente para ficar claro: a inauguração de um milestone significa que ele começará a ser desenvolvido agora ou significa a finalização dele e ida para produção? Pelo conteúdo desta issue eu entendi que se trata da inauguração.

Ainda estou no processo de on-boarding, lendo o diário de desenvolvimento, mas eu consigo facilmente implementar várias features mencionadas nessa milestone por você. Entretanto percebi que a maioria delas não tem uma issue relacionada e devido a isso não está necessariamente bem definida e/ou discutida.

Em caso de colaboração devemos abrir uma issue por conta própria para discussão e desenvolvimento? Esse é o caminho?

Também senti falta de algumas features básicas como o perfil de usuário, que será útil inclusive, por exemplo, para o sistema de notificação, pois acredito que não é todo mundo que vai querer receber um e-mail (ou uma chuva deles) quando tiver respostas nos seus posts.

Finalmente pergunto: Como está sendo controlado as issues ou tasks que devem ser cumpridas para cada milestone tendo em vista que elas não estão nem criadas? Está sendo usado algum gerenciador de projetos como o GitHub Project pra isso ou somente a funcionalidade de issues + milestones mesmo?

@rodrigoKulb
Copy link
Contributor

rodrigoKulb commented May 18, 2022

@tembra seja muito bem vindo ao projeto tabnews, essa é a inauguração da Milestone 4, desta forma o FOCO principal será essas atividades.

Edit: A Inauguração Oficial será na live conforme sugerido pelo Filipe dia 20/05/22

O @filipedeschamps deixa muito aberto a possibilidade de várias pessoas enviarem sugestões de PRs, assim mesmo não aprovando todas, claro que vai discutir e selecionar a melhor opção para o projeto, mas desta forma conseguimos um maior aprendizado do grupo, que irá seguir como um desafio o desenvolvimento.

Nessa Issue #17 você consegue conferir o resumo de todas as Milestones, e realmente a parte do perfil de usuário não está clara em nenhuma.

@filipedeschamps
Copy link
Owner Author

Sensacional @tembra !!! Esclarecendo seus pontos:

  1. Inauguração: correto, a gente dá um "soft lock" nos itens Milestone (e é soft mesmo, pois ela pode sempre mudar para melhor) e utilizamos essa Live para revisar essas issues e inaugurar essa nova temporada de desenvolvimento. Sabendo que desenvolvimento pode ser feito a qualquer momento, inclusive antes e após da abertura de Milestones. Só usamos elas como um norte de curto prazo.
  2. Organização das issues: antes da abertura de uma Milestone, eu crio todas as issues e tasks de cada tarefa. Você pode ver um exemplo disso na Milestone passada: https://github.com/filipedeschamps/tabnews.com.br/milestone/4?closed=1
  3. Sobre perfil do usuário: você na verdade me lembrou de outra coisa importante e que será necessário adicionar nessa milestone, que é listar os seus próprios conteúdos, independente do status. Mas sobre o Perfil em sí e a configuração de notificação, sugiro implementar isso na versão seguinte da versão beta inicial das notificações.

Então ao longo do restante dos dias dessa semana, eu vou começar a criar e detalhar cada issue e task da Milestone e quem quiser, já pode ir desenvolvendo ela 🤝

Se houver conflito de PRs, no sentido de que duas pessoas desenvolveram a mesma coisa, não tem problema. A gente em grupo avalia qual PR está mais próximo de ser aceito/finalizado e continua com ele. Como o @rodrigoKulb comentou, qualquer PR é bem vindo, pois mesmo que ele não seja aceito, ele já tirou o seu medo de contribuir (que é a maior barreira).

@tembra
Copy link
Contributor

tembra commented May 18, 2022

@rodrigoKulb perfeito! acabei buscando mais informações e encontrei justamente essa issue #17 que você citou!

@filipedeschamps entendido! como mencionei acima, acabei encontrando seu post que justamente fala sobre a organização das issues.

Sobre o perfil do usuário acredito que ninguém deixará de usar o TabNews (ou colocará o remetente na blacklist) por enquanto, mesmo alguns se incomodando com o recebimento dos e-mails após o desenvolvimento do sistema de notificação na versão beta, tendo em vista que a maioria dos usuários são pessoas sensacionais 😉

Dessa forma ficarei no aguardo da criação das issues e tasks para começar a contribuição com código.

Muito massa o movimento que você tem liderado na nossa área de tecnologia @filipedeschamps! Este projeto em específico irá contribuir muito para a comunidade open-source brasileira, pois muitos realmente não contribuem por medo, por não acharem que estão no mesmo nível, por não se sentirem capazes, ou por tudo isso junto! E este projeto está simplesmente desmistificando tudo isso. Parabéns!

Uma última dúvida: vocês tornaram o GitHub um ambiente de comunicação síncrona? hahaha 😂

@filipedeschamps
Copy link
Owner Author

filipedeschamps commented May 18, 2022

Sobre o perfil do usuário acredito que ninguém deixará de usar o TabNews (ou colocará o remetente na blacklist) por enquanto, mesmo alguns se incomodando com o recebimento dos e-mails após o desenvolvimento do sistema de notificação na versão beta, tendo em vista que a maioria dos usuários são pessoas sensacionais 😉

Eu acredito nisso! Por enquanto, são as pessoas mais fundamentais do projeto e não tenho dúvidas que todas as respostas serão muito bem recebidas. E nessa primeira versão beta, a notificação acontecerá somente contra o parent direto do conteúdo e implementar isso eu estou especulando aqui que é bastante simples.

Muito massa o movimento que você tem liderado na nossa área de tecnologia @filipedeschamps! Este projeto em específico irá contribuir muito para a comunidade open-source brasileira, pois muitos realmente não contribuem por medo, por não acharem que estão no mesmo nível, por não se sentirem capazes, ou por tudo isso junto! E este projeto está simplesmente desmistificando tudo isso. Parabéns!

É um prazer manter contato com as pessoas que estão se aproximando dos projetos (youtube, newsletter e agora tabnews). Estou literalmente na época mais feliz e satisfeita profissionalmente da minha vida inteira.

Uma última dúvida: vocês tornaram o GitHub um ambiente de comunicação síncrona? hahaha 😂

Depois da interação com o @rodrigoKulb em uns micro-PRs de refino que a gente fez no projeto depois do término da última Milestone, já não sei mais 😂 😂 😂

@joaogelado
Copy link

Aliás, uma página de "docs" da API seria muito conveniente. Estava pensando em fazer um post sobre isso enquanto a documentação da API não existe

@filipedeschamps
Copy link
Owner Author

@joaogelado seria sensacional um post lá no TabNews com o que você conseguiu capturar sobre o funcionamento da API, pois isso seria um ótimo teste se a "UX" dela está boa.

@filipedeschamps
Copy link
Owner Author

@joaogelado olha que timing: https://www.tabnews.com.br/victorodev/ba0a1e96-610e-429f-b712-be71fb83168e

@gabrieldev525
Copy link
Contributor

Como o @tembra, também obtive acesso ao projeto hoje! Estou achando bem bacana a organização e toda a interação que está sendo feita por aqui!!!

Estou lendo o diário de desenvolvimento para me situar e poder contribuir mais acertivamente com o projeto!

Eu tenho algumas dúvidas:

Quanto tempo foi definido para o desenvolvimento das milestones? Ou só definimos um prazo na live de inauguração?

Ao criar as issues na milestone, basta eu associar meu usuário como responsável na task que eu quero desenvolver ou temos algum outro controle de tarefas?

Mas desde já, digo que estou bem ansioso para colocar a mão na massa e contribuir para esse projetol!!

@filipedeschamps
Copy link
Owner Author

@gabrieldev525 sensacional, seja bem vindo! Sobre suas dúvidas:

  1. Exato, nós vamos definir um prazo da milestone inteira na Live. E sem apego ao prazo de fato, pois ele é apenas um ponto de referência.
  2. Até sexta-feira (estou torcendo para que dê tempo), eu vou criar todas as issues com instruções básicas e você não precisa associar o seu usuário. Não há problema duas pessoas trabalhando na mesma tarefa, dado que já algumas situações assim no passado e foi ótimo poder ver o mesmo objetivo por ângulos diferentes. Fora que você deveria encarar uma implementação que brilhe os seus olhos, pois isso vai ajudar a atravessar a barreira inicial de contribuição.

E show que está ansioso, eu estou também por essa milestone, tem muita coisa que realmente vai mudar a experiência do TabNews 🤝

@filipedeschamps
Copy link
Owner Author

O Github ta com problema em atualizar o corpo da primeira issue :(

image

Então vou fechar essa e continuar na #345

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants