Giter Site home page Giter Site logo

cardano-explorer-app's People

Contributors

cleverca22 avatar craigem avatar deejayelly avatar dependabot[bot] avatar dermetfan avatar disassembler avatar dominikguzei avatar iohk-bors[bot] avatar jplorek-atix avatar lgobbi-atix avatar nikolaglumac avatar rhyslbw avatar sam-jeston avatar smnhgn avatar thedanheller avatar topseniors avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

cardano-explorer-app's Issues

Header background visual, animation and static image variant

The specified backgrounds:
Screenshot 2019-11-30 at 15 51 23
Screenshot 2019-11-30 at 15 51 40

... are not currently implemented. The animation was causing performance issues so was initially replaced with a screen shot, but has since been removed in #136 since it was just a placeholder.

The suggestion from @DominikGuzei is to render the animation as a video, and then use a static image in the smaller footprint mode.

Loading more items in the homepage feeds

Pagination is ideally naturally handled with Cardano GraphQL using a combination of limit, offset, and sort order, however with the current performance limitation we must select by number range.

Instead of referring to the NetworkInfo.store.currentEpoch, the starting point for generating the range should be determined by referencing the store array.

Fix style issues

@a-rukin has identified the following style issues:

  • "Show more" button hover and pressed states are wrong - https://zpl.io/V1840MJ reference

  • Footer: “Open source” link should have same hover effect as an email link

  • Block search result: Padding before “transactions” is missing

  • Transaction search result: Padding before “transactions” is missing. Plus in this case (tx overview) transaction hash shouldn’t be a link as it leads to the page we are currently viewing

  • Amounts should never go multi lines:
    screenshot 2019-11-21 um 14 24 07

  • Epochs progress ring mixes color from both themes:
    screenshot 2019-11-21 um 14 41 59

  • Fix home page header image (visible diff between bg color) image

Support multiple APIs with the existing feature set

We're now in a position to build in support for the Jörmungandr node API as it's feasible to maintain two variants with the app development slowing down. This serves as contingency if the Jörmungandr write service for Cardano GraphQL cannot be achieved.

Blocks aggregate count is including the EBB

In Ouroborus Classic there are (k * 10) + 1 blocks in an epoch, but by convention the EBB is usually ommitted from counts etc. The aggregate count should omit this by filtering out blocks with a null number

Make polling factor an ENV

The fetchDynamicInfo polling factor is hard coded as double the slot duration. The intention was half, so rather than update the calc, we should define an ENV that defaults to 1. This way the UI can be tweaked to gain control over the nearness of the real-time features.

Improve Browsing UX

@rhyslbw identified a few issues with the browsing feature:

Params validation

There's a bug with the browse-* pages when the total of items is less than the page qty (eg epochs in the dev data set). It triggers an endless loop:

Drop redirect because it breaks browser navigation

Need to drop the redirect to the "correct" url and just infer the corrected details from the given prams (this is already possible with the current logic)

Searching for the genesis returns a no result

{
  blocks(where: {id: {_eq: "5f20df933584822601f9e3f8c024eb5eb252fe8cefb24d1317dc3d432e940ebb"}}){
    id
    slotNo
    slotWithinEpoch
    previousBlock {
      id
      number
    }
    transactions_aggregate {
      aggregate {
        count
      }
    }
  }
}
{
  "data": {
    "blocks": [
      {
        "id": "5f20df933584822601f9e3f8c024eb5eb252fe8cefb24d1317dc3d432e940ebb",
        "slotNo": null,
        "slotWithinEpoch": 0,
        "previousBlock": null,
        "transactions_aggregate": {
          "aggregate": {
            "count": 14505
          }
        }
      }
    ]
  }
}

Screenshot 2019-11-13 at 20 38 18

Fix issues related to epochs

Epochs Overview

screenshot 2019-11-21 um 14 28 21

For epoch overview we shouldn’t have “show more” as we are already on the “show more” step. Here we should have paginator https://zpl.io/25yl840 (amount of results is not yet decided… I guess it would be something like 25 or 50)

Browse Epochs

Epoch show more shows only 6 rows per page… let’s use at least 25 or 50

Do not link to same epoch page

screenshot 2019-11-21 um 14 31 22

Refactor transaction components

The current implementation was done with some modelling errors that have manifested into a component that's unusable without rework.

  1. Refactor the app models using the API models as guidance
  2. Update the components to use inputs and outputs (currently represented as senders and receivers).

Search for address summary

Cardano GraphQL does not have an "address summary" query, as this is an application concept. Instead it offers a natural model to get the information that is what the explorer considers as Address Summary.

query searchForAddressSummary(
  $address: String!
) {
  utxos_aggregate (
    where: {
        address: {
            _eq: $address
        }
    }
  ) {
     aggregate {
         sum {
             value
         }
    }
  }
  transactions_aggregate (
      where: {
          outputs: {
              address: {
                  _eq: $address
              }
          }
      }
  ) {
      aggregate {
          count
      }
  }
}

Refactor data transformers to API

We should introduce API methods that transform the received data to be consumable by the app … currently we do that within the stores and that's actually not very smart (e.g it wouldn't allow us to switch to another API implementation easily)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.