elstar IT

Fullstack | Java | Tech Speaker | Tech Coach | Frank van der Linden

  • About me
  • Blog license
  • My Open source projects

NL Portal, a open source project

20-11-2024 no responses flinden68 development

Since August 2023 I do a project at the city of The Hague, to rebuild their portal for their citizens. They use modules from the NL Portal open source project in their the new portal and custom integrations. In the future this custom integrations should apply to the general structure based on NL Portal.

NL Portal overview

NL Portal project can be found on Github and is open source maintained by Ritense. The NL Portal is an initiative of the VNG, The Association of Netherlands Municipalities. It is based on the Common Ground principle

Common ground principle

The Common ground principle consist of 5 layer principle.

  • Layer 1: Storage
  • Layer 2: Service, api’s
  • Layer 3: Integration
  • Layer 4: Business prosesses, like BPMN
  • Layer 5: Interaction

NL Portal structure

On Github of NL Portal you can see a list of repositories

  • nl-portal-frontend-libraries: the frontend with React components.
  • nl-portal-backend-libraries: set of backend Kotlin components, based on Spring auto configuration, which expose data to the frontend with GraphQL.
  • nl-portal-frontend-template: template repository which used the nl portal frontend libraries and can be used for your own code/portal
  • nl-portal-backend-template: template repository which used the nl portal backend libraries and can be used for your own code/portal
  • helm-charts: to deploy the applications to Kubernetes
  • nl-portal-docker-compose: set of docker compose and test data to set up all the other backend services, for local development

NL Portal Backend Libraries

I am contributing mainly to the NL Portal Backend libraries, which is written in Kotlin and used Spring and GraphQL, based on the Spring auto configuration. When using the library you can choose only the modules necessary for your own project.

Here a list of modules in the backend library

  • Authentication: use the Spring security oAuth with Keycloack, but can be used with any oAuth provider
  • Cases API (OpenZaak): cases for citizens
  • Tasks: tasks for the citizen, based on objects API,
  • Objects API: for generic objects based on jsonschema
  • Documenten API
  • Payment
  • Open Klant: user registration with communication preferences and contact moments
  • BRP API: personal information from central registry
  • KVK API: company information from chamber of commerce registry

My personal experience

I am really happy to work with Kotlin. It is Java on steriods, so much nice features to write less code. Learning a lot about open source projects and how to maintain it. For every new feature you need to keep in mind that it should be as generic as possible. Spring is a great help with all the configuration properties.

Tags: common ground, development, Kotlin, NL Portal, open source, springboot

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

  • « 10th anniversary as a freelancer and more…

Contact me

My name is Frank van der Linden and I am an independent software developer based in the Netherlands. The last 2 years I was awarded as IBM Champion. Also I am on the board of OpenNTF. My specialisations are Java, Web development and Domino.


If you want to hire me, please fill in the Contact form


IBM Champion web badge
Apache Logo

All the code on this blog are under the Apache License 2.0. For more details, see Apache License 2.0

Most recent posts

  • NL Portal, a open source project
  • 10th anniversary as a freelancer and more…
  • Engage 2020: Hello are you listening, There is stream for everything
  • Spring Cloud Function on Azure run locally
  • Deploy Spring Cloud Function to IBM Cloud

Latest reactions

  • Spring Cloud Function on Azure run locally - elstar IT on Deploy Spring Cloud Function to IBM Cloud
  • flinden68 on Quick XPages tip: add Fullcalendar plugin to your application
  • Rajesh samal on Quick tip: Swagger support for Spring Webflux
  • dsieyx on Quick XPages tip: add Fullcalendar plugin to your application
  • John on Named as IBM Champion 2019

Archive

  • November 2024
  • April 2024
  • March 2020
  • February 2020
  • January 2020
  • October 2019
  • September 2019
  • June 2019
  • May 2019
  • April 2019
  • March 2019
  • January 2019
  • December 2018
  • October 2018
  • September 2018
  • May 2018
  • April 2018
  • March 2018
  • February 2018
  • January 2018
  • December 2017
  • November 2017
  • October 2017
  • July 2017
  • June 2017
  • May 2017
  • April 2017
  • March 2017
  • February 2017
  • January 2017
  • December 2016
  • November 2016
  • October 2016
  • September 2016
  • August 2016
  • June 2016
  • May 2016
  • April 2016
  • March 2016
  • February 2016
  • December 2015
  • November 2015
  • October 2015
  • September 2015
  • August 2015
  • July 2015
  • June 2015
  • May 2015
  • April 2015
  • March 2015
  • February 2015
  • December 2014
  • October 2014
  • September 2014
  • August 2014
  • July 2014
  • June 2014
  • May 2014
  • April 2014
  • March 2014
  • February 2014

Category

  • bluemix
  • business
  • cloudant
  • community
  • development
  • hrassistant
  • openntf
  • running
  • salesforce
  • Springboot
  • Tesla
  • trailrunning
  • Uncategorized
  • watson
  • OpenNTF
  • Collaboration Today
  • XSnippets
  • Stackoverflow
  • IBM Collaboration Solutions
  • Social Business Toolkit
  • About me
  • Dutch curriculum vitae
  • English curriculum vitae
  • Google+
  • LinkedIn profile
  • Twitter
  • Slideshare
  • Blog license
  • My open source projects