---
tags: v3, hub app, dragons, user stories
---
# v3 Hub App User Stories
References this doc: [Hub App Scaffolding and Planning (4/19/22)](/uy_yi6ohQEW5MUt24ikDNg) to create a starting point for the Hub App user stories
## User Stories
**Note**: These are only considering Gnosis Chain support for Alpha
## Questions For Ven
- How do we handle Wallet Connect on something that's not specifically scoped to a network
- Should show DAOs in all networks
- Connected to any *supported* network
- Wallet Connect possibly being 2 components:
- Wallet Connect w/ Sign in with Ethereum that would show an address
- Wallet Connect button (for something like Summon) that requires a user to actually connect their wallet
- For this initial version of the Hub App are we wanting to include proposal cards?
- Goal is to get rough understanding of the features and then look at what Jord is doing with Summon to see when Jord is starting the Connect button, and if not next week then Hub team should work on it first
- Empty state designs
- Empty page with message to connect for now
- Omit the proposal part of the page?
- Profiles could be public w/o a wallet view?
## v3 Blacksmiths Coordination:
- If we start next week on the Wallet Connect feature, and Jord is starting on the Summon Wallet Connect, should we focus on having the simplest connect that only gets the user's address and work on the other features first?
## Features for Hub App Alpha v0
### Feature: Wallet Connect
```gherkin=
Feature: Wallet Connect
Background: Given the user has set up a wallet.
Scenario: User has not connected their wallet to a supported chain.
Given that I'm on the Hub App landing page
And Wallet Connect button displays "Connect Wallet" as the Button text
And the Profile Header is not displaying user profile data
And the main content UI is not displaying the DAOs Table -- (need an empty state UI design)
When I click on the "Connect Wallet" Button
Then the UI displays data relevant to me
```
```gherkin=
Feature: Wallet Connect
Scenario: User's wallet is connected to a chain other than supported chain.
Given that I'm on the Hub App landing page
And "Wallet Connect" Button displays "Connect Wallet" as the Button text
When I click on the "Connect Wallet" Button, I should know that I'm on an unsupported network
And the UI should indicate that I'm user is on an unsupported network
Then I'm prompted to switch networks to a supported chain
And the "Wallet Connect" Button displays my address/ENS as the text
Then the UI displays DAO data relevant to me
```
```gherkin=
Feature: Wallet Connect
Scenario: User's wallet is connected.
Given that I'm on the Hub App landing page
And I've connected my wallet to Gnosis Chain
Then the "Wallet Connect" Button displays my address/ENS as the text
Then the UI displays DAO data relevant to me
And the DAO table would display relevant DAO info
```
### Feature: User Profile
```gherkin=
Feature: User Profile
Scenario: User has set up a Ceramic Profile and is connected to the Hub with the same address.
Given that I'm on the Hub App landing page
And I've connected my wallet
And I have set up a Ceramic Profile for my connected address
Then the Header Profile UI displays my Basic Profile info (username, address, avatar, bio, Edit Profile link)
```
```gherkin=
Feature: User Profile
Scenario: User has connected their wallet, has set up a Ceramic Profile, and is connected to the Hub with the same address but has NOT set up their ENS.
Given that I'm on the Hub App landing page
And I have a Ceramic Profile but not an ENS
Then the Header Profile UI displays a truncated view of my Eth address
```
```gherkin=
Feature: User Profile
Scenario: User has connected their wallet, hasn't set up a Ceramic Profile, but does have an ENS.
Given that I'm on the Hub App landing page
And I haven't set up my Ceramic Profile but I have an ENS
Then the Header Profile UI displays the user's ENS but no Ceramic Profile data
```
```gherkin=
Feature: User Profile
Scenario: User has connected their wallet, but has not set up a Ceramic profile with the connected address.
Given that I'm on the Hub App landing page
And I've connected my wallet
And I haven't set up a Ceramic Profile for my connected address
Then the Header Profile UI shows a CTA explaining DAOhaus leverages Ceramic and a "Setup Ceramic Profile" Button to take them to self.id
```
```gherkin=
Feature: User Profile
Scenario: User has connected their wallet, have a Ceramic profile with the connected address, but haven't added their Basic Profile information.
Given that I'm on the Hub App landing page
And I've connected my wallet
And I have a Ceramic Profile for my connected address but haven't added any Basic Profile information
Then the Header Profile UI displays the fallback/placeholders for the Basic Profile schema fields
```
Basic Profile Fields and Fallbacks:
- user name, emoji, avatar, background image, bio/description
- look to the basic profile schema
- every field is optional in the Basic Profile
- Fallbacks (since Basic Profile fields are all optional):
- avatar: blockie
- username: truncated address
- address: (no ens: address) (ens: ens)
- show ENS regardless if they have an ENS
- bio: blank space OR GPT-3 bio :D
- emoji: blank
- background image: app background image
Additions to the Data Package/SDK:
- `getUserData`
- Tries to return Ceramic
- Tries to return ENS
### Feature: DAOs Table
#### DAOs Table Alpha v0 Features:
- No totals, filter, and search in Alpha v0
- Pagination included (design and SDK/data level)
- Infinite scroll or click to navigate
```gherkin=
Feature: DAOs Table (At least 1 DAO)
Scenario: User has connected their wallet and is in at least 1 DAO.
Given that the user has connected their wallet is in at least 1 DAO.
Then the user should see the number of DAOs they're in
And the DAOs Table should display each DAO and DAO metadata (name, vaults -- token balance total in USD, member count, total proposals, network, delegate)
```
```gherkin=
Feature: DAOs Table (No DAOs)
Scenario: User has connected their wallet but is not in any DAOs.
Given that the user has connected their wallet and is not in any DAOs
Then the DAOs table should display the empty state UI
```
```gherkin=
Feature: DAOs Table (In lots of DAOs)
Scenario: User is in lots of DAOs (where the number exceeds our initial table view).
Given that the user is a number of DAOs that exceeds our initial table view
Then paginate (or infinite scroll) the DAO table list UI.
And have either an infinite scroll or UI for moving between list pages (back and forth).
```
- Questions:
- Summon DAOs on GC to have actual price data?
- Member is unique share holder or unique loot holder
- Proposals: total and active proposals
- What is an active proposal?
- Notifications: Active proposal count in the red circle in the Figma
- Only show proposal notifications that are relevant to the user
- Unsponsored (action needed)
- Voting, but user hasn't voted on
- Grace
- Needs processing
- Delegate:
- Show if a user is delegating and add delegate
- What is the intention here?
- Filter and Search:
- What are the filter criteria?
- Start with Network and go from there
- Table:
- Sorting by field (click on DAO name and it
- sorts by DAO name)
- React Table?
- Default sort by Name (alphabetical)
- Summing:
- Can add if just the table view as it is, if across multiple pages this is a lot trickier
- Question the usefulness of this, especially if it introduces complexity spanning pages
- Search:
- Search by DAO name
- Where would we want the Search component to be?
#### Questions:
- Get a snapshot of the DAOs folks are in and navigate to the DAO Core UI page
- Some sort of lazy loading for this if there are lots of DAOs
- Consider how quickly the data comes in
### Feature: HAUS Price Component
```gherkin=
Feature: HAUS Price Component (Connected, Holds HAUS)
Scenario: User has connected their wallet and has a HAUS balance
Given that I've connected my wallet and I'm on the Hub landing page
When I have HAUS in my wallet
Then I see my HAUS balance and the total value
```
```gherkin=
Feature: HAUS Price Component (Connected, No HAUS)
Scenario: User has connected their wallet and has 0 HAUS balance
Given that I've connected my wallet and I'm on the Hub landing page
When I do not have HAUS in my wallet
Then I see the price of HAUS and the balance and value are 0
```
```gherkin=
Feature: HAUS Price Component (Not Connected)
Scenario: User's wallet is not connected, but is on the Hub App landing page
Given that I'm on the Hub App landing page
And have not connected my wallet
Then I see the Haus Price Component Card displaying the HAUS token price
And a CTA / "More Info" link takes me to the HAUS page with information about purchasing HAUS
```
#### SDK
- `getUserHausBalance`
- SDK can grab the HAUS price data
---
**Scenario**:
### Gherkin Example
```gherkin=
Feature: Writer Signs up
Scenario:
Given that the writer is on the landing page
When the writer clicks the Sign Up button
And the writer inputs description, an image and a subdomain.
And Optionally inputs their email credentials
And they add unlocks for their subscription tiers
Then the writer is taken to there writer dashboard
```