Sentioo: un client di notifica per web app

Abbiamo pubblicato su GitHub sentioo, un sistema di notifica configurabile per applicazioni web, nato dalla tesi di laurea di un collaboratore.

La tecnologia chiave in questo caso è quella degli eventi inviati dal server.

Cosa sono gli eventi inviati dal server?

Server-sent events (SSE) è una tecnologia che consente a un browser di ricevere aggiornamenti automatici da un server tramite connessione HTTP. Tradizionalmente, una pagina web deve inviare una richiesta al server per ricevere nuovi dati; cioè, la pagina richiede dati dal server. Al contrario, con gli eventi inviati dal server, è possibile per un server inviare nuovi dati ad una pagina web in qualsiasi momento, “spingendo” i messaggi sulla pagina web. Questi messaggi in entrata possono essere trattati come Eventi + dati all’interno della pagina web (vedi documentazione degli eventi inviati dal server).

Gli eventi inviati dal server evitano l’utilizzo di tecnologie alternative non adatte, per motivi di semplicità o di efficienza delle prestazioni. Forse non avete bisogno del protocollo di comunicazione bilaterale dato da una websocket; e sapete già di aver bisogno di qualcosa di meglio dei sondaggi HTTP.

Quindi, se per qualsiasi caso, avete dei dati sul vostro backend che cambiano, e volete avvisare visivamente l’utente del cambiamento, è probabile che possiate considerare la nostra biblioteca come una soluzione praticabile.

Sentioo

Come spesso accade in informatica, sentioo è il nome scomodo scelto dopo oscuri e incomprensibili brainstorming degli sviluppatori. Nomina sunt substantia rerum: il suo nome ricorda il fatto che la nostra biblioteca “ti ha mandato” qualcosa da notificare all’utente, mostrando un bel distintivo colorato sopra un campanellino. Cliccando sulla campanella, appare un elenco di notifiche lette e non lette a tendina.

dropdown

Attraverso l’API data, è possibile contrassegnare un dato messaggio come letto, o cancellarlo dalla coda (e si ottengono anche azioni di massa).

Sentioo funziona come client per gli eventi del server (potete scrivere il server come volete, per esempio abbiamo usato java). È scritto come modulo frontend per un’applicazione web Vue, ma, dato che è un modulo isolato e autosufficiente, la scrittura di un semplice wrapper Vue permette di includerlo in qualsiasi applicazione javascript (per esempio, l’abbiamo usato anche all’interno di un codebase angolare).

Licenza e installazione

Sentioo è rilasciato sotto licenza the Apache License, Version 2.0.

Fare riferimento al Sentioo public repository su GitHub per ulteriori dettagli, specifiche tecniche, configurazione e personalizzazione del tema.

È anche disponibile come NPM package.