insper-education / active-handout

https://insper-education.github.io/active-handout/
11 stars 4 forks source link

Avisar aluno que página está desatualizada #21

Closed rafaelcorsi closed 3 years ago

rafaelcorsi commented 3 years ago

Acontece muitas vezes do aluno estar com a página aberta no navegador com uma versão antiga, poderíamos indicar para o aluno atualizar a página.

igordsm commented 3 years ago

Minha sugestão seria fazer usando setInterval, fazer um fetch HEAD e olhar para o cabeçalho Last-Modified.

cicerotcv commented 3 years ago

O deploy da página ocorre só quando o código do Github muda ou tem como atualizar o conteúdo do site localmente? Dependendo de como for, dá pra usar o setInterval que o @igordsm sugeriu com e fazer uma requisição periodicamente na API do GitHub.

Fazendo um GET em https://api.github.com/repos/insper-education/active-handout a gente obtém o momento do último push

{ 
// ...
  "created_at": "2021-03-30T17:08:42Z",
  "updated_at": "2021-05-19T22:26:50Z",
  "pushed_at": "2021-05-13T18:33:10Z",
// ...
}
rafaelcorsi commented 3 years ago

@cicerotcv não precisamos fazer um request na api do github, só precisamos dar um novo get própria página:

➜ ~ curl -I https://insper-education.github.io/active-handout/

HTTP/2 200 
server: GitHub.com
....
last-modified: Thu, 13 May 2021 18:33:19 GMT
...

Eu sugiro usar a informação do github.io ao do arquivo no github pq usamos o actions do para dar o deploy na página e isso leva alguns minutos para acontecer, então vai ter um momento que o arquivo markdown está atualizado e o site não e se o aluno der refresh vai continuar desatualizado.

Alguma ideia de como seria a notificação? Banner?

toshikurauchi commented 3 years ago

Que tal um snackbar: https://www.w3schools.com/howto/howto_js_snackbar.asp

Mas eu deixaria ele com um X pra fechar ao invés de fechar depois de um tempo. Ou até já com um botão pra atualizar a página. Melhor ainda seria se ele atualizasse de forma assíncrona e só mostrasse a notificação falando que a página foi atualizada. Poderia até, temporariamente, dar um highlight de outra cor no texto que tiver mudado, mas aí acho que já estou viajando.

On Fri, May 21, 2021 at 10:04 AM Rafael Corsi @.***> wrote:

@cicerotcv https://github.com/cicerotcv não precisamos fazer um request na api do github, só precisamos dar um novo get própria página:

➜ ~ curl -I https://insper-education.github.io/active-handout/

HTTP/2 200

server: GitHub.com

....

last-modified: Thu, 13 May 2021 18:33:19 GMT

...

Eu sugiro usar a informação do github.io ao do arquivo no github pq usamos o actions do para dar o deploy na página e isso leva alguns minutos para acontecer, então vai ter um momento que o arquivo markdown está atualizado e o site não e se o aluno der refresh vai continuar desatualizado.

Alguma ideia de como seria a notificação? Banner?

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/insper-education/active-handout/issues/21#issuecomment-845935810, or unsubscribe https://github.com/notifications/unsubscribe-auth/AABVVKHZIDJURGUTPFNHXQLTOZK67ANCNFSM45FXQBOQ .

rafaelcorsi commented 3 years ago

@toshikurauchi uhm... que tal criarmos um plugin para notificações? Ai qualquer módulo que precisar usar notificação faz por ele...

toshikurauchi commented 3 years ago

Gosto dessa ideia!

On Sat, May 22, 2021 at 8:04 PM Rafael Corsi @.***> wrote:

@toshikurauchi https://github.com/toshikurauchi uhm... que tal criarmos um plugin para notificações? Ai qualquer módulo que precisar usar notificação faz por ele...

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/insper-education/active-handout/issues/21#issuecomment-846473965, or unsubscribe https://github.com/notifications/unsubscribe-auth/AABVVKAPR7LFA6XGUNDQZT3TPA2BLANCNFSM45FXQBOQ .