====== Copy Shop ====== Feasibility Study of integrating SavaPage with PaperCut to support Copy Shop Scenarios. | Status | under construction | | Date | 2018-09-09 | ==== Summary ==== | //A low-threshold customer self-service for print-and-copy.// | * Upload PDF documents to Web Portal.\\ \\ * Anyplace, anytime via Internet, or ... * BYOD or use a dedicated PC at the shop. \\ \\ * Create print jobs in Web Portal. * //Release Jobs to PaperCut with NFC card swipe at central reader (optional).// * //See [[#print_2|Print (2)]] scenario.// * Walk up to any idle MFP. * Authenticate with NFC card. * Release print jobs. \\ \\ * Copy off-the-glass. \\ \\ * Pay from pre-paid account (voucher). ====== Scenarios ====== ==== Actors ==== ^ Actor ^ Description ^ | //Customer// | A person who pays for print-and-copy services. | | //Regular Customer// | A returning customer. | | //Casual Customer// | A passer-by customer. | ==== Objects ==== ^ Object ^ Description ^ | //NFC Card// | Identification token for MFP, and optionally SavaPage Print Portal. | | //Personal Card// | NFC Card issued to a Regular Customer. | | //Session Card// | NFC Card temporarily issued to a Casual Customer from a fixed pool of rotating cards. | ===== Regular Customer ===== Scenarios for Regular Customer with a Personal Card. ==== Register ==== **Actor** : Cashier - Add User in SavaPage * Set balance and credit to zero - Issue Personal Card * Assign Card to User -> Customer is registered \\ -> Personal Card is issued ==== Deposit ==== **Actors** : Customer, Cashier - Customer * Deposit amount - Cashier * Add amount to account balance -> Updated account balance ==== Voucher ==== **Actors** : Customer, Cashier - Customer buys Print Voucher from Cashier - Customer redeems voucher in SavaPage Web App -> Updated account balance ==== Refund ==== **Actors** : Customer, Cashier - Customer * Request refund for print or copy job - Cashier * Add amount to account balance -> Updated account balance ==== Unregister ==== **Actor** : Cashier - Delete User from SavaPage - Refund account balance -> Customer is unregistered \\ -> Personal Card is returned \\ -> Remaining balance is refunded \\ ===== Casual Customer ===== Scenarios for a Casual Customer with a Session Card. ==== Check-in ==== **Actor** : Cashier - Issue Session Card - Set balance to zero - Set credit amount -> Session Card is issued ==== Check-out ==== **Actor** : Cashier - Invoice account credit - Set balance to zero -> Session Card is handed in \\ -> Customer paid for print and copy ===== All Customers ===== Scenarios for both Regular and Casual Customers. ==== Print (1) ==== **Actor** : Customer - Upload PDF to SavaPage * Print to PaperCut Virtual Queue - Release at any MFP -> Cost is charged to Personal PaperCut Account ==== Print (2) ==== **Actor** : Customer - Upload PDF to SavaPage * Print to PaperCut Virtual Queue that is configured in SavaPage as [[https://www.savapage.org/docs/manual/ch-webapp-admin-devices.html#ch-webapp-admin-devices-card-reader-proxy-print-hold|Hold Print Mode]].\\ \\ - Swipe NFC card to the Network Card Reader to release held jobs in SavaPage, so they are printed to PaperCut. * A single SavaPage Network Card Reader for all users is all that is needed. [[https://www.savapage.org/docs/manual/ch-webapp-admin-devices.html#ch-webapp-admin-devices-card-reader-proxy-print-auth| Proxy Print Authentication]] \\ \\ - Release at any MFP -> Cost is charged to Personal PaperCut Account // This scenario is very resource friendly, since the user must swipe at the SavaPage Card Reader first, to transfer his jobs to PaperCut, the spoolfiles need only be held in PaperCut for a very short time (30 minutes or so).// ==== Copy ==== **Actor** : Customer - Copy at any MFP -> Cost is charged to Personal PaperCut Account ====== Infrastructure ====== ===== Functions ===== ==== Access ==== * Internet * https://print.your-copy-shop.xyz * Intranet * https://local-ip-address ==== Authentication ==== ^ Platform ^ Method ^ | MFP | NFC Card | | SavaPage Print Portal | [[https://www.savapage.org/docs/manual/ch-webapp-admin-options.html#ch-webapp-admin-options-user-auth-username-login|Userid + Password]], [[https://www.savapage.org/docs/manual/ch-webapp-admin-options.html#ch-webapp-admin-options-user-auth-yubikey-login|YubiKey authentication]], [[https://www.savapage.org/docs/manual/app-plugin-oauth-client.html|Google OAuth]], [[https://www.savapage.org/docs/manual/ch-webapp-admin-options.html#ch-webapp-admin-options-user-auth-card-local-login|NFC Card]] | ==== Invoicing ==== * ... ==== Privacy ==== * Hide document names ===== Software ==== ==== PaperCut ==== PaperCut MF + Embedded * Follow-me printing + copying * NFC authentication at MFP ==== SavaPage ==== //SavaPage follows PaperCut licensing (Educational or Corporate)// === Extra Options === * [[https://www.savapage.org/docs/manual/ch-webapp-admin-options.html#ch-webapp-admin-options-gcp|Google Cloud Printer]] * [[https://www.savapage.org/docs/manual/ch-webapp-admin-options.html#ch-webapp-admin-options-mail-print|Mail Print]] * [[https://gitlab.com/savapage-ext/savapage-ext-mollie|Mollie Payment Plug-in]] ==== Integration ==== | //SavaPage Users are leading -> they are synchronized by PaperCut// | * [[https://issues.savapage.org/view.php?id=967|Provide PaperCut User Sync and Auth Interface]] * username, fullName, emailAddress, department, office, cardNumber | //PaperCut User Accounts are leading -> they are read/set by SavaPage // | * Print and copy costs are accumulated on a single personal account. * Accounts can be restricted, so printing/copying is blocked when balance or assigned credit is insufficient. | //PaperCut Print Job status is leading -> they are monitored by SavaPage // | * [[https://issues.savapage.org/view.php?id=966|Integrate Personal Print with PaperCut]] * The printing cost is taken from PaperCut after successful completion. ===== Hardware ===== ==== MFP ==== Any MFP with GNU/Linux PPD driver support. * MFP authentication is NFC card only. ==== Server ==== Debian + PaperCut Primary Server + SavaPage Open Print Portal - Spoolfiles, held for release, can be very large (1GB+). * HDD: 500GB+ \\ \\ - Concurrent CUPS filtering decreases print performance * Cores: 4+ * RAM: 16GB+ | See [[#print_2|Print (2)]] scenario on how to reduce resource load. | ==== NFC Cards and Readers ==== * Dedicated MIFARE NFC readers for MFPs * USB Card Reader for Desktop/Notebook * [[http://www.stronglink-rfid.com/en/rfid-readers/sl040a.html|USB MIFARE Reader SL040A]] * MIFARE Card, Key fob, Sticker * Pre-owned by customer, or ... * Issued by Copy Shop ===== Privacy Factors ===== * GDPR scope is SavaPage + PaperCut ===== Operational Factors ===== * Database holds financial value * Backup/Restore scenario * Daily database backup is **crucial** * Fall-back scenario ===== Questions ===== ==== Q.1 ==== | //How to anonymize SavaPage document history for Casual Customers?// | ==== Q.2 ==== | //How to cancel pending print jobs from previous session of Casual Customer?// | ==== Q.3 ==== | //How to make a newly registered SavaPage user immediately known in PaperCut?// | Enable "On Demand User Creation" in PaperCut -> When the user does not exist: create the user on demand (default). ==== Q.4 ==== | //How to make copy jobs visible in SavaPage?// | As PaperCut financial transactions are leading, and made visible in SavaPage by SQL query in PaperCut database, copy jobs will show up as transaction.