---
# System prepended metadata

title: 'PerfectPool dapp: component hierarchy'

---

# PerfectPool dapp: component hierarchy

## Shared
- header:
    - navigation
    - authentication
- footer:
    - navigation
- tournament-header
- bracket-component
- pools-component
- account-component
- about-component
- timing-component
- scoringmech-component
- pool-header-component

## Home
- tournament-header: {argument: tournamentId}
Data needed:
    - name tournament
    - start date
    - end date
    - next upcoming

- bracket-component: {argument: tournamentId}
Data needed:
    - participating teams
    - place in bracket of each team
    - strenght indicator of each team
    - passed results of team vs team
    - tournament results
    - tournament events

- pools-component {argument: tournamentId}:
Data needed:
    - list of public pools:
        - Name public pool
        - pool owner/creator address
        - number members
        - total amount of ETH submitted

- account-component: {argument: connected wallet address}
Data needed:
    - user name
    - avatar
    - status (Full vs limited)
    - pools he has joined in this tournament
    - pools he has created for this tournament
    
- about-component: {argument: tournamentId}
Data needed:
    - tournament name
    - description + visual (rich text in airtable)
    
- timing-component: {argument: tournamentId}
Data needed:
    - start date
    - end date
    
- scoringmech-component: {argument: tournamentId}
Data needed:
    - scoring mechanism
    
- advertisment-component:
Data needed:
    - All data for tournament 
    - Thumbnail
    
    
## Upcoming tournament detail page
- tournament-header
- countdown-component:
Data needed:
    - start date
- bracket-component
- pools-component
- account-component
- about-component
- timing-component
- scoringmech-component


## Account page
- account-component:
    - avatar
    - username
    - address
    - status (Full vs limited)

- pools-owned-component:
    - list of tournaments
        - start date
        - status (current, upcoming, past)
        - list of pools
            - name of the pool
            - totla amount staked in pool
            - number of members in pool


- pools-joined-component:
    - list of tournaments
        - start date
        - status (current, upcoming, past)
        - list of pools
            - name of the pool
            - amount staked by user in pool

- bracket-configs-component:
    - list of tournaments
        - name of tournament
        - start date
        - status (current, upcoming, past)
        - list of brackets
            - name of the bracker
            - button to see ites details page

- get-full-membership-component: (argument: user status)



## Total upcoming tournaments page
- upcoming-tournaments-list:
    - list of tournaments:
        - name of tournament
        - start date
        - end date
        - status (current, upcoming, past)


## Pool detail page
- pool-header-component:
    - name of pool (address)
    - pool creator/owner
    - tournament it is for
    - tournament status (current, upcoming, past)
    - number of participants
    - total value
    - user status in this pool (participating > ranks, non-participating)
    
- pool-bracket-list:
    - tournament status
    - list of all submitted brackets:
        - address of user
        - bytebracket data (used to send as argument to bracket page)
        - value stacked
        - winner team (derived from bytebracket data)
        - correct picks
            - needs list of match results
        - rank
        - score

- user-bracket-component:
    - View of bracket detail page with 
        - user bracket data
        - tournament status
        - list of match results


## Bracket config page
- list of tournaments with status
- bracket-configurator-component:
    - list of teams with their place in bracket

## Enter pool page
- pool-header-component:
- select-config-component:
    - list of user bracket configs for this tournament (name)
- in-page-config-component:
    - bytebracket


## Create pool page {arguemnt: tournamentId}
- list of available scoring mechanisms
- FAQ about creating pools

## About PP page
- 'about Perfect pool' data

## Past tournament page
- list of tournaments w status
- for each tournament:
    - tournament-result-component
    - name
    - list of pools
        - name
        - creator
        - number of mambers
        - totalamount of ETH stacked


--------------

# PerfectPool dapp: needed states:
- user
- current tournament
- next upcoming tournament
- all upcoming
- all past
- selected tournament (upcoming)
- selected pool
