fiskaltrust-instore-app

fiskaltrust InStore App

The InStore App is a plug & play extension for fiskaltrust.Middleware powered POS Systems. It provides a zero-effort way to extend POS systems with processes like digital receipt, payment, printing, and loyalty.

Additional Information (SharePoint)

Additional InStore App documentation and files not stored in GitHub are available in SharePoint:

Prerequisites

Releases and Release Candidates (rc)

Releases and release candidates are done by creating a tag:

Trigger the build

To create a tag execute the following commands:

git tag v1.2.6
git push origin --tags

When the tag is pushed github actions workflow for release builds will trigger and create the following:

Test the release candidate

The main purpose of a release candidate is to be used for testing (mainly internal but also external if required). See here to get an idea how testing works.

Create a release out of a release candidate

When testing is successful, tag the same commit with the release version:

# Example: Promote rc3 to final release
git tag v1.2.7 v1.2.7-rc3
git push origin v1.2.7

Release a package to the public (release or release candidate)

Independent of the normal tests before making a release public do a smoke test:

Minimum smoke test:

Create release notes

Before releasing a package to the public the release notes should be ready and publicly available so that customers / users can get an idea at any time about the changes in new releases.

To create release notes:

Make the package available to the public

This is done by updating the preview (for release candidates) or stable (for releases) links in the permalink repository which will automatically make it available via the official links:

⚠️ CAUTION:

Changes to this list are usually done directly in the main branch and will immediately be active after pushing the change!

Architecture

Application Events

Most of the application events are based on MQTT Messages. For managing states and internal communication we are using a few more events that allow us to have a loosley coupled architecture.

MQTT Messages

The InStore App processes several messages from the MQTT Bus and publishes them in the local application

Filters

Receipts

Delivering receipts is a core mechanism of the InStore App. The InStore App is able to provide the compliant receipt in digital and phyiscal form (printed). While the printed form always depends on the printer (see Printer support section for further info), the digital receipt is usally transmitted via an URL.

Emitting Components

Emitting Components are components that act upon new receipts being available. These components use the data that is being received via the MQTT Bus and emit them in a specific form. Some of the emitters only make the information available but don’t act upon actions that are taken by the users (e.g. receipt received via NFC)

The following section contains a brief overview about the currently availble emitters.