Auto-set of onboarding information when content not available

Introduction

As a user, I wish to consume relevant content as quickly as possible after installing the app. If the DIAL code is not linked to content, I see a popup telling me that content isn't available - and I'm anyway forced to either scan or enter my details manually. It would be nice if my profile information is automatically set based on the DIAL code I just scanned, even if there's no content linked to it (we atleast know the book that it's associated with).

JTBD

  • Jobs To Be Done: When a user scans a DIAL code for which there is no content, they are shown a book results page with the 'Content coming soon' popup. As a user, I should atleast have my profile information set up because of the scan, so that I can browse the content that is present.
  • User Personas: TeacherStudentRamShyam
  • System or Environment: Most likely to be used at home, occasionally in school premises.

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

As a user who scans a code within a book, I'd like to be able to see content that's relevant to me. The closest that's possible should be enabled for me, if the code I scanned doesn't have any content linked to it.

Overall Process Workflow

  1. User scans a DIAL code.
  2. User sees a popup saying 'Content is coming soon'.
  3. User closes the popup, to see the library page - with the board, medium and class automatically set.
  4. User might continue to scan other DIAL codes, and find / not get results, based on whether the DIAL code is linked to content or not.
  5. OR the user might choose to navigate via the library and find books relevant for them.


Overview

Already covered in overview above.

Main Scenario

User scans a DIAL code that is linked to a book, but doesn't have any content associated with it.

Srl. No.User ActionExpected Result

User scans DIAL code (which has no content associated within it, but is part of a book)User is taken to the library page, with the board/medium/class auto-set based on the board/medium/class of the book. The user also sees the relevant coming soon message in a popup.

Alternate Scenario 1 - User scans a DIAL code that isn't linked to any book

Assuming a DIAL code is available, but not linked to any textbook.

Srl. No.User ActionExpected Result

User scans DIAL code (which has no book associated within it)User remains on the onboarding page, and sees the relevant coming soon message in a popup.

Alternate Scenario 2 - User scans a DIAL code that's linked to multiple books and have content linked to it

Title is self-explanatory.

Srl. No.User ActionExpected Result

User scans DIAL code (which has multiple books associated with it)

If the books are from:

  1. the same board, medium, and class:
    1. Set the board/medium/class automatically, and show the multiple books page.
    2. If user presses BACK here, they are taken to the library with that board/medium/class.
  2. different boards, mediums or classes:
    1. Wait for user to open a book, and based on the book opened - set the board / medium / class automatically. The user sees the flattened results page (since the book has content).
    2. If the user presses BACK here, they're taken to the book results page.
    3. If they press BACK again, they are taken to the library with that board/medium/class set.

Alternate Scenario 3 - User scans a DIAL code that's linked to multiple books and the books don't have content linked to it

Title is self-explanatory.

Srl. No.User ActionExpected Result

User scans DIAL code (which has multiple books associated with it)

If the books are from:

  1. the same board, medium, and class (Can move to future release if complex):
    1. Set the board/medium/class automatically.
    2. The user is immediately taken to the library with that board/medium/class (since none of those linked books have content). User is shown the relevant 'Content coming soon' popup.
  2. different boards, mediums or classes:
    1. Wait for user to open a book, and based on the book opened - set the board / medium / class automatically.
    2. The user is immediately taken to the library with that board/medium/class (since the linked book doesn't have content). User is shown the relevant 'Content coming soon' popup.

Exception Scenarios

Srl. No.Error / ExceptionExpected Handling






Wireframes

For Future Release

If multiple books are linked to the same DIAL code, if it's not possible to identify that all of them will result in 0 content at the respective nodes - the Coming Soon message should be populated. Leaving this for later, as I suspect this is going to be a wee bit more complicated.

JIRA Ticket ID

SB-13149 - Getting issue details... STATUS

Localization Requirements

N/A

UI ElementDescriptionLanguage(s)/ Locales Required



Telemetry Requirements

Event NameDescriptionPurpose
Auto-set of BMCAutomatically set the Board, Medium and ClassTo differentiate the users who manually provide their BMC from the users who have it set automatically.

Non-Functional Requirements

Performance / Responsiveness RequirementsLoad/Volume RequirementsSecurity / Privacy Requirements
Would like for this to happen ASAP (within 1 second?).N/A since it's a mobile app use-case



Impact on other Products/Solutions

N/A

Product/Solution ImpactedImpact Description


Impact on Existing Users/Data 

User/Data ImpactedImpact Description
NoThis only impacts new users / reinstalls.


Key Metrics

Srl. No.MetricPurpose of Metric

FTUE funnelTo see the % of users who go on to complete the core experience on the day of install

BMC funnelTo see the % of users from various BMC combinations, to see their FTUE completion rates and retention.