I want to build a really lightweight web map interface where a user can click anywhere on a map, create a point, type in a comment -- ideally all via Facebook, but I don't want to get ahead of myself -- and have that comment pop up next to the point on mouse-over. Eventually, a large "crowdsourced" smattering of points with comments will be formed ... kind of like this New York Times map.
- A moderator of some sort (me) can go in & remove any inappropriate points/comments.
- User X cannot edit any other users' points.
- User X who makes a point on the map can go back and edit any of their own points.
It seems the ArcGIS API can help you make a web map that allows a point-editing free-for-all, but nothing like the above features, as far as I know. And I don't know much about the server/database side of web technologies. What kind of technology would even be necessary to:
- Recognize User X as User X & not User Y?
- Recognize points a, b, and c as belonging to user X?
- Letting user X edit those points and no other points?
I imagine there would need to be some kind of account creation / logging-in situation, tied to map editing capability? Where would one even begin crafting something like that?
For functionality, Crowdmap (like this example here) does exactly what I'm looking for in terms of the key requirements 1 & 2, but I want something a lot more simple ... just one click on the map, type in a box to put your comment, and you're done, no clicking through to "report submission" forms with tons of fields and sending it off somewhere to get processed.
For aesthetics & some functionality, I really like the look & simplicity of this cool map, which also fulfills 1 & 2, but I have no idea how user-submitted polygons are being read and presumably appended to a geo-enabled table/database, and in fact that very part seems crucially incomplete, because the things you draw on the map don't seem to actually get saved.
Would love to get pointed in the right direction, as I would be thrilled to know how to do this! Or even what I need to learn more broadly.