I've been filling out the map for user groups, and have some issues with the current way this page works.
Right now, the map is managed by an fsharp.org google map, and must be manually edited to add groups. This causes it to be a separate set of data from the user group list in the main page. As such, one or both sets of data is typically out of date.
I now have the map portion (as far as I know) fairly current with the list of groups + "friendly" groups. However, I would like to propose a change to how this is managed and displayed.
If we switch to using a single google fusion table, we can create a map as well as an iframe list (their "card view") of the data. This allows us to manage both sets of information from a single data source, which is likely far more maintainable over time.
I have a quick prototype of this up at: http://reedcopsey.github.io/fsfoundation/groups/
Note that the layout is slightly imperfect due to the F# logo not being found, but the relevant portions of the page are correct. I've currently only copied over 4 of the user groups (just to provide some sample data), but am willing to copy over all 47 groups of which I'm currently aware.
There are many advantages to this approach over time, including:
- A single data set which backs the map and list.
- Flexible display options [we could always improve or change the display later as there is a javascript API to the tables, so we don't have to always use their card view in an iframe].
- Consistency - As this is data driven, the display can be updated in a single layout and is guaranteed to be consistent.
- Lower maintenance - We already have to manually edit the data source to handle the map. This makes 1 edit handle both.
- Security - The ability to edit the data source can be shared with specific people as needed (and revoked at any time) as the data source is a sharable google document
- Potential for reduced maintenance over time - It is possible to modify this approach to allow for a google form from which users could add their own group directly. I'm not sure this is worth the effort (and potential for abuse) as new groups are not a common enough occurrence that a simple edit is problematic.
The main disadvantages compared to the current methodology are:
- This isn't editable via a pull request. Currently, the list portion can be edited this way, though the map is not kept up to date when a user does a pull request.
- It can't be broken out (easily) by continent as it's currently done. It would be possible to do this, but it'd add to the maintenance cost, so I don't know that it's worthwhile (especially since the map is interactive, and clicking on the groups brings up their information).
It is also not as easy to "feature" specific groups with this, as it's data driven. I'm not sure if this is a pro or con - on one hand, it's unbiased (as it's just alphabetical), but on the other hand, right now, some of the bigger groups are listed first.