Enabling print of content from consumption clients

Introduction

As a teacher or student, I would like to print the questions so I can take the test offline.

JTBD

  • Jobs To Be Done: As a user, I might not be comfortable with taking a test online. I might instead prefer the feel of pen and paper, or even want to print multiple copies so as to share with others.
  • User Personas: TeacherStudentRamShyam
  • System or Environment: Most likely to happen at home/office, where there's access to a  printer

Requirement Specifications

This section consists of requirement specifications for specific use cases in the User JTBD. The requirements for each use case are elaborated in detail through sub-sections for:

  • Use case overview
  • Overall process workflow
  • Associated user stories 
  • Non-functional requirements
  • Localization requirements  
  • Telemetry requirements
  • Dependencies
  • Impact on other products
  • Impact on existing data  

Overview

When a user wishes to print questions, they should be able to do so from the consumption clients.

Overall Process Workflow

  1. User decides to print questions (and answers).
  2. User opens the relevant content.
  3. User clicks on Print (PDF)
  4. The consumption interface shows a loading bar while the print material is being downloaded/prepared.
  5. Once ready, the content is opened in an appropriate PDF viewer (from which it can be printed).


Overview

As a user, I would like to print some content so that I can take a test offline on pen and paper. I might also wish to only print the questions, and not the solutions (so that I can distribute the paper in my class).

Main Scenario

Srl. No.User ActionExpected Result

User clicks on a contentContent details page opens

User clicks the 'Print' button:

a. For a content that's downloaded.

b. For a content that's not yet downloaded.

a.

User sees a PDF content open up in a compatible app that can load PDFs.


b. 

User sees a loading view, where they wait for the PDF to get downloaded to the device (ideally to cache).

User sees the PDF open up automatically after download.


User decides to print content (all pages or maybe a selection of pages, if they just want some of it - e.g. just the questions).<Out of scope - since we don't control the PDF viewer>

Exception Scenarios

Srl. No.Error / ExceptionExpected Handling

Content doesn't support a printable format (e.g. Videos, regular worksheets etc.)The content details page should NOT show a print button. This is going to ONLY be shown for QML type content in this release (2.5.0-2.7.0).

Device is not connected to the internet, and content isn't downloaded on device, but user taps on printUser should see a toast message saying that internet is required for this action.

Device is connected to the internet, content isn't downloaded, and user taps on print - while the content is being downloaded, the device goes offlineUser should see the progress of the download so far, and when disconnected - if connection is not established for more than 30 seconds, the download should auto-cancel and a toast message for failure should be displayed.

Device attempts to print, but there's not enough space on diskUser should see a toast message for failure, saying there's insufficient space on disk.

Wireframes

https://invis.io/3JUJ5GDVZPU

For Future Release

JIRA Ticket ID

SB-15397 - Getting issue details... STATUS

Localization Requirements


UI ElementDescriptionLanguage(s)/ Locales Required
Labels, buttons, messagesAll textAll supported languages



Telemetry Requirements

Event NameDescriptionPurpose
Open testprep contentTo know when user opens a testprep contentTo know when user opens a testprep content
Print displayedTo know if print option is displayed to the userTo know whether any awareness is generated that the user should interact with
Print clicked (addn params: downloaded already?)To know if user clicked on print (and to know if the printable PDF is already present)To know if user interacted with the print button, if made visible to them
Print loading initiatedTo know if server request was sent (because device was online)To know if connection was established with server for file
Print loading completedTo know if file loading completedTo know if the file was completely received at destination
File opened (either because it's downloaded, or loading completed)To know if file openedTo know if an attempt was made by the app to open the file

Non-Functional Requirements

Performance / Responsiveness RequirementsLoad/Volume RequirementsSecurity / Privacy Requirements
Visual responses to click should be immediate (<1 second)




Impact on other Products/Solutions

Product/Solution ImpactedImpact Description


Impact on Existing Users/Data 

User/Data ImpactedImpact Description
Existing usersUsers might notice a new button visible, to print content.
Existing content archivesContent now include metadata for the PDF links

Key Metrics

Srl. No.MetricPurpose of Metric

Funnel of users opening testprep content, to printing it.

This metric shows how frequently people are likely to print content

Unique devices that 

( Launch testprep content | Click print button | Initiate pdf download | Complete pdf download | Launch PDF )