# 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