GithubHelp home page GithubHelp logo

dsnp-wallet-kotlin's People

Contributors

dannyahmedapex avatar jmiecz avatar vitalikrasnik avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

dsnp-wallet-kotlin's Issues

Android > Welcome Screen

Narrative
As a user, I would like to see a welcome screen when I open the standalone wallet app, so that I can begin setting up my DSNP ID.

Overview
This story is to create a welcome screen so that users can decide if they want to.

  1. Lookup an Existing DSNP ID
  2. Create a New DSNP ID
  3. Restore DSNP wallet

Figma Link:
https://www.figma.com/file/JacuBzETlFr0VNjBQKKRgi/Wallet-Concepts?node-id=1276%3A5074&t=GxoyoBgW8ek8Y4Rw-1

Requirements

  • Create Landing screen as specified in Figma.
  • Screen should contain 3 button options:
    1. I have a DSNP ID
    1. Create DSNP ID
    1. Restore DSNP Wallet
  • Screen should contain "Terms" link and "Privacy Policy" link. Tapping on link should open webview.
  • Placeholder Privacy Link: https://www.dsnp.org/privacy.html
  • Placeholder Terms Link: https://www.dsnp.org/privacy.html

Android > Seed Phrase Flow Updates

Narrative:
As a user, I would like to see my seed phrase at my convenience, so that I can ensure I have it written down and backed up securely.

Overview:
This story is for creating and updating the seed phrase flow.

Figma Link
Settings Screen:
https://www.figma.com/file/PDzDCWcPnZ8EFmwf5FkkBn/Amplica-Pro---MVP?type=design&node-id=1%3A1804&t=cMVKrSCRSubauYDz-1

Seed Phrase Flow:
https://www.figma.com/file/PDzDCWcPnZ8EFmwf5FkkBn/Amplica-Pro---MVP?type=design&node-id=1%3A1295&t=cMVKrSCRSubauYDz-1

Requirements

  • Create bottom bar button labeled "Settings"
  • Tapping on Settings bottom bar button should display Settings screen with "Reveal Recovery Phrase" button.
  • Tapping on "Reveal Recovery Phrase" button should direct user to the "There will be a test" flow.
  • Display a "Back" button that allows the user to return to the Settings screen when. tapped.
  • Update the flow to match figma designs.
  • If user enters incorrect seed phrase, reset the puzzle and show message toast indicating there was an error "The recovery phrase you entered is incorrect. Please try again."
  • If user enters the correct seed phrase. Show message "Congratulations!" and direct user back to the Settings screen with "Complete" message.

Android > Onboarding Screens > Create Identity - Claim Handle Screen

Narrative:
As a user, I can create a user handle for my social identity, so that I can be discoverable on the social web

Overview:
This story is to build the "Claim Handle" screen. When a user chooses to create an identity in the Amplica Connect app, we want to provide them the option to create a user handle.

Figma Link:
https://www.figma.com/file/PDzDCWcPnZ8EFmwf5FkkBn/Amplica-Pro---MVP?type=design&node-id=1%3A1549&t=MAs8VPiO4MGHe5Rd-1

Requirements:

  • Tapping on "Create Social Identity" in the app "Landing screen" should direct user to the "Claim Handle" screen.
  • Tapping / pressing "Back" button should return user to app "Landing Screen"
  • Screen design and copy should match what is displayed in Figma
  • Tapping on SKIP button should let user skip the handle creation and proceed to the "Create ID Success" screen.
  • Auto select text field and show keyboard on entry to "Claim Handle" screen.
  • Handle length should be 4-16 characters.
  • Once minimum character requirements are met, then "Next" button should become tappable.
  • Tapping on the "Next" button should direct user to the Confirm handle screen. Handle suffix should be displayed.

Spike: Detect if Valid Custodial Wallet Cookie is Available in Chrome Custom Tab

Overview:
In effort to streamline the use case where a user is adding their stand alone wallet key to an existing MSA, we would like to investigate if the in-app webview can detect a valid Custodial Site cookie and log user in vs directing them out to web.

Android: Chrome Custom Tabs
https://developer.chrome.com/docs/android/custom-tabs/#:~:text=Custom%20Tabs%20is%20a%20browser,to%20resort%20to%20a%20WebView.

Overview of Concept:

  1. User migrates to DSNP on MeWe. On successful migration a cookie is created.
  2. Once a user creates keys in the stand alone wallet app, we want to detect if user has a valid custodial cookie. If so, log them in and show prompt to add key to MSA. If cookie is NOT detected, show website Login screen.

Note We may need to reach out to Peter since there is a cookie creation aspect to this. i.e. how / where cookie is created so we know to look for it, determine if MeWe would need to change something on their side or if it's just in our custodial webviews.

Requirements:

  1. Read the documentation for Chrome Custom Tabs (or other options you determine are worth investigating)
  2. Create POC (if needed) to determine if the above flow can work
  3. Document the implementation details and any potential issues or limitations.

Android > Create Device Pincode

Narrative:
As a user, I would like to protect my wallet from unauthorized access by requiring authentication to unlock app and sign a transaction

Overview:
This story is to create a screen that allows user to set biometric or code (whatever is default setup on device) to unlock app and authorize transactions (signing keys)

Requirements:

  • Require authentication to unlock the app
  • Require authentication to sign a transaction (keys)

Android > Create and Confirm Seed Phrase Flow

Narrative
As a user, I would like to understand the importance of backing up my seed phrase, so that I am in control of my data and can restore my wallet at a later time.

Overview
Users will need to generate and confirm a seed phrase in order to take control of their DSNP ID profile. This story is to create the generation and confirm flow.

Figma Link:
https://www.figma.com/file/JacuBzETlFr0VNjBQKKRgi/Wallet-Concepts?node-id=1161%3A3038&t=GxoyoBgW8ek8Y4Rw-1

Requirements

  • Seed Phrase screens should match Figma designs
  • Standalone wallet app should be able to generate a 12 word seed phrase.
  • After seed phrase is generated and user taps "I've written it down" button, an alert should be displayed informing user that they will not be able to access the seed phrase once they continue.
  • Tapping "Check again" should return user to the seed phrase screen. Seed phrase should be the same and should not change if a user selects "Check again"
  • If user selects YES, then display "This is a Test" screen where they can confirm the seed phrase.
  • Tapping on word should input the word into the numbered boxes in ascending order. If user makes a mistake, they can tap on the word in the numbered box and it will return to the bottom selection list.
  • If seed phrase is entered incorrectly, error messaging should be displayed *see Figma
  • If seed phrase is entered correctly then proceed to create device pin code flow

HOLD > ANDROID > Permissions Screen > Display permissions to user

Narrative:
As a user, I would like to see what permissions a provider is asking for, so that I understand how my data will be used.

Overview:
This story is to use the schema dereferencing service to display user permissions the provider is requesting.

Requirements:

Figma Link:
TBD *screen not completed yet. Will update this link once available.

Schema Dereference API:
https://dev-custodial-wallet.liberti.social/webjars/swagger-ui/index.html#/sign-up-html-controller/getPermissionsForSchemaIdsExternal

Android > Extrinsic Error Handling

The code we're relying on from Nova returns the result of if the extrinsic was executed, but not any errors within the extrinsic.

E.g. CreateMSA twice for the same user, and we won't experience any issues.

The same goes for transferring tokens to a bad account.

We'll need to figure out how to dive deeper into the extrinsic, despite only having the transactionHash.

Android: Social Identity: Progress Screen

Narrative:
As a user, I would like to see suggested steps for updating my social identity, so that I can get the most out of my social web experience.

Overview
This story is to create the Social Identity: Progress Screen. This screen is designed to highlight key features that are important so users get the most out of their experience on the social web. The screen will contain a list of tasks for users to complete. After completing the task, a check will be displayed next to it to indicate completion.

Resource Link:
https://www.figma.com/file/PDzDCWcPnZ8EFmwf5FkkBn/Amplica-Pro---MVP?type=design&node-id=1%3A2133&t=BvxZCzC2Cr5rnHfT-1

Requirements:

  • Design of screen should match Figma comp
  • Show header "Social Identity"
  • Show "Back" button. Tapping button should direct the user back to the social identity screen.
  • Show "Social Identity Progress" indicator with steps needed to complete i.e. 1/x. Completing a step should update the progress meter and step count.
  • Show copy that is displayed in figma *Note: this is not final and will be updated later under another story.
  • Show Step buttons. If step has been completed; show as visually indicated in figma with green check mark.
  • If task is NOT complete, show as visually indicated in Figma comp.
  • Show tasks: Backup Recovery Phrase, Choose Handle *Note that for MVP, almost all users will have a user handle and since we are only focused on migration of existing users (custodial to non-custodial) this will be more than likely be checked for these users.

Android > Settings Screen

Narrative:
As a user, I would like to have a settings screen, so that I can easily manage and customize app settings at a global level.

Overview:
This story is to create a "Settings" screen that will be the home for global app settings.

Figma Link
https://www.figma.com/file/PDzDCWcPnZ8EFmwf5FkkBn/Amplica-Pro---MVP?type=design&node-id=1%3A1804&t=cMVKrSCRSubauYDz-1

Requirements

  • Screen design and layout should match what is displayed in figma doc. Link above.
  • In order to access the Settings screen, a "Settings" button should be displayed in the bottom tab bar. Label "Settings"
  • Screen heading label "Settings"
  • Copy should match what is in the figma doc. Link above
  • Button "Reveal Recovery Phrase" should be displayed. Tapping on button should direct user to the "There will be a test" flow.
  • FaceID, TouchID section should be displayed. Create a toggle that allows user to turn biometrics ON/OFF *Functionality for this will be part of another story. This is just showing the section / toggle in the Settings screen .

Android > SPIKE > TelemetryDeck App Analytics POC

Narrative:
As a product owner/developer, I would like to investigate using TelemetryDeck analytics in our app, so that I can monitor app health and usage in a privacy preserving way.

Overview:
This spike is to look into using TelemetryDeck analytics in our native apps. We want to ensure we can monitor app health and usage in a privacy preserving way. This will help us trouble shoot issues that may come up in production and monitor usage to ensure a great user experience.

Links:
https://telemetrydeck.com/ - main site
https://telemetrydeck.com/docs/ - documentation

Requirements

  • Create a POC that includes the TelemetryDeck SDK.

  • Determine what signals can be captured out of the box and where the data is being stored.

  • Signals we are interested in:

  • Ability to capture app version, OS version, device model/type to help with trouble shooting and detecting crashes.

  • Page level visit data per screen. Unique visit, visits, name of screen, app exit

Android > Existing DSNP ID Flow > Lookup By Email

Narrative
As a user, I would like to be able to lookup by DSNP ID (with my MeWe email address), so that I can easily migrate my account to the standalone wallet.

Overview
This story is to build out the DSNP lookup by email flow.

Figma Link:
https://www.figma.com/file/JacuBzETlFr0VNjBQKKRgi/Wallet-Concepts?node-id=1161%3A3038&t=GxoyoBgW8ek8Y4Rw-1

Requirements

  • Screen designs should appear as they do in Figma *link below
  • On entry to DSNP ID lookup screen, the text field should be auto selected and keyboard should be visible. Alphabetical keyboard should be used
  • Valid email address should be required for Send Auth Code button to highlight
  • Tapping on Restore DSNP Wallet should direct user to "Enter Seedphrase" screen
  • Use same placeholder Terms and Privacy Policy links that were used in the Welcome page.
  • Once valid email has been submitted the "Enter Code" screen should be displayed.
  • If auth code entered is valid, proceed to seedphrase creation flow.
  • If auth code entered is not valid, show error state

Android > Onboarding Screens > Create Identity - Congratulations Banner

Narrative:
As a user, once I create my social identity, I would like to see a banner that let's me know the process is complete and what I should do next.

Overview:
This story is to build a banner that let's the user know they have completed the initial social identity creation. The goal of the banner is to inform the user that their social identity was created and what they can do next.

Figma Link
https://www.figma.com/file/PDzDCWcPnZ8EFmwf5FkkBn/Amplica-Pro---MVP?type=design&node-id=1%3A2961&t=u9nTGHvdFEscht39-1

Requirements

  • Create banner UI and copy as defined in figma spec.
  • Banner should contain a close button. If tapped, the banner should be dismissed.
  • Display a button "Let's Go". Tapping the button should direct user to the Social Identity screen where the user can choose to complete filling out their profile.
  • Create a text button link for "Skip". Tapping this button should dismiss the banner.

Android > Existing DSNP ID Flow > Lookup by Phone Number

Narrative
As a user, I can lookup by DSNP ID by phone number, so that I can begin setting up my DSNP profile in the wallet.

Overview
This story is to create the screens for users to lookup their DSNP ID by country code / phone number. After entering a valid phone number the user should receive an auth code via text that they can enter in order to confirm they are the owner of the account.

Figma Link:
https://www.figma.com/file/JacuBzETlFr0VNjBQKKRgi/Wallet-Concepts?node-id=1161%3A3038&t=GxoyoBgW8ek8Y4Rw-1

Requirements

  • DSNP ID > Lookup by Phone Number flow should match Figma designs.
  • User can toggle to Phone number entry flow
  • Numerical keyboard should be default when Phone Number flow is selected and field should be auto selected so that user does not have to tap.
  • User should have option to choose country code. For now we can default to USA +1 but we may choose another default at a later time.
  • Tapping on Country code should open the Country Code selection modal. Country name and code should be displayed. *Nice to have country flag but we can add another story if development prefers.
  • On country code selection, modal should close and code should be auto populated.
  • User can type phone number into Phone Number field. Error messaging should be displayed as defined in Figma
  • Upon successful country code and phone number entry the user should be sent an SMS message containing the country code and the Auth Code entry screen should be displayed.
  • If auth code is valid, user should be directed to the create seedphrase flow.
  • If auth code is invalid, user should see error message as defined in Figma

Android > Onboarding Screens > Create Identity - Agree to Terms Screen

Narrative:
As a user, I would like to see what permissions Amplica Connect is asking for, so that I'm aware of what info I'm agreeing to share.

Overview:
This story is to create the Agree to Terms screen. The goal of this screen is to show the user what permissions are being requested from the provider. Permissions can vary based on capabilities of the app.

Figma Link
https://www.figma.com/file/PDzDCWcPnZ8EFmwf5FkkBn/Amplica-Pro---MVP?type=design&node-id=1%3A1889&t=u9nTGHvdFEscht39-1

Requirements

Onboarding: User not found during DSNP lookup

Narrative:
As a user, when I attempt to lookup my DSNP account but if it's not found, I would like to know how to go about creating an account, so that I can setup my wallet.

Scenarios to cover:

  1. User may attempt to lookup DSNP account but have not yet migrated on MeWe.
  2. User may not have a DSNP or MeWe account.

Android > Multi Language Support

Narrative:
As a customer using the wallet app in another country, I would like to see the app in my native language, so that it feels familiar and understandable.

TLDR; We should be good with EFIGS+Portuguese
English
France
Italian
German
Spanish
Portuguese

//Needs more details...

SPIKE > Wallet Connect

Overview:
The standalone wallet will need to support linking from 3rd party Dapps for signing and key management. This spike is to review Wallet Connect documentation to see how they are handling linking and if there is a pattern they are using we could implement.

Use Cases:

  • Custodial wallet migration (detecting if app installed)
  • Sign Up / Login to DSNP on 3rd party site: In this scenario the wallet will need to be detected and if installed, link to the appropriate page.
  • Social Graph: PRi key and PE changes.

iOS > Support Optional/Forced Update

Narrative:
As a developer, I would like to be able to inform users when a new versions of the app is available OR when a critical app update needs to be made, so that I can ensure our customers are using the latest version.

Overview:
This story is to build support for:

  • Forced app update. *Used only in critical situations. This update can be used if there is a breaking change in our app/services and we need customers to be on the latest version to continue using our product.
  • Optional app update: This update can be used to inform customers that a newer version of the software is available.

Requirements:

  • Provide ability to remotely deploy a forced app update or optional app update.
  • Forced Update: Show in Alert dialog box with title and body copy. Tapping Update button should direct customer to App/Play Store where they can begin the update. Customer should not be able to use the app when a forced app update is available.
  • Optional Update: Show in Alert dialog box with title and body copy. Show two buttons: Update Now and SKIP; Tapping Update Now button should direct customer to App/Play Store where they can begin the update. Tapping the "SKIP" button should close alert dialogue. Optional update should be display every 5 app launches if available. If dismissed more than 3 times, do not show again.

Android > Github Action

  • Gradle Build
  • Gradle Tests
  • Build Debug APK, Release, App Bundle
  • Pre Checks e-g Lint, Static Strringe, etc
  • Slack message to send a link referring to the latest build artifacts page

Android > Identity Screen

Narrative:
As a user, I would like to see a social identity screen in Amplica Access Pro, so that I can view and manage my social identity whenever I want.

Overview:
This story is to support building out an social identity screen. This screen will allow users to see their social identity (user handle) and over time evolve to include more metadata options that will serve as a "control center" for users to edit as they see fit.

Resource Link:
https://www.figma.com/file/PDzDCWcPnZ8EFmwf5FkkBn/Amplica-Pro---MVP?type=design&node-id=1%3A2031&t=BvxZCzC2Cr5rnHfT-1

Requirements:

  • Design screen to match what is displayed in figma comps
  • Show static default profile pic as shown in figma *Note that avatar support will be a separate story.
  • Show user handle below default profile pic. Full handle should be displayed user handle+suffix
  • Show "Social Identity Complete" progress section. Include progress meter and step 1/x to complete. As user completes profile setup steps, the progress meter should update.
  • Show "See All" button text link that directs user to Social Identity Progress screen.

Android > SPIKE > Android Custom Tabs

Narrative:
As a developer, I would like to investigate using Android Custom Tabs to determine if data can be passed between an in app custom tab and native app, so that I can remove the friction of directing consumers out to chrome browser to migrate keys.

Link:
https://developer.chrome.com/docs/android/custom-tabs/

Requirements:

  • Create a POC to determine that if we launch an custom tab inside our native app, can we pass data between the custom tab and the native app.
  • Document findings and determine limitations / workarounds that would need to be considered if we choose to go this route.

Android > Onboarding > Landing Screen

Narrative:
As a user, when I launch Amplica Connect, I would like to see a landing page, so that I can see and overview of what Amplica Connect is and how to get started.

Overview:
This story is to build out the landing page screen.

Figma Link:
https://www.figma.com/file/PDzDCWcPnZ8EFmwf5FkkBn/Amplica-Pro---MVP?type=design&node-id=1%3A1952&t=cMVKrSCRSubauYDz-1

Requirements:

  • Screen design and styling should match Figma spec.
  • User should see 3 buttons: Create Identity, I have an ID, Restore Account
  • User should see a footer with text link buttons for Terms and Privacy Policy. *Link destinations TBD. For now, when tapped please show "Coming Soon" alert.

iOS > SPIKE > ASWebAuthenticationSession

Overview:
In effort to streamline the use case where a user is adding their stand alone wallet key to an existing MSA, we would like to investigate if the in-app webview can detect a valid Amplica Access Custodial Site cookie and log user in vs directing them out to web.

Apple API: ASWebAuthenticationSession
https://developer.apple.com/documentation/authenticationservices/authenticating_a_user_through_a_web_service

Overview of Concept:

  1. User migrates to DSNP on MeWe. On successful migration a cookie is created.
  2. Once a user creates keys in the stand alone wallet app, we want to detect if user has a valid Amplica Access cookie. If so, log them in and show prompt to add key to MSA. If cookie is NOT detected, show Amplica Access Login screen.

Note We may need to reach out to Peter since there is a cookie creation aspect to this. i.e. how / where cookie is created so we know to look for it, determine if MeWe would need to change something on their side or if it's just in our Amplica Access webviews.

Requirements:

  1. Read the documentation for ASWebAuthenticationSession
  2. Create POC (if needed) to determine if the above flow can work
  3. Document the implementation details and any potential issues or limitations.

Android > Support Optional / Forced Update

Narrative:
As a developer, I would like to notify users when a new version of the app is available or when a critical app update needs to be made, so that I can keep customers informed and up to date.

Overview:

  • Support Forced Update: Customer is required to update in order to continue using the application.
  • Support for Optional Update: Customer is notified there is an update available but can skip the message.

Scenarios:

  • User running older version of app that is not longer supported: Force update
  • User running older version of app and there is a newer version available: Optional update

Android > Onboarding Screens > Custodial User Migration

Narrative:
As a Amplica Access custodial wallet user, I would like to be able to migrate to the stand alone wallet, so that I can have full control over my social identity, keys and social graph.

Overview:
This story is to build out support for migrating a user from the custodial wallet to the stand alone wallet.

Figma Link:
https://www.figma.com/file/PDzDCWcPnZ8EFmwf5FkkBn/Amplica-Pro---MVP?type=design&node-id=1%3A1952&t=cMVKrSCRSubauYDz-1

Requirements:

  • Create screens as shown in Figma link.
  • When the user taps on the "I have an ID" button located on the app "Landing Screen", then direct user to "https://www.amplicaaccess.com" in a Chrome custom tab. Note Website functionality does not currently exist so we won't be able to migrate users at this time.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.