# 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