New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Planning overview #1

Closed
jywarren opened this Issue May 11, 2017 · 27 comments

Comments

Projects
None yet
2 participants
@jywarren
Copy link
Contributor

jywarren commented May 11, 2017

OK, just starting out here, feel free to edit/adapt this! Each of these could become a milestone with issues, perhaps?

Basically, in this new repository, the library should be exposed via a "constructor", like:

 // this "constructs" an instance of the library:
var location = new BlurredLocation({
  lat: 41.01,
  lon: -85.66
});

location.getLat(); // should return 41.01
location.getLon(); // should return -85.66

Setup phase

  1. Create separate library at https://github.com/publiclab/leaflet-blurred-location
  2. maybe assign https://github.com/mridulnagpal/leaflet-blurred-location to be derived from publiclab fork, so we can open pull requests against this more easily?
  3. Move any relevant issues to the blurred-location repository from publiclab/plots2#1070
  4. Get demo running in separate repo, with simple HTML template and constructor like var location = new BlurredLocation(options);
  5. Write minimal “setup” docs in README, show what options can be, or are required, if any, point at the example HTML and setup code, show constructor usage
  6. (#22) document relationship between zoom levels and precision in docs, using ideas from http://leafletjs.com/examples/zoom-levels/
  7. release on Bower and NPM -- @jywarren will do this
  8. Get this running on plots2 via bower include and version ~0.0.1 at https://publiclab.org/locations/form

Interface phase

  1. initial "location entry" interface without privacy, via first release of #1
    • this could include a "simple location entry" example at examples/simple.html which starts without the grid and has no checkbox to turn on blurring -- just a "normal" location input.
  2. test for above - described in #5
  3. Display latitude/longitude using location.getLat() and location.getFullLat()
  4. Create method for location.goTo(lat, lon, [zoom])
  5. Display both short and full length coordinates as you drag, below the map box
  6. Adapt text-based search to use location.geocode(string)
  7. develop a button (in example) which fetches lat & lon and submits an example method like alert(lat + ',' + lon)

Interface phase 2

  1. Debug “shaded” square - drift, double
  2. Debug box transparency
  3. Debug text-based search
  4. Check against #2 mockup

Write tests

  1. Test location.goTo()
  2. Test location.geocode() with test string like “Buenos Aires”
  3. Test location.getLat() and getLon()
  4. Test that location.getFullLat() is longer than location.getLat() etc
  5. Test location.getPrecision()
  6. Test location.setPrecision() (this might be run as you zoom the Leaflet map in and out, and/or you could make the map zoom by running this)

Now once we have clearly tested behaviors we can rely upon, we can move on to integration, using those very standardized methods!

Integration phase

  1. open new issue on https://github.com/publiclab/plots2 with integration steps
  2. Get form to appear in a modal on standard addLocation() call http://getbootstrap.com/javascript/#modals
  3. Get form to use addTag interface
  4. Get form to add location:blurred tag
  5. Restructure UserTags to be more like Tags, so we can send it lat:___ & lon:____ tags, just like a node (captured in publiclab/plots2#1417)
  6. Remove LocationTags code
  7. Develop JSON API (with @david-days) for querying people or nodes by lat/lon bounding box, like: /api/geo/41.0/-61.5 (to get a 1x1 degree bounding box?)
  8. Connect map display in Inline Maps up to the JSON API https://publiclab.org/wiki/inline-maps
  9. Get inline maps to refresh on drag or zoom using new API
  10. Display success/failure message "Your location was saved." and offer refresh or display an indication that the content is geolocated

Optional

  1. Reverse geocode while you drag - display textual location like "Buffalo, NY" when you pan the map over that city, using this code
  2. Consider a way to quantify how blurry your location is — in meters/kilometers?
  3. offer to use the geolocation API to find where you are now
  4. get listed on http://leafletjs.com/plugins.html (submitted Leaflet/Leaflet#6015)

Delay for now

Some features, in discussion with @steviepubliclab and @ebarry, are not as urgent, and we’d like to de-emphasize them in favor of getting the above systems running faster.

  • Adding external information such as gear required, organizers, etc. to any event notes' map.
  • Location subscriptions/notifications
@mridulnagpal

This comment has been minimized.

Copy link
Member

mridulnagpal commented May 15, 2017

@jywarren Looks perfect. Made a pull request with the setup phase changes. Please review

jywarren pushed a commit that referenced this issue May 22, 2017

@jywarren jywarren referenced this issue May 22, 2017

Merged

initial commits #3

@mridulnagpal

This comment has been minimized.

Copy link
Member

mridulnagpal commented May 22, 2017

@jywarren Should we move forward?

@jywarren

This comment has been minimized.

Copy link
Contributor Author

jywarren commented May 22, 2017

@mridulnagpal

This comment has been minimized.

Copy link
Member

mridulnagpal commented May 22, 2017

The methods are a part of the BlurredLocation object. I didn't get the integration part.

@jywarren

This comment has been minimized.

Copy link
Contributor Author

jywarren commented May 22, 2017

Sorry, maybe I missed one of the changes in the big PR. Looking in now.

@jywarren

This comment has been minimized.

Copy link
Contributor Author

jywarren commented May 22, 2017

Ah, i mean integrating the code from location_tags.js and locationForm.js into the object.js object. So you can instantiate the object and it hooks up the form behaviors, wihtout requiring a separate JavaScript include.

@mridulnagpal

This comment has been minimized.

Copy link
Member

mridulnagpal commented May 23, 2017

@jywarren Sure on it

@mridulnagpal

This comment has been minimized.

Copy link
Member

mridulnagpal commented May 24, 2017

@jywarren Please have a look at #6 and add the first-timers-only label to it I couldn't find a way to do it

@jywarren

This comment has been minimized.

Copy link
Contributor Author

jywarren commented May 25, 2017

@mridulnagpal

This comment has been minimized.

Copy link
Member

mridulnagpal commented May 25, 2017

@jywarren First five of the setup phase are done I guess

@jywarren

This comment has been minimized.

Copy link
Contributor Author

jywarren commented Jun 7, 2017

Super. Thanks for your hard work on this! I was trying to get the demo working in publiclab's github pages, but it was being weird. Have you been able to get the demo working in gh-pages on your own repository?

@jywarren

This comment has been minimized.

Copy link
Contributor Author

jywarren commented Jun 16, 2017

Hi, @mridulnagpal -- i've added a set of sub-issues to help you over the next week. Can you please take a look: https://github.com/publiclab/leaflet-blurred-location/milestones

I hope this is helpful! Now that your basic library is in place, things can start to happen faster!

@jywarren

This comment has been minimized.

Copy link
Contributor Author

jywarren commented Jun 30, 2017

Coming along here. Once we have the Graticule work done, we can start really checking these off.

I added some detail to initial "location entry" interface without privacy - hope that helps.

@mridulnagpal

This comment has been minimized.

Copy link
Member

mridulnagpal commented Aug 21, 2017

@jywarren Which link do I send as my GSoC evaluation?

@jywarren

This comment has been minimized.

Copy link
Contributor Author

jywarren commented Aug 21, 2017

@mridulnagpal

This comment has been minimized.

Copy link
Member

mridulnagpal commented Aug 21, 2017

Sure, on it! What all things you want to be done before the deadline?

@jywarren

This comment has been minimized.

Copy link
Contributor Author

jywarren commented Aug 21, 2017

@mridulnagpal

This comment has been minimized.

Copy link
Member

mridulnagpal commented Aug 21, 2017

I will try my best, we can atleast have some basic functionalities.

@jywarren

This comment has been minimized.

Copy link
Contributor Author

jywarren commented Sep 2, 2017

OK, i went ahead and released: https://www.npmjs.com/package/leaflet-blurred-location v1.1.0 -- now we have to be careful following semver.org!

@mridulnagpal

This comment has been minimized.

Copy link
Member

mridulnagpal commented Sep 2, 2017

@jywarren

This comment has been minimized.

Copy link
Contributor Author

jywarren commented Sep 2, 2017

GitHub release is done -- but the npm publish isn't going very fast. Please give me a little more time to do this from a good internet connection...

https://github.com/publiclab/leaflet-blurred-location/releases/tag/v1.1.0 is good

@mridulnagpal

This comment has been minimized.

Copy link
Member

mridulnagpal commented Sep 2, 2017

@jywarren

This comment has been minimized.

Copy link
Contributor Author

jywarren commented Sep 2, 2017

whoa, apparently it's 18mb... not sure why but that's a lot. Taking a while.

@jywarren

This comment has been minimized.

Copy link
Contributor Author

jywarren commented Sep 2, 2017

ok! done!

@jywarren

This comment has been minimized.

Copy link
Contributor Author

jywarren commented Sep 2, 2017

Cool, if you want to give an update on the display library i'd love to catch up!

@mridulnagpal

This comment has been minimized.

Copy link
Member

mridulnagpal commented Sep 4, 2017

It's in an initial phase with basic functioning. So let's work on it then!!

@jywarren

This comment has been minimized.

Copy link
Contributor Author

jywarren commented Jun 6, 2018

I'm closing this as I've broken out the last item! Congratulations! Now we need to do some UI work on plots2.

@jywarren jywarren closed this Jun 6, 2018

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment