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: Teacher, Student, Ram, Shyam
- 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
- User decides to print questions (and answers).
- User opens the relevant content.
- User clicks on Print (PDF)
- The consumption interface shows a loading bar while the print material is being downloaded/prepared.
- 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 Action | Expected Result |
---|---|---|
User clicks on a content | Content 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 / Exception | Expected 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 print | User 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 offline | User 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 disk | User should see a toast message for failure, saying there's insufficient space on disk. |
Wireframes
For Future Release
JIRA Ticket ID
Localization Requirements
UI Element | Description | Language(s)/ Locales Required |
---|---|---|
Labels, buttons, messages | All text | All supported languages |
Telemetry Requirements
Event Name | Description | Purpose |
---|---|---|
Open testprep content | To know when user opens a testprep content | To know when user opens a testprep content |
Print displayed | To know if print option is displayed to the user | To 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 initiated | To know if server request was sent (because device was online) | To know if connection was established with server for file |
Print loading completed | To know if file loading completed | To know if the file was completely received at destination |
File opened (either because it's downloaded, or loading completed) | To know if file opened | To know if an attempt was made by the app to open the file |
Non-Functional Requirements
Performance / Responsiveness Requirements | Load/Volume Requirements | Security / Privacy Requirements |
---|---|---|
Visual responses to click should be immediate (<1 second) | ||
Impact on other Products/Solutions
Product/Solution Impacted | Impact Description |
---|---|
Impact on Existing Users/Data
User/Data Impacted | Impact Description |
---|---|
Existing users | Users might notice a new button visible, to print content. |
Existing content archives | Content now include metadata for the PDF links |
Key Metrics
Srl. No. | Metric | Purpose 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 ) | |