Finally it worked. Thank you very much. Just two points:
a. Ajaxing ends up with this URL:
I mean the internal details are visible to the user. An ideal solution is to reset the URL to something like this: localhost:4567/map
b. Suppose I cold load with an invalid URL:
it still renders the map page. Ideally, it should display the "Page Not found message"
Any solution to these two? Or, shall I consider them as "OK let it behave so!"?
I don't think we have that documentation right now, couple months ago I started a doc in the github wiki about the db structure but I don't think it got moved over to the docs website.
Either way the best way to store your plugin data is to prefix the name of your keys with the plugin id so it doesn't conflict with other plugins.
Also you need to be careful to not break any of the core objects, ie if you delete the key users:joindate you will have problems.