mod-batch-print

Introduction

Jira link: https://issues.folio.org/projects/MODBATPRNT

GitHub link: https://github.com/folio-org/mod-batch-print

mod-batch-print module is created to handle printed notices in batch format. The mod-sender module has a new channel for printed notices which are sent to mod-batch-print using endpoint /mail. Before the working day starts there is a scheduled job which is fetching all current day single notice print entries and creating one batch file. 

mod-batch-print module also have CRUD operations for print entry management 

When fetching a list of print entries then the content field will be empty to improve performance. If you need content then get a single entry.

Goals and Objectives

  • Save single print messages in DB for later use
  • Create one batch file per day for printing all messages at once 

Requirements

Functional Requirements

  • Module must have /mail endpoint which can accept mod-sender messages
  • There is CRUD functionality of print items 
  • There is scheduler which is creating daily batch file
  • Module can be deployed in Folio infrastructure 

Non-Functional Requirements

  • Module is using common vert.x library as base 
  • All module endpoints are protected with permissions 
  • Permissions are handled by Okapi
  • All endpoints are described in ModuleDescriptor-template.json file 
  • Endpoints are documented with OpenAPI

Technical Design

Architecture Overview

In green color are the things we must add for this to work 

  1. Need to update mod-circulation module to handle printed notices https://folio-org.atlassian.net/browse/CIRC-1925
  2. Need to add new channel in mod-sender module https://folio-org.atlassian.net/browse/MODSENDER-66
  3. Need to create new module mod-batch-print
  4. Need to add CRUD operations for print entry management 
  5. Need to create /mail endpoint for printed notice handling 
  6. Need to create schedule for batch file generation

Component Descriptions

Print Service

  • Create and handle print entries 
  • CRUD operations 
  • Handle mod-sender message with endpoint /mail

Batch Creation Service

  • Create single batch file daily including all printed notices by scheduler 

API Overview

OpenAPI documentation is available: batchPrint.yaml

Data Models

Data model can be viewed here: schemas

Design Considerations

  • Module is using org.folio.vertx-lib as base to create Vert.x based application available for multiple tenants and with default health endpoints 
  • Module has CRUD functionality available  

Security and Compliance

  • All module endpoints are protected by permissions 
  • Printed notices can contain sensitive data as name and address  

Constraints and Assumptions

  • Batch file creation schedule is set to every day at 06:01 AM assuming all scheduled notices are processed and working day will start later

Revision History

Version 1.0.0 is not yet released 

Appendix

Batch files can be viewed in user interface under Settings/Circulation/Patron notice print jobs