System and Project-level objects
This module should have similar configuration details stored at both the system and project levels. IT should have a library of preconfigured label templates and compatible label sets stored at the system level. The module should ship with a set of label templates and label sets, and it should allow admins to add more of the same via the system configuration.
At the project level, the module should allow the project user to read the system-level objects, copy them to the project configuration, and customize them for the project's needs.
Config settings
The module should use very few settings. It should require a multiple-instance object for label templates and one for label sets. In the initial design, these fields could be displayed, and the module could be configured by cutting and pasting JSON blobs into them.
Marketplace
As part of the user-friendly UI, the module should present system objects in a marketplace for selection. The marketplace should provide images of each label template. These can be rendered via Labelary. We should consider caching these images to prevent rate limiting. We could render and store them on save.
The initial view of the label templates and label sets will be empty. The user can add these objects from the Marketplace by selecting or copying them.
UI
Left side bar
The module should present the marketplace objects as pages to the REDCap UI in the left side bar under the External Modules heading:
- Configure Zebra Label templates (with "fas fa-cog")
- Configure Zebra Label Sets (with "fas fa-vials")
e.g.

System and Project-level objects
This module should have similar configuration details stored at both the system and project levels. IT should have a library of preconfigured label templates and compatible label sets stored at the system level. The module should ship with a set of label templates and label sets, and it should allow admins to add more of the same via the system configuration.
At the project level, the module should allow the project user to read the system-level objects, copy them to the project configuration, and customize them for the project's needs.
Config settings
The module should use very few settings. It should require a multiple-instance object for label templates and one for label sets. In the initial design, these fields could be displayed, and the module could be configured by cutting and pasting JSON blobs into them.
Marketplace
As part of the user-friendly UI, the module should present system objects in a marketplace for selection. The marketplace should provide images of each label template. These can be rendered via Labelary. We should consider caching these images to prevent rate limiting. We could render and store them on save.
The initial view of the label templates and label sets will be empty. The user can add these objects from the Marketplace by selecting or copying them.
UI
Left side bar
The module should present the marketplace objects as pages to the REDCap UI in the left side bar under the External Modules heading:
e.g.