
Release Notes - Version 2.3.10.0 (12-05-2025)
Features:
- New API method for fetching municipality details by slug
Fixes:
- For Schiedam the text of the dropdown question answer(s) must be send, instead of the answer code.
- Added extra logging for Schiedam Zaaksysteem integration
- Removed default classification for Schiedam Zaaksysteem integration
Release Notes - Version 2.3.9.0 (09-05-2025)
Features:
- Schiedam Zaaksysteem integration - for production
Changes:
- Code refactor to make the file uploads to the BinnenBeter API more robust.
- Code cleanup to remove a lot of SonarCloud warnings
- Save question answer which are not defined in a dropdown list
Notes:
- Version 2.3.8 was abandoned, due to errors.
Release Notes - Version 2.3.7.0 (28-03-2025)
Changes:
- Integration services for external municipalities has been improved an made more robust.
Release Notes - Version 2.3.6.0 (27-03-2025)
Fix:
- For external municipalities, show the external report number in the emails, where applicable
- External sub-hint was not shown after selecting a quick suggestion
Release Notes - Version 2.3.5.0 (17-03-2025)
Fix:
- Duplicate reporter records in BinnenBeter (Reppido)
- Fix duplicate emails being sent
- Fix email was always sent when the the user did not enable the email toggle yet
- Fix emails were not send if there are more than two photos.
Other:
- Added extra configuration fields per municipality
- Fixed a null pointer issue
- Code cleanup
Release Notes - Version 2.3.4.0 (26-02-2025)
Feature:
- XXLLENCE Integration - improvements
Fix:
- Temporarily removed the retry and delay when invoking the Signalen AI
- Fixed a bug when returning the report to the controller
- For XXLLENCE use "IN PROGRESS" as default status
Other:
- The Signalen AI should not return any null values in its output
- For Schiedam the category slugs had errors
Release Notes - Version 2.3.3.0 (18-02-2025)
Feature:
- XXLLENCE Integration
Debug:
- Added logging to check Classification HTTP calls
Release Notes - Version 2.3.2.2 (15-02-2025)
Feature:
- Code refactoring, for improved integration with XXLLENCE software
Fixes:
- Classification did not work for BinnenBeter municipalities
- Category was determined incorrectly for BinnenBeter municipalities
Release Notes - Version 2.3.2.1 (12-02-2025)
Feature:
- Integration of XXLLENCE software, for deploy
Release Notes - Version 2.3.2.0 (22-01-2025)
Feature:
- BinnenBeter integration, fetching photos separately instead of batchwise
- Fix allow send email checkbox in BinnenBeter
Release Notes - Version 2.3.1.3 (21-01-2025)
Fixes:
- Report notifications was sent in Dutch when it should be in English
- Push notification should work in the background as well
- Report on the map did not function due to a JSON conversion error
Release Notes - Version 2.3.1.2 (17-01-2025)
Fixes:
- In BinnenBeter the flag "E-mail updates on report" is now correctly set.
- Reporter information could not be updated to BinnenBeter.
- Municipalities are now sorted in the Classification UI.
Release Notes - Version 2.3.1.1 (10-01-2025)
Fixes:
- Categories were not loaded for BinnenBeter municipalities, due to a missing constructor.
Release Notes - Version 2.3.1.0 (09-01-2025)
Fixes:
- Push notification did not work on Android.
Release Notes - Version 2.3.0.5 (08-01-2025)
Changes:
- Push notification can now be enabled or disabled with a setting.
Release Notes - Version 2.3.0.4 (08-01-2025)
Features:
- Push notifications for iOS.
Changes:
- Code improvements to better maintainability and readability.
- Added more unit tests to increase code coverage.
Release Notes - Version 2.3.0.3 (26-09-2024)
Bugfixes:
- Emails were not sent correctly, due to a missing class method.
- Improved error handling when sending emails.
Release Notes - Version 2.3.0.2 (26-09-2024)
Changes:
- Code improvements to better maintainability and readability.
- Added more unit tests to increase code coverage.
Bugfixes:
- Fixed the Classification UI for external municipalities.
Feature:
- Push notification will now work for both Android and iOS.
Feature:
- New API methods for subscribing and unsubscribing to reports by device id.
- New API method for fetching all reports that have been subscribed to by a device id.
- API changes to include report subscription information when fetching a list of reports.
Bugfix:
- Added debug code to find out why the BinnenBeter API is returning the error "Required fields are missing".
- Report submission to BinnenBeter failed if address was is not present, with the error "Required fields are missing".
Changes:
- Many code improvements and bugfixes, after SonarCloud analysis.
Bugfix
- Fixed an issues with classification when municipalities have the same BinnenBeter configuration
Release
- This is the official build for the release of version 2.2.0
Changes:
- Push notification were disabled, because they were not sufficiently reliable.
Bugfixes:
- For BinnenBeter municipalities, Push notifications should contain the BinnenBeter report number.
- Solved an issue where invalid character were sent to the BinnenBeter AI, causing an invalid URI error.
- Solved an issue where push notifications would shown the wrong title in Dutch
- Solved an issue where reports would display the wrong category name
- Push Notification to iOS were send with the wrong APNS Topic.
Feature:
- Added Classification UI for external municipalities.
Feature:
- New API method that returns objects on the map for a specific category code and municipality.
- Added externalId and guid to the object on an map API method output.
- Submit a report to BinnenBeter, including an object selected on the map.
- The API methods that return BinnenBeter categories now also return the object type.
Feature:
- The categories tree now also works for BinnenBeter municipalities.
- The categories tree is now sorted with the default category last.
- If the BinnenBeter API throws an error, then instead all are returned under a main category labeled "Categories".
- The API method for the categories tree now also returns the default category, if available
Bugfix:
- reports on maps should use "date finished" for finished reports.
Feature:
- Bugfix: unable to create reports for an external municipalities.
Feature:
- The UI for testing the Signalen AI now also works for external municipalities.
Feature:
- Added new API method that return categories in a a tree format
Changes:
- Merged latest changes from the 2.2.2 version
Changes:
- GPS coordinates have been added to the list of reports.
Features:
- Reports on a map - returns a list of reports closest to given GPS location
Using the new API metho`ds /reports/nearest it is possible to retrieve a list of reports that are closest to a given GPS location. The API method /reports/nearest has an optional parameter "distance" which can be used to limit the distance to the reports. It also has an optional parameter "maxReports" which can be used to limit the number of reports that are returned.
Changes:
- The API method /reports/{deviceId} has a new optional parameter "maxReports" which can be used to limit the number of reports that are returned. this method has also been optimized to return the list of reports faster.
Fixes:
- Use the classification AI if the list of categories is not available.
- The list of categories is cached to reduce dependency on the BinnenBeter API.
Fixes:
- The external key from Reppido was not stored in the BuitenBeter database (3).
Fixes:
- The external key from Reppido was not stored in the BuitenBeter database (2).
Fixes:
- The external key from Reppido was not stored in the BuitenBeter database.
Fixes:
- Fixes the wrong list of categories for internal BuitenBeter municipalities.
- Fixes the problem of hanging transactions when the BuitenBeter API calls the Reppido API.
Fixes:
- Last changes to make push notifications work on iOS and Android.
Fixes:
- Added extra push notifications fields for iOS and Android.
- Allow a device to be re-registered with a different device token.
Fixes:
- Push notification now include reportId and municipalityId.
Feature:
- A push notification is now being send when the status of a reports changes.
- A push notification is now being send when the municipality send a message to the user.
Feature:
- Push Notifications (API implementation)
Feature:
- Add get all internal or external categories for search
Fixes:
- When submitting report, missing address is fetched form PDOK instead. (temporary fix)
- Added BuitenBeter API method to 1fetch report address from PDOK
- Added BuitenBeter API method to update the address of a specific report\
Fixes:
- LABEL "Meldings nummer" should be "Meldingsnummer"
- Distance to the address should allow for fractions
- The distance in the emails should be rounded to a whole number
features:
- Implemented quick categories for Reppido (using caching and Signalen AI)
- Script to anonymize reporters name, email and phone number
- Added defaultCategories
- For Reppido municipalities
- For non-Reppido municipalities
- Email blacklist
- Email blacklist is checked when creating a new report
- Email blacklist is also checked when updating a reporter
- Email blacklist is placed in its own controller
- Email black list methods are password protected
- Email blacklist throw error in Dutch and English
Improvements:
- Locating an address by GPS coordinates will not return a result > 250 meters away.
- Improved network connections increased memory, timeout and added automatic retires
- Added a new caching mechanism (EhCache) to the BB API
- The Google Static Map is stored on the Azure Blob Storage (faster and cheaper).
- Added some initial code for adding an Admin UI webpage
- Renamed the class "WSCLient.java" to "PDOKWebClient.java"
- Added a new field Report.addressDistance to store the distance to the address found with PDOK
- Black list warning dialog | error text has been updated
- Distance and GPS coordinates have been added to the emails
Unit Tests:
- Added JacCoCo to measure code coverage, and have it available in SonarQube
- Faster unit tests
- More unit tests, generated with ChatGPT
- Enabled sending emails on the TEST server
Hotfix:
- Report data was no longer being send to Reppido.
Bugfixes:
- Fixed connection issues with Reppido Signalen AI calls.
- Fixed a null pointer error when posting a report to a Reppido municipality, with no user details.
Bugfixes:
- The date and time are correctly displayed in the email.
- Hotfix for the issue where the create report processed rule in Reppido throws report not found exception from the BuitenBeter side.
- Refactor the code to enable the report creation in BB side first and then create in Reppido side. The reporter and report images will be added after the basic report creation complete in both sides.
Other:
- Merged several GIT branches into one.
- Unit tests now run against H2GIS, so no database connection is required.
Changes:
- Include the custom field option for the mobile application for integrated municipalities.
Bugfixes:
- The emails should now contain the correct time, instead of the UTC time.
Bugfixes:
- When finding the municipality by GPS coordinates, the API will now report "These coordinates are outside of The Netherlands", where appropriate.
Bugfixes:
- When searching for address, the API would throw an error if the search text included two consecutive spaces.
Major Fix:
- If a municipality is not found, then find the nearest municipality, if not more than 2 kilometers from the border.
Bugfixes:
- Increased the maximum number of connections in Hikari connection pool
- Locate address threw an error if GPS coordinates were negative
- Searching for municipality now returns a maximum number of records, to prevent a BROKEN PIPE error.
- Fixed BROKEN PIPE exception when searching for addresses.
Bugfixes:
- Some users report that they do not receive an email for some municipalities, when using the old app.
Bugfixes:
- Any reports inside the Rotterdam Havenbedrijf area are send to the Rotterdam Havenbedrijf, instead of Rotterdam.
Bugfixes:
- Google maps were not showing in the emails
Bugfixes:
- Set email address to null if it is not valid. The OLD BB sends invalid email addresses, which throws an exception.
- Fixed a null pointer error CreateReportMethodResult class.
- BuitenBeter API mistakenly throws an error "This location is outside of The Netherlands"
Bugfixes:
- Removed auto retry on calls to Reppido and the Signalen AI, it caused issues.
Bugfixes:
- Connected municipalities should not receive an email for a report.
Fixes:
- Connected municipalities will not receive an email.
- Configured BCC to be development@pharox.nl (will override on the server later)
- Prevent email from being sent on TEST server, and local server, using app properties setting.
Changes:
- The BuitenBeter API is now ready for ABGemeenten.
- The BuitenBeter API is now ready for including the Havenbedrijf Rotterdam
Improvements:
- The key for the Google Maps API can now be set from the configuration or application properties
Bugfixes:
- The "report solved" images were not displayed in correct report history page
Bugfixes:
- Reporter was created multiple times in Reppido
Bugfixes:
- It was no longer possible to send a message from the app back to Reppido.
- When showing report details, the status message was wrong in the report history.
Changes:
- The BuitenBeter API now supports CONNECTED municipalities
Improvements:
- Several performance improvements.
Reppido integration:
- Fetch report images from Azure blob instead of Reppido side for the external reports as well.
- Add the report solved images only for the last DONE status in report history.
Pen test:
- Invoking the BuitenBeter API from Reppido is now secured with a password.
- The updateReporter() and updaterReportStatus() API methods are now more secure.
Improvements:
- Signalen AI: if the Signalen AI fails, it will be retried max 3x.
- Signalen AI: if the Signalen AI fails completely, the default categories will be returned.
- To reduce clutter, the report controller has been split into multiple controllers.
Pen test:
- Security improvements, after Pen test result.
- Some controller are now password protected
- The JSESSIONID cookie has been removed
- In the report email, HTML and hyperlinks are automatically removed.
Features:
- Reporter data is now encrypted in the database
Improvements:****
- Added settings for deployment on the Production server.
Bugfixes:
- Chinthaka: bugfix with reporter details related boolean (Reppido)
- Edwin: Email to the municipality was not send if the the reporter is not set
Changes:
- The old BuitenBeter app now will now be required to give an extra password
- The old BuitenBeter can now fetch more details bout a report
Improvements:
- Residence name and code will be stored in the reports table.
- Address zipcode will now be stored in the reports table.
- Uses new Google Maps API
- Improvement for reading and writing BLOBS.
Fixes:
- Reports GPS coordinates were stored with insufficient precision
Improvements:
- Improved security of the BuitenBeter API.
Feature:
- Allow reporter to send a reply message to Reppido from the BB app.
Feature:
- Blob storage is now private an not accessible via the internets
Feature:
- getReportList() and getReportDetails() include reportNumber and externalReportId fields
Feature:
- Categories are available in English
- Support messages which are being send from Reppido
Bugfixes:
- The reporters IP address is no longer stored in the database.
- Email contained duplicate label "Gemeente"
Other:
- Code cleanup and stability improvements
- The API now uses the latest version of PDOK
Feature:
- Fixed the issue where the reporter would not receive an email when he toggles the "I would like to receive updates" toggle..
- Removed duplicate "gemeente" label in the emails.
Feature:
- Several small bugfixes.
Feature:
- First release for the pilot
Feature:
- The API method to fetch report details now fetches the data from Reppido when needed.
Feature:
- Update reporter detail saving in Reppido side.
- Status update API and save the status changes in the database
Feature:
- The API now indicates if municipalities are internal or external.
Feature:
- New reports are automatically copied to Reppido, if the municipality is a Reppido municipality.
Feature:
- This build contain extra API methods that will be used by the old BuitenBeter app to fetch reports and send report status updates back to the new BuitenBeter app.
Bugfix:
- Emergency bugfix: reports could not be submitted if no attachment were included.
Improvements:
- Some improvements to the emails
- The municipality now has the correct GPS extend
Bugfix:
- The API would throw an error if not email is set.
Improvements:
- The address search API has been improved. The address API has a better search algorithm, now sorts by distance, and the output includes GPS coordinates.
Changes:
- Multiple improvements the emails.
- The email now uses compressed thumbnail, with a rounded border.
- The email now work on both desktop and mobile.
- Classification: if less than 3 characters are used, the API will return the default categories.
Bugfix:
- Fixed a bug in the classification, which caused an incorrect category to be returned.
- An email is now also send if the user changes that he want to be notified about the report.
Changes:
- The emails now display better in multiple email clients
Bugfixes:
- It was not possible to submit a report when email address was missing
- Photos in email were displayed very large
Changes:
- The API now keeps a log for all emails that were sent.
Changes:
- The new list of categories has been uploaded, including the new follow up questions
- An email will be sent to the reporter and to the municipality when a report has been uploaded
Bugfixes:
- Issue 218641 has been fixed ("Report text must contain at least 3 characters")
- Issue 218167, the API method to fetch report details now return extra data for the follow up question answers:
Two new field have been added: "answerDisplayText" and "answerDisplayTextEN">
"questionAnswers": [ { "answer": "FQA004", "questionCode": "FQ001", "questionText": "Wat is precies het probleem?", "questionTextEN": "What is the exact problem?", "questionTitle": "Wat vervelend!", "questionTitleEN": "How annoying!", "answerDisplayText": "Lamp of lichtmast is beschadigd!", "answerDisplayTextEN": "De lamp is damaged", } ]
Other:
- This version has been prepared to be able to run on the Acceptance server
New:
- The API now sends emails when a new report is submitted
New:
- The API is now protected using a JSON Web token
New API Methods:
- The new API methods /authenticate can be used to generate a security token.
Other API methods require the security token to be included as a HTTP Bearer header
New:
- New API method to fetch the details of a report
- New API method to fetch the content of an attachment
Other changes:
- The API method /address/search has a new optional parameter municipalityCode
NOTE: The municipality to search in is determined by either the municipalityCode or the GPS location
- The API will first search inside the given municipality
- If less than #rows are found then the the API will continue to search in entire Netherlands
- If no municipality or GPS coordinates is given, the API will search in the entire Netherlands
Issue:
- The report details currently contains the full image, instead of a thumbnail
- Attachment content may not be correct due to encode/decode issues
Improvements:
- Files are now stored as a Blob file in an Azure Storage Container
Bugfixes:
- 215246: Get municipality - Incorrect municipality is displayed
- 215804:New report - Incorrect municipality is displayed
Improvements:
- Location searches should be faster; The url for the PDOK server has been updated
New:
- New API Method to returns the lists of reports for a specific device id.
Possible breaking changes:
- Old deprecated API methods have been removed.
Improvements:
- New look of the release notes document
New:
- Answers to follow up questions are now saved in the database.
Possible breaking changes:
- Province API methods now use the default message structure with "success", "error" and "data" fields.
Improvements:
- Address search methods now return HTTP status 500 when an error occurs
- Admin API methods now return HTTP status 500 when an error occurs
- Category methods now return HTTP status 500 when an error occurs
- Municipality API methods now return HTTP status 500 when an error occurs
- Report classification methods now return HTTP status 500 when an error occurs
New features:
- This version uses the Signalen AI, to automatically determine the categories for a report.
- New Category method for fetching Follow Up Questions
Improvements:
- The root path of the API ("/") now displays the these release notes. The release notes contain a link to the Swagger documentation.
New features
- Contains code to call the Signalen API to retrieve the categories for a report text.
Note: the Signalen API is a Python project and is stored in a different GIT repository
New features:
- New API method which can be used to update if the user wants to receive emails for a report.
Improvements:
- Searching for a municipality by GPS coordinates is now fast, because the API now uses PostGIS.
Changes:
- Error handling now uses standard format with "success", "error" and "data" fields.
Changes:
- When searching for a municipality, the API now uses a case-insensitive search on both the municipality name and the name of the residences that belong to the municipality.
Improvements:
- The root path of the API ("/") now display the Swagger documentation.
New features:
- It is now possible to submit reports to the BuitenBeter database using the (fully functional) API method /createReport.
Improvements:
- The Report API method “/report” now saves the report to the database.
- The API also saves the reporter info (name, email, and phone number), and attachment information to the database.
Changes:
- When the report request is not valid the server now return HTTTP code 400 (BAD REQUEST), instead of HTTP code 200 (OK).
Missing functionality:
- This version does not yet store the attached photos on the server
New features:
- This version includes a sub for the API method /createReport, which can be used to submit new reports. However this version of the API contains only a stub for /createReport, and doe snot yet save the report to the BuitenBeter database.
New features:
- This version does a rough check if a GPS location is inside The Netherlands.
New features:
- A new API method which can be used to search for addresses based on GPS location
Improvements:
- When searching for addresses, the house number are included if the search string includes a number
- The list of categories now includes an icon code ( unicode for an emoji )
Fixes:
- fix for the Extend (latitude, longitude were reversed)
New features:
- List of municipalities contains residences
- There is a new dummy API method to predict the categories for a report.
New features:
- This version contains a new API method which can be used to determine the municipality from a set of GPS coordinates.
First version of the BuitenBeter API.
New features:
- This version contains several methods related to municipalities.