16 februari, 2017

Wat begon als een vraag voor een interne communicatieoplossing leidde uiteindelijk tot een door ons zelf ontwikkelde Drupal chatmodule.

Veel hogescholen en organisaties maken voor onder meer de communicatie gebruik van verschillende externe systemen. Denk aan e-mail of chatapplicaties als WhatsApp. NHL Flex wilde alle studie gerelateerde communicatie echter binnen het eigen Drupal platform laten verlopen.

Met deze vraag zijn we op zoek gegaan naar een passende oplossing en kwamen wij in eerste instantie uit bij Slack. Het probleem was echter dat Slack niet geïntegreerd kon worden binnen Drupal 8, wat juist de wens was van NHL Flex. We hebben vervolgens ook naar andere beschikbare Drupal chatmodules gekeken, maar deze voldeden uiteindelijk niet aan de gestelde eisen.

Daarop besloten wij om zelf aan de slag te gaan met de ontwikkeling van een eigen chatmodule genaamd Chat Channels, of zoals wij het intern noemen ‘De Slack voor Drupal’.

Chat per onderwerp

Het ontstaan van de naam is eigenlijk heel simpel. Iedere chat heeft namelijk net als bij Slack een eigen ‘channel’. Studenten, docenten en werkgevers kunnen aan een kanaal deelnemen en vervolgens meepraten over het onderwerp.

Het unieke van NHL Flex is dat zij binnen de beschikbare opleidingen werken met verschillende modules. Iedere module heeft bepaalde leeruitkomsten waarover als onderwerp gecommuniceerd kan worden.

Het grootste voordeel van Chat Channels is dat je per onderwerp een chat kunt opzetten en studenten daarin zowel met elkaar als met de docenten kunnen discussiëren en vragen stellen.

Naast de opleidingen kan NHL Flex Chat Channels ook inzetten voor andere activiteiten. Stel dat er een feest wordt georganiseerd, dan wordt daar een kanaal voor aangemaakt waarin alles over het feest wordt gecommuniceerd.

Op deze manier wordt alle communicatie van NHLF Flex netjes gebundeld binnen het bestaande Drupal platform dat wij voor hen hebben gerealiseerd. Om nog meer structuur te realiseren wordt per chat via een indicator aangegeven hoeveel ongelezen berichten je als gebruiker nog hebt. De indicator verdwijnt wanneer je de betreffende chat opent en de berichten hebt gelezen.

Als je binnen een chat naar boven scrollt om bepaalde zaken terug te lezen, krijg je naast je scrolldown button een indicator te zien wanneer er nieuwe berichten zijn. Op deze manier blijf je volledig op de hoogte van de meest recente ontwikkelingen binnen je kanaal.

Drupal Chat Channels

Integratie emoticons en Threading

Berichten die worden verstuurd kunnen worden voorzien van emoticons. In eerste instantie hadden we in gedachte om dit te doen via de all-inclusive text editor DraftJS, maar de implementatie hiervan zou tot onnodig veel code leiden. Daarom hebben we de smileys custom geïntroduceerd en werken hetzelfde als bij Slack. Wanneer je bijvoorbeeld :smile: intypt wordt een smiley getoond.

In Chat Channels is ook ‘threading’ geïmplementeerd. Wat je namelijk vaak ziet is dat er binnen een chat iets interessants wordt gezegd, maar vervolgens alweer nieuwe berichten verschijnen die dat bericht wegdrukken. Threading maakt het mogelijk dat je op een specifiek bericht kunt reageren en dit niet in de chat zelf verschijnt, maar in een subchat. Hierdoor kun je dieper ingaan op een discussie of vraag.

Strakke communicatie tussen hogeschool, werknemer en werkgever

Binnen Chat Channels zijn er drie verschillende entiteiten:

  • Chat Channel
  • Message
  • Member

Wanneer een gebruiker lid wordt van een kanaal, wordt daar een member-entiteit voor aangemaakt. Ieder bericht van deze gebruiker wordt vervolgens als een message-entiteit geplaatst en gekoppeld aan deze gebruiker.

Alle data wordt opgeslagen in de database van Drupal en berichten worden op een vastgesteld moment opgehaald uit de database, bijvoorbeeld na een aantal seconden of zelfs realtime.

Chat Channels is daarnaast geïmplementeerd via de Group module, om daarmee groepen of communities te kunnen definiëren.

Binnen Chat Channels kunnen zodoende verschillende groepen worden aangemaakt voor bijvoorbeeld werkgevers. NHL Flex kan op deze manier werkgevers die werknemers een studie bij hen laten volgen toegang geven tot het platform, zodat zij met elkaar hierover kunnen communiceren en de voortgang monitoren.

Chat Channels voor andere doeleinden

Uiteraard kan Chat Channels naast hogescholen als NHL ook voor andere organisaties en sectoren worden ingezet.

Stel dat je een Drupal website hebt met verschillende interne onderdelen, dan kan voor ieder onderwerp een aparte chat worden aangemaakt. Denk aan een innovatieproject waar verschillende werknemers bij betrokken zijn.

Maar ook een forum kan gebruikmaken van Chat Channels, waardoor je niet enkel reacties plaatst maar echt kunt doorpraten over onderwerpen en je het chatgevoel krijgt.

Toekomstgericht

Chat Channels is ontwikkeld voor Drupal 8 en zodoende toekomstbestendig. Inmiddels is Chat Channels op Drupal.org beschikbaar gesteld voor andere developers om te gebruiken en verder te ontwikkelen.

Op deze manier geven wij niet alleen iets terug aan de Drupal community, maar kan Chat Channels ook continu worden voorzien van nieuwe functionaliteiten!