encointer / explorer

explore the encointer network, browse local communitities an monitor populations
GNU General Public License v3.0
1 stars 1 forks source link

map view for encointer currencies #2

Closed brenzi closed 4 years ago

brenzi commented 4 years ago

encointer features a registry of local community currencies that are defined by a set of meetup locations. The explorer shall feature a map view that allows users to explore all registered currencies and their meetup locations.

story:

  1. map shows global view with pins for every community.
  2. user clicks a currency and map zooms in to fit the community area. every meetup location of this currency is marked with a pin. In a side-view, detailed information shows up

optional extensions

detail view

The detail view shall list the following information

optional extensions

look and feel

Right now we only forked a template. The only features we'd like to keep are:

everything else may be purged to get a clean look. The map should be the main thing. Design may be kept very simple.

must be mobile-friendly

implementation

We use polkadot-js and publish to github pages (so only static page content!): https://encointer.github.io/explorer/

query list of of currencies:

encointerCurrencies.currencyIdentifiers -> Vec<CurrencyIdentifier>

query list of meetup locations for one currency

encointerCurrencies.locations(cid) -> Vec<Location>

Location has field lonand lat of type I32F32 which is a fixpoint value with 32 signed decimal bits and 32 fractional bits (currently unsupported by polkadotjs)

maps

We would prefer to use open street maps. Map should be zoomable

testing

See our tutorial on how to add more communities for debugging

acceptance

this task is deemed done when the story succeeds with testnet gesell when building the PR with yarn build and the specified informations can be explored.

to be tested in Firefox bowser on desktop and mobile

gitcoinbot commented 4 years ago

Issue Status: 1. Open 2. Started 3. Submitted 4. Done


This issue now has a funding of 1.226 ETH (249.99 USD @ $203.91/ETH) attached to it as part of the @encointer fund.

gitcoinbot commented 4 years ago

Issue Status: 1. Open 2. Started 3. Submitted 4. Done


Work has been started.

These users each claimed they can complete the work by 3 weeks, 1 day from now. Please review their action plans below:

1) flukekiafer has applied to start work _(Funders only: approve worker | reject worker)_.

0x2e4dd5c47de641ed6d0129c1f0491eb6f6824007 2) demyanrogozhin has been approved to start work.

I'm experienced JS developer, fluent in react, implement interactive maps in 3 web sites (one case similar to yours), thus I think I can handle it. Execution plan:

  1. Clean page from all widgets
  2. Using React-leaflet package add MapComponent that occupy 100% of page
  3. MapComponent implementation 3.1. In MapComponent add calls to Substrate API fetch data and save it to state. 3.2. Using clustering plugin add pins to Leaflet layer 3.3. Add pin popup with metainfo shown on hover - Leaflet feature
  4. Add DetailView component 4.1. Create template that shows required info 4.2. Add condition shows component on side when pin clicked (state value changed) 4.3. (optional) Implement population timeline feature
  5. Test manually on desktop and mobile
  6. write unit and integration tests if time permits

Learn more on the Gitcoin Issue Details page.

brenzi commented 4 years ago

one of the currencies used in the [tutorial] has the following location

{
  "type": "FeatureCollection",
  "currency_meta": {
    "name": "minimal mediterranean test currency",
    "bootstrappers": [
      "5EcDWHsGzERpiP3ZBoFfceHpinBeifq5Lh1VnCkzxca9f9ex",
      "5Dy4K5eNr13D37NcMcq4ffQZBAmt9BZhkgi5kBGuUWwK8cB7",
      "5GCdWmdr5eZRvRPx6XE8YxFD472EvSMSTK6GQCHyuiNnw7rK"
    ]
  },
  "features": [
    {
      "type": "Feature",
      "properties": {},
      "geometry": {
        "type": "Point",
        "coordinates": [
          11.25,
          40.03182061333687
        ]
      }
    }
  ]
}

The cid should be HKKAHQhLbLy8b84u1UjnHX9Pqk4FXebzKgtqSt8EKsES (base58 encoded)

brenzi commented 4 years ago

here's another on that should be registered:

{
  "type": "FeatureCollection",
  "features": [
    {
      "type": "Feature",
      "properties": {},
      "geometry": {
        "type": "Point",
        "coordinates": [
          9.926147460937498,
          41.01099329360268
        ]
      }
    },
    {
      "type": "Feature",
      "properties": {},
      "geometry": {
        "type": "Point",
        "coordinates": [
          10.008544921875,
          41.104190944576466
        ]
      }
    },
    {
      "type": "Feature",
      "properties": {},
      "geometry": {
        "type": "Point",
        "coordinates": [
          10.08544921875,
          41.01513821521511
        ]
      }
    }
  ]
}
gitcoinbot commented 4 years ago

Issue Status: 1. Open 2. Started 3. Submitted 4. Done


Work for 1.226 ETH (262.51 USD @ $214.12/ETH) has been submitted by:

  1. @demyanrogozhin

@brenzi please take a look at the submitted work:


gitcoinbot commented 4 years ago
Collaboration Machine ⚡️ A *Collaboration Machine* Kudos has been sent to @demyanrogozhin for this issue from @brenzi. ⚡️ The sender had the following public comments: > Great work. Thanks for getting in touch to clarify questions Nice work @demyanrogozhin! To redeem your Kudos, login to Gitcoin at https://gitcoin.co/explorer and select 'Claim Kudos' from dropdown menu in the top right, or check your email for a link to the Kudos redemption page.
gitcoinbot commented 4 years ago

⚡️ A tip worth 0.24520 ETH (52.25 USD @ $213.09/ETH) has been granted to @demyanrogozhin for this issue from @brenzi. ⚡️

Nice work @demyanrogozhin! To redeem your tip, login to Gitcoin at https://gitcoin.co/explorer and select 'Claim Tip' from dropdown menu in the top right, or check your email for a link to the tip redemption page.

gitcoinbot commented 4 years ago

Issue Status: 1. Open 2. Started 3. Submitted 4. Done


The funding of 1.226 ETH (256.71 USD @ $209.39/ETH) attached to this issue has been approved & issued to @demyanrogozhin.

Additional Tips for this Bounty: