Skip to content
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
35 of 39 tasks
jywarren opened this issue May 11, 2017 · 27 comments
Closed
35 of 39 tasks

Planning overview #1

jywarren opened this issue May 11, 2017 · 27 comments

Comments

@jywarren
Copy link
Member

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 Major geographic feature planning issue 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. (Add explanation of relation of zoom level to precision #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 Planning overview #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 Test that .getLat() and .getLon() change after map.setView() #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 Interface design reference #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 Remove key:value features of UserTag 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 Adding leaflet-blurred-location plugin 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
Copy link
Member

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

@mridulnagpal
Copy link
Member

@jywarren Should we move forward?

@jywarren
Copy link
Member Author

jywarren commented May 22, 2017 via email

@mridulnagpal
Copy link
Member

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

@jywarren
Copy link
Member Author

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

@jywarren
Copy link
Member Author

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
Copy link
Member

@jywarren Sure on it

@mridulnagpal
Copy link
Member

@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
Copy link
Member Author

jywarren commented May 25, 2017 via email

@mridulnagpal
Copy link
Member

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

@jywarren
Copy link
Member 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
Copy link
Member Author

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
Copy link
Member Author

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
Copy link
Member

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

@jywarren
Copy link
Member Author

jywarren commented Aug 21, 2017 via email

@mridulnagpal
Copy link
Member

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

@jywarren
Copy link
Member Author

jywarren commented Aug 21, 2017 via email

@mridulnagpal
Copy link
Member

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

@jywarren
Copy link
Member 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
Copy link
Member

mridulnagpal commented Sep 2, 2017 via email

@jywarren
Copy link
Member 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
Copy link
Member

mridulnagpal commented Sep 2, 2017 via email

@jywarren
Copy link
Member Author

jywarren commented Sep 2, 2017

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

@jywarren
Copy link
Member Author

jywarren commented Sep 2, 2017

ok! done!

@jywarren
Copy link
Member 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
Copy link
Member

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

@jywarren
Copy link
Member 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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants