Hoe is AlleCijfers.nl gemaakt?

Hoe is AlleCijfers.nl gemaakt?

Uitleg over de manier waarop AlleCijfers.nl is gemaakt. Veel informatie op basis van open data, gemaakt met open source tools. Beschrijving van de componenten waarmee de statische, serverloze website AlleCijfers is gemaakt.

Open data en open source:

Het mooie is dat de programma’s en gegevensbronnen die voor AlleCijfers.nl zijn gebruikt voor iedereen beschikbaar zijn. Het is echt iets om trots op te zijn dat de Nederlandse overheid zoveel gegevens via ‘open data’ beschikbaar stelt! Alle bronnen die voor AlleCijfers zijn gebruikt worden in het overzicht van alle bronnen vermeld. Het overzicht van alle veranderingen en toevoegingen aan AlleCijfers vind je in de wijzigingsgeschiedenis.

En het is echt positief dat er via internet en nieuwe technologieën zoveel mensen samenwerken aan ‘open source’ oplossingen! Dit maakt het mogelijk om AlleCijfers.nl met een combinatie van standaarden en programma’s te maken. Zie onderstaande afbeelding en de toelichting per programma onder de afbeelding:

Afbeelding van de architectuur van de gebruikte programma's en platformen om tot de statische, serverloze oplossing voor AlleCijfers te komen.

  • De open data is op verschillende portalen beschikbaar. Afhankelijk van de aanbieder kan de data worden gedownload en/of met een directe interface (API) worden geladen. Downloads zijn bestanden in bijvoorbeeld CSV, Excel of JSON formaat. De APIs maken het mogelijk om grotere hoeveelheden data direct in te lezen in applicaties die de data verwerken. Beide oplossingen gebruik ik, afhankelijk van de situatie.
  • De data verwerk ik in Python. Hierbij maak ik gebruik van de Pandas module. Pandas maakt specifieke objecten van de data (series, dataframes en panels) waarmee het goed mogelijk is om de data effectief te bewerken. Er zijn veel statistische bewerkingen mogelijk (ook dankzij de Numpy module) en die worden in 1 keer op de hele dataset uitgevoerd.
  • Met het programma ‘Hugo’ (een zogenaamde “static templating website engine”) verwerk ik de data bronnen in combinatie met pagina templates tot kant en klare statische web pagina’s.
  • Deze webpagina’s maken gebruik van verschillende standaard oplossingen.
  • Hierbij is het ‘bootstrap raamwerk’ heel belangrijk. Het ontwerp van de pagina’s op AlleCijfers is hierop gebaseerd. Hierdoor zijn alle pagina’s standaard ‘responsief’ zodat ze goed in ieder formaat worden weergegeven (desktop computer, laptop computer, ipads en andere tablets en mobiele telefoons). De wijze waarop je dit kunt doen staat bijvoorbeeld heel duidelijk op WebPlatform.org.
  • De data per onderwerp (bijvoorbeeld het verloop van het aantal leerlingen op een basisschool over de jaren) wordt in grafieken getoond met behulp van de Google Charts JavaScript oplossing.
  • De bestanden die voor bootstrap en Google Charts nodig zijn worden via internet ingeladen vanaf een “content delivery network”. Dit gebeurt ook voor de Google Adsense modules (gebruikt om advertenties te tonen) en de MailChimp bibliotheek (gebruikt om email adressen op te slaan en een notificatie te versturen als de gegevens van een nieuw kalender jaar zijn geladen).
  • Alle pagina’s samen vormen de website. De site wordt ‘statisch’ genoemd omdat de pagina’s alle informatie bevatten die nodig is. Het JavaScript wordt door de browser uitgevoerd. Er is geen aparte web server of applicatie server nodig. Daarom is AlleCijfers een ´serverless website´. Dit wordt ook wel JAMstack (JavaScript, APIs en Markdown opgestapeld) genoemd.
  • De webpagina’s worden naar de browser gestuurd door een ‘platform cloud service’: de pagina’s zijn via internet bereikbaar door ze op de ‘simpel storage solution’ (S3) van Amazon Web Services (AWS) te huisvesten (hosten). Je bekijkt hem nu! :)
  • De manier van werken die ik hanteer is “agile”, dit maakt het mogelijk om heel frequent in kleine stapjes verbeteringen aan AlleCijfers door te voeren.

Blader door de definities:
Uitleg over de manier waarop AlleCijfers.nl is gemaakt.
Interessant? Deel deze pagina!:

Deel deze pagina op Facebook!

Deel deze pagina op Google+!

Deel deze pagina op LinedIn!

Deel deze pagina op Twitter!

© AlleCijfers 2016-2018 Heb je een vraag of opmerking? Neem contact op!