Skip to content

BROSTAR simplifies the datamanegement of the Basis Registratie Ondergrond (BRO)

License

Notifications You must be signed in to change notification settings

nens/brostar-api

Folders and files

NameName
Last commit message
Last commit date

Latest commit

800dfd0 · Jan 2, 2025
Sep 24, 2024
Jan 2, 2025
Jan 2, 2025
Dec 18, 2024
May 27, 2024
Sep 24, 2024
Dec 10, 2024
Oct 31, 2024
Dec 6, 2024
Mar 12, 2024
Sep 24, 2024
Mar 22, 2024
Sep 23, 2024
Jan 2, 2025
Apr 10, 2024
Apr 9, 2024
Oct 30, 2024
Apr 16, 2024
Aug 8, 2024
Dec 12, 2024
Jan 2, 2025
Nov 18, 2024
Sep 24, 2024
Dec 12, 2024

Repository files navigation

BROStar API

Introduction

BROStar is a data management product for the Dutch Basis Registratie Ondergrond (BRO). The code for the backend is stored in this repository. It consists of an API for importing, storing, and delivering data. The backend is open source, and can be self-hosted. The frontend is developed and hosted by Nelen & Schuurmans. This is a web application created on top of the API, making the data management of BRO data very accessible. Interested? Contact info@nelen-schuurmans.nl.

Project description

The backend consists of an API with:

  • An import task endpoint. This can import all current data from a BRO domain based on a KvK and project number.

  • An upload task endpoint. This can send data to the BRO, with a JSON input of all relevant data. The API handles the transformation to XML format and the message traffic to and from the BRO.

  • Endpoints for all assets imported from the BRO.

Backend development instructions

To install for development:

$ docker compose build
$ docker compose pull
$ pip install pre-commit  # Just needed once for your laptop.
$ pre-commit install # Just needed once to make sure that pre-commit runs on each commit for this project

The development setup includes a postgres database and redis.

Some instructions:

$ docker compose up  # Starts the site on localhost:8000
$ docker compose run --rm web pytest
$ docker compose run --rm web python manage.py migrate
$ pre-commit run --all  # runs the formatter, checks, etc.

Do the regular django "migrate", "createsuperuser" stuff.

  1. Create an organization, fill in the KvK, and optionally fill in authentication details.

  2. Create a user profile for the superuser.

If a requirement has changed (either dependency in pyproject.toml or an extra development package in requirements.in:

$ docker compose run --rm web pip-compile --extra=test \
  --output-file=requirements.txt dev-requirements.in pyproject.toml
$ docker compose run ...same command... --upgrade  # to grab new versions

Internal N&S server installation notes

This is a public project, so the actual server deployment scripts with the passwords and so are safely hidden away in https://github.com/nens/brostar-site :-) We're installed with docker compose on https://staging.brostar.nl and https://www.brostar.nl . See the readme of brostar-site for the internal deployment documentation.

Make releases with "zest.releaser" (pip install zest.releaser to install it). "fullrelease" updates the release date, does a git tag and updates the version number.

$ fullrelease

Build the documentation

We use mkdocs for documenting BROSTAR. To build the docs locally:

$ cd docs
$ python3 -m venv .venv
$ .venv/bin/pip install -r requirements.txt
$ mkdocs serve

The docs are then available on http://127.0.0.1:8000/`.

Github automatically builds the docs from main branch and uploads them to https://docs.brostar.nl/