dsnp-wallet-kotlin's People
dsnp-wallet-kotlin's Issues
Add Key To MSA
This is a test issue #2
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.
- Lookup an Existing DSNP ID
- Create a New DSNP ID
- 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:
-
- I have a DSNP ID
-
- Create DSNP ID
-
- 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 > Verification Code Dialog
Android > state_getRuntimeVersion Query
Android > getMsaId
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.
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:
- User migrates to DSNP on MeWe. On successful migration a cookie is created.
- 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:
- Read the documentation for Chrome Custom Tabs (or other options you determine are worth investigating)
- Create POC (if needed) to determine if the above flow can work
- Document the implementation details and any potential issues or limitations.
Test Issue 1
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)
iOS Extrinsics - Get Nova Code building in wallet
test this for corbin
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:
- Display the following permission in the permissions screen: "Permission: Update your handle and profile information." [SchemaID = 2]. Example: https://dev-custodial-wallet.liberti.social/signup/getPermissionsForSchemaIds?schemaIds=2
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 > Build Nova Code in Wallet
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.
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 > author_submitExtrinsic Query
iOS > Revoke Delegation Extrinsic
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.
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 > UI defects that were found on Samsung device
Android Extrinsics - Dependencies
Test Story
Android > state_getMetadata Query
Extrinsics - Building with base Nova code included
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 > Nova Tests
Android > Add Frequency Chain
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.
Requirements
-
Design and UI should match figma comp
-
Footer should be displayed with link buttons that go to: Terms, Privacy Policy and Learn More. Note Link destinations are still TBD.
Terms Link: https://www.amplicaaccess.com/access_web/terms.html
Privacy Link: https://www.amplicaaccess.com/access_web/privacy.html
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:
- User may attempt to lookup DSNP account but have not yet migrated on MeWe.
- User may not have a DSNP or MeWe account.
Android > Lookup Country Code Bottom Sheet
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 > chain_getBlockHash Query
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.
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.
Android > payment_queryInfo Query
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:
- User migrates to DSNP on MeWe. On successful migration a cookie is created.
- 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:
- Read the documentation for ASWebAuthenticationSession
- Create POC (if needed) to determine if the above flow can work
- 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.
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.
Android > state_getStorage query
Android > Transfer Frequency Token
Android > Notify Seed Phrase Dialog
To let user that either the seed phrase is noted or not Just a more step to for confirmation that user has written down the seed phrase.
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google โค๏ธ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.