Interactive map ‘pinning’ Giveth projects & wider community

What:

Create a resource to aid collaboration and information sharing within Giveth and wider community by:

  1. Creating an interactive map showing Giveth.io project locations

  2. Layering on partners, regional experts, regional info links, refi network etc. in next phase

Why?:

In the recent donor survey stewarded by @JakeS (Donor survey results) - one of the findings was that donors would like to be able to search projects by location to donate to projects near them or their area of interest.

Goal:

Through an interactive map, make it easy to see where a project is based, enabling users of the platform to discover where projects are making an impact; and in doing so:

  • bring donors and projects together
  • help projects to network and support each other
  • increase engagement on platform
  • increase donor support on platform
  • better support projects
  • aid collaboration and information sharing within Giveth and beyond

Issue:

  • Regional project information is not easily or visually accessible on Giveth.io
  • Data for project location in our database is not complete and not currently standardised on the platform

Proposal:

@santigs & I collaborated on the following proposal to:

  • Create an interactive, on-line map and plot project locations showing basic info: name, location, Giveth.io link, verification status
  • Output with HTML so that it can be embedded in any webpage

Layer 1: Plot Giveth projects

Projects’ data

  1. Have two location fields in Giveth database a) standardised country b) standardised town/city

  2. Clean-up, standardise and complete existing project location data

  3. Extract project name, location, Giveth.io link, verification status data into .csv and translate location data into decimal coordinates using a simple lookup (simplemaps.com provides decimal coordinates for around 43k towns and cities in the world)

Create Map

  1. Create interactive map using Python ‘folium’ library. Populate with .csv file containing complete and cleansed project data, using Python

  2. Colour code data points to represent verified and non-verified projects; create pop-up for each project containing basic info eg. Name, location, Giveth.io project link

  3. Ask Design team to GIVstyle to the map with some Giveth branding

  4. Map can be embedded with HTML into any webpage

Considerations / tbd

  • Many projects have not provided specific location data: particularly virtual, global or multi-location projects – there’s a decision to be made on how to best categorise these projects and display them on the map. Other projects have left this field blank.
  • What do we do about Giving Block projects? Proposing to leave these projects out of scope.

Testing

  • Tested this process and the code using a small amount of ‘test’ data.
  • Data is easy to load and colour-code from the .csv table.

Proposed Next Phase - wider community impact!

Goal:

To network our wider ReFi community by loading other regional information points onto our interactive map, creating a powerful visual index of our wider community. For example, we could add a layer showing:

  • ‘Area of expertise’: groups / individuals by their regional area of expertise (could be speakers, supporters, mentors, event organisers etc)
  • ‘Area of interest’: groups / individuals by their regional area of interest (could be donors, investors, event organisers, collaborators)
  • ‘Resources / info links’: a library based on regional relevance
  • Partners / collaborators / aligned, useful organisations

Scaling

  • .csv table template can be publicly-shared
  • Anyone can add publicly-available info to .csv table - ie website, Twitter links and bio. Proposing to define some kind of curation process to maintain quality of information
  • Decimal coordinates will auto-populate
  • Only live links can be added, to ensure info remains up-to-date with minimal maintenance
  • Map can be updated (weekly, bi-weekly, monthly - tbd) with simple .csv upload ensuring minimum maintenance

WDYT?
Thanks to @santigs @WhyldWanderer @JakeS @Cotabe for input into this idea.

5 Likes

Love it! Love it! Love it! Looking forward to seeing it active.

Do you think it would be a good idea to have a “recommendations” tab or some way people could recommend projects in certain countries or areas to this map area?

Also, I know we have been looking for a way to endorse getting our projects verified, maybe we could use the map as a way to do that. Only for verified projects?!

Last thought, when power boosting happens those projects would have a beat or thumping pin on the map.

Just random thoughts…maybe none of them hit, make sense or would add too much work.

3 Likes

Not sure if this helps/not Sobol.io maybe could be used (it has a global map setup already etc) maybe setting up a new account, and maybe add each project lead to it, and they can add their location/contact info. and it would show on the map. (i think we already have a sobol.io account, this would be seperate, but controlled by a few of our team) Just thoughts.

2 Likes

Why don’t we have this on our website? We should have the project location data already and we could generate a map as a “view” or “filter” on the Projects page.

2 Likes

Thanks @markop for your ideas on how it might work / look on the website. We do already have the project location data but it’s not standardised and not complete. We also need to consider how to treat projects that exist on-line etc.

Thanks - could be great to have projects add their own data and have the map self-populated- could this sobol map be embedded on projects page?

I believe it has some ability for such. ( i think we already have an account on sobol?) i had to setup one for …another entity. (discord bot connection and all ) i dont use sobol much myself however. its mostly for visual sake. (this use case exactly)

Google Maps embed gives up to 28.5k ‘maploads’ / month for free: after that there are charges for additional ‘loads’ of the app.

Detailed pricing info and faqs here: Platform Pricing & API Costs - Google Maps Platform

Giveth could apply to see if eligible for ‘Google for non-profits’, which includes additional Google Maps Platform credits, amongst other perks and should give us ‘premium’ access to ‘development’ features in Google Maps Platform.

@clara_gr and I have started working on the first version of the project’s map using Google MyMap. We have uploaded some of the projects to show you how they can be seen on a worldwide map. There are some projects missing due to incorrect location data but you can have an initial idea.


You can play around with this test interactive map using this link. We would love to hear your comments.

2 Likes

:wave: Hi, I’m @remygalan, really like this forum post, i would like to participate actively in the development of this feature.
:seedling: I’m currently learning more about Giveth.io architecture following your (docs) and (repos) and maybe have some ideas that could may integrate into Giveth to support Interactive Map native; among these ideas:

  • Adding spatial support in Giveth Postgres DB (PostGis)
  • Adding spatial support in Giveth Backend at impact-graph and TypeORM Mapping
  • Optionally integrate Mapping API or library into Giveth Frontend (LeafLet, OpenLayers or any other FOSS alternative)
  • Code Map library to register (projects, users and/or organizations) locations
  • Use Map library to query adn deploy (projects, users and/or organizations) locations

After Giveth.io local deployment, i got some progress in:

  • :mailbox: Installing spatial support (Postgis) in local Giveth Postgres DB.
  • :mailbox: Adding spatial column to entity in TypeORM (still some migraton issues).
  • Planning testing development of Map library in Giveth Front (still some installation issues with yarn)

Hopping this help and add some to discution, greetings.

Remy.

1 Like

So, just go through that migration issue and finally can add spatial column to project entity. Previously defined that in impact-graph Backend:


And after run migration command:

 $ npm run typeorm:cli -- migration:run

Migration to Giveth PostgreSQL DB done:

1 Like

Hey @remygalan !

Thanks so much for the initiative. It would be great to have you on the Governance Call, to learn more about what you are doing.

1 Like

Hi @Cotabe , thanks!

I already do it in the Community Call, don’t know when Governace Call takes, so i’ll do my research.

@remyalex is my user on Discord.

Again thanks!