# KYC Connect Tutorial
## Description
- Tutorial show the instruction how to use dashboard step by step
- Tuturial has:
- Step1: show link google play store + app store for user to download Blockpass app
- https://play.google.com/store/apps/details?id=com.blockpass_mobile
- https://apps.apple.com/us/app/blockpass/id1322917010
- Step 2: show the qr code for the app that can register new record on mobile. ***
- using sdk: receive status complete from sdk when operator scan qr code to go to next step
- using cli:
- 3rd-sso [options] <clientId> <sessionCode> [refId]
**Note: should show text that warn user scan the qr code to and take action to go to next step
- Step 3: Once KYCList query new profile with refId of this qr code, tutorial will show the next step
**Note: should show text that warn user add data in mobile app and take action to go to next step
- at the final step ->
- back to home page when clicking Start review Btn
- or show admin console at new tab when clicking to the admin console link
## Rule
- Tutorial show:
- When user first time login to service
- When user click on "Show tutorial" on dashboard
- Always tutorial at the beginning step
- Tutorial close:
- take action that user has known tutorial
- backend: update data user has got tutorial already
- frontend: update store that use to check user got tutorial
- Only show the next step content when tutorial step conditions complete. Cannot click to step btn to skip the step content
## Design
- Tutorial show on modal
- Tutorial is shown automatically on KYCList when user first time login to service
- https://projects.invisionapp.com/d/main?origin=v7#/console/18513814/386618657/preview
## Development
### Backend
- Add new module **tutorial**
```
- model:
- userId
- clientId
- hasCompleted
- <tutorialType> (tutorial for firsttime login = 'firstTimeTutorial'): **Boolean**
- controller:
- get tutorial info
- update tutorial status
```
### Frontend
#### Store
- Domain Store TutorialStore:
- objData: status tutorial of client
- action get/update status tutorial data to server
- get data on event(ON_ACTIVE_SERVICE_CHANGE)
- ViewStore: 'TutorialViewStore':
- handle state(currentStep) and action in modal
#### Layout
- Tutorial Modal:
- only show tutorial modal on kyc list page
- if operator not on kyc list page, redirect to kyc list page and show modal
- auto show modal when tutorial clientId status in TutorialStore === true
- tutorial template
- main content
- Welcome
- Tutorial
- RightBanner (with closeBtn at the top)
- Step component
- Step1, Step2, ... components