GovData.de is the data portal for Germany. The federal, state and local governments can share their data. Although the "Open Data Act" makes it obligatory to share data, only about 52,000 data sets are online so far.
Create a small web application that provides a dashboard showing how many data sets each federal ministry has made available on GovData. States, municipalities and other institutions should be ignored. It should be easy to tell from the dashboard which ministries have provided the most data.
Use GovData's CKAN Action API (documentation) to solve this challenge. In departments.json
you will find all federal ministries and their subordinated agencies that have published data on GovData.
Use a non-proprietary tech stack of your choice and explain in a readme how to run your solution. Please use version control (git is preferred).
As we take every submission seriously, we would like to ask you to submit your coding challenge in one of the following languages:
- Java
- Kotlin
- Javascript
- Typescript
If you intend to solve the challenge in another language, please talk to us and see what we can do.
You have two options for submitting your solution:
- Hosted repository (preferred)
Please email a link to a GitHub/Bitbucket/GitLab/etc. repo to challenge@digitalservice.bund.de. Make sure to make the repo private 3 days after the interview.
Alternatively, you can email your solution as a zip file to challenge@digitalservice.bund.de. Make sure to include the commit history in your submission.
We want to use this challenge to understand how you would approach such a problem in a work setting.
Among other things, we pay attention to:
- how you structure your application and your source code,
- how you name variables/functions/classes/packages,
- how you test your application and what kinds of tests you're writing,
- how you document your application, including instructions to run the project,
- what your commits look like,
- whether you know how to consume APIs efficiently,
- what tooling you use,
- overall consistency & attention to detail.
You should turn in a complete and runnable solution, but do not gold-plate it: we don't expect you to spend more than a few hours on this exercise.
In the technical interview that follows we would like to discuss your approach, and that includes talking about areas you would want to improve if given more time.
Note that the UI won't be part of the evaluation (could be plain HTML for instance).
We look forward to your submission! Please let us know if you have any questions or concerns.