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

Outreachy project planning #6887

Closed
jywarren opened this issue Dec 2, 2019 · 154 comments
Closed

Outreachy project planning #6887

jywarren opened this issue Dec 2, 2019 · 154 comments
Assignees
Labels

Comments

@jywarren
Copy link
Member

jywarren commented Dec 2, 2019

First, congratulations again, and thank you for choosing Public Lab for your Outreachy fellowship! 🎉 🎉

I wanted to start to get our respective project plans aligned; first because we will have two fellows working together on this, and second, because there have been and will continue to be some other parallel and overlapping projects with connections to your work.

This project fits into a broader set of "Geographic systems" (https://github.com/publiclab/plots2/milestone/7) which were also worked on by @ananyaarun (during the last round of Outreachy) and others as well, including @sagarpreet-chadha, @cesswairimu, and more, both here in plots2 and in Leaflet Environmental Layers!

@crisner has been doing some great work on the LEL library, while @nstjean has been doing some great work on the plots2 side of things, so this seems like, potentially, a natural complimentary arrangement. So, let's discuss a bit of each side and where the overlaps are!

Original proposals

Resources

Some starting resources -- it's a good idea to read through our Style guide and Roadmap for a solid idea of how new features should be both planned and designed.

OK I am taking too long to post this so I'll just hit Publish and add more in a bit.

Welcome @crisner @nstjean and the Outreachy mentors! @ananyaarun @rexagod @cesswairimu @asquare14 @IshaGupta18 @MayankKashyap!

👋 🙌 🎉 💯 🔥

@jywarren
Copy link
Member Author

jywarren commented Dec 2, 2019

I've been organizing a more list-style planning issue here, with lots of related issues linked in and grouped; i'll try to organize that today! #6801

@jywarren
Copy link
Member Author

jywarren commented Dec 2, 2019

I also wanted to point to this great resource on testing your work on the unstable server -- it's a great way to see how things run in an environment almost identical to the production server! https://github.com/publiclab/plots2/blob/master/doc/TESTING.md#testing-your-work-with-unstable

@jywarren
Copy link
Member Author

jywarren commented Dec 2, 2019

There are really a lot of different moving parts in this project, so please ask questions if you get lost or confused! Or see a way to do things that'd be better!

For example, here's an instance of using LEL within plots2 that isn't working correctly: #6889

@nstjean
Copy link
Contributor

nstjean commented Dec 2, 2019

Ok great!

One question I have: in my proposal I have a plan for a new way of setting location on users profiles. Do you still want me to do this, even though it's not on the plots2 checklists?

@jywarren
Copy link
Member Author

jywarren commented Dec 2, 2019

Sure! I think we will all need to update/refine/revise project plans and I'd love to workshop a new design idea as part of it! Also, the listings I've added so far are by no means complete or comprehensive.

I wanted to share this "how we work" issue which is a bit dense but could have some useful info for you both: #5667

@jywarren
Copy link
Member Author

jywarren commented Dec 2, 2019

OK, so @nstjean has identified a lot of great bugfixes and UI enhancements for location entry in Phase 1 - they all sound GREAT. Just be sure that the styling matches our style guide (esp the "Add a location" styling we've been trying to standardize - a white button with a red marker -- #6856) and the dashboard is about to be rebuilt #6787 but preserves a space for the Add your Location button there too. Let's start listing out those ideas/tasks in our checklist post at #6801 and we can mark them done as we go!

@crisner has some awesome work planned for the layer selector/control/menu. I wonder if @crisner may want to prioritize the debugging of the search-for-location in the location selector (which uses this library: https://github.com/publiclab/leaflet-blurred-location) and the layers "browser" menu, based on the static HTML in publiclab/leaflet-environmental-layers#232. One feature we are really interested in is a demo in the Github Pages demo which can generate an embed code -- basically as you pan and zoom and select and deselect layers, it would modify the URL hash, and you'd be able to get the URL from that. Both using a method like getUrlHash() within the library, and also in the UI. What's nice about this is that @sagarpreet-chadha has implemented this within the context of plots2 already, so that work could be back-ported to LEL, perhaps? #6874

The reason I suggest this is that the layers selector is already at the beginning of your timeline @crisner and this would nicely tie together a number of adjacent and parallel projects. As you use the new menu, it also allows you to then copy that to display on another website, you know?

@jywarren
Copy link
Member Author

jywarren commented Dec 2, 2019

I also recommend that you each look through each others' proposals and think about how, as you get into the project, you might divide up the work for those middle sections which overlap most; for example, both of you have shared some really great UI mockups with ideas for where active layers might be displayed, and other elements. If we do a good job developing things in small modular pieces, we should be able to work in synchrony on these things.

Finally, one area where we might expand, given that we have 2 people working on this project now, is in testing -- both in plots2 and in the UI tests in LEL, some of which are here: https://github.com/publiclab/leaflet-environmental-layers/tree/master/spec/javascripts

These features are complex and deeply intertwined. We may gain a lot in stability if we protect the features (and bugfixes) with good tests, so I'd love to hear how you both might schedule time to build testing into your project plans! Here's an issue where we can get organized on this too: publiclab/leaflet-environmental-layers#71

Thanks a lot, I know I've just shared a TON. Take your time processing this info, and please don't hesitate to ask questions, or point out where I've missed things or been unclear, or where you have new and great ideas to share!

🎉 Thanks so much for working with us!!!!!

@nstjean
Copy link
Contributor

nstjean commented Dec 2, 2019

Yes that sounds great!! I'm going to take time to go through all the different lists and proposals and @crisner and I will decide how to coordinate our efforts!

@crisner
Copy link
Contributor

crisner commented Dec 3, 2019

Thanks for laying out all the information @jywarren! I'll start by going through all the information and our project proposals. I'll make sure to ask if anything is unclear. I'll have a discussion with @nstjean and plan our work accordingly.

@cesswairimu
Copy link
Collaborator

This is great..glad to work with you both..feel free to tag me incase of anything. Thanks

@jywarren
Copy link
Member Author

jywarren commented Dec 3, 2019

I also just added @crisner @nstjean to the @publiclab/soc team (which we use for various Summer of Code-style programs) which should give you considerably more access; to label, edit, and triage issues and pull requests! Welcome! 🎉

@crisner
Copy link
Contributor

crisner commented Dec 3, 2019

I have listed a few tasks below for now and have tried to link them with existing issues. Hope to finish laying them out by tomorrow according to the tasks in our proposals. @nstjean, please edit this to add the tasks you have laid out. @jywarren I have a few questions that I have included at the end.

[Natalie] We have added all items from our plots2 plan.

Plots2

All tasks for /map/ route are here: #6993

Update 'new post' location form:

Project: Redesign of location popup modal

Natalie's proposal included a possible design for the user profile location entry, this will need to be posted and input gathered as to what is the best way to accomplish it, how it should function and look.

Testing:

PL.Editor

LBL

LEL

  • Work on embed feature PR#296

  • Make domain name as a settable option defaulting to the gh-pages PR#307

  • Display directions on top of map in the demo page PR#309

  • Replace leaflet layer control with the layers browser menu from the mockup in #232 PR#320

  • Collect urls for "requests" from layers if they are open to community submissions #138 PR#317

    • Implement the report functionality on the layers browser menu for layers that accept reports like OdorLog PR#320
  • Clone demo page to embed.html so that actual embeds do not show the notice PR#311

  • Track the bounding box of each layer, and display only those which intersect with current view #117

  • Display "new items" mark in Layers menu when you enter an area with a new layer #133

  • Implement minimal mode as discussed in issue #123.

  • Show a button to toggle between default mode and minimal mode. 💡

    • Implement a toggle function
  • Display optional legends for each layer #103

  • Stop displaying spinners if a layer fails to load for 10 seconds (issue #290)

  • Search not open by default but behind a magnifying glass icon that pops open PR#326

  • Implement a search functionality to search for a location to re-center upon with a search button and autocomplete geocoder(discussed in #134) PR#326

  • Zoom in on map based on user location using geolocation.(wonder if this is useful as maps are displayed based on location entered by the user in plots2.) ❔

  • Implement a help functionality 💡

    • 💡 Display option for users to file bug reports with the button directing users to a bug issue template

    • Option to request new layer that directs to an issue template. -> Layer submission process, per-layer metadata #135

    • 💡 An option to display information about the different elements in the map's UI(may be helpful to new users) may be as a modal or a simple faq or as walkthrough tooltips that can be skipped.

  • Implement a features menu that can toggle other elements in the map's interface individually(except layers menu) from view.(Not sure about the usefulness of this functionality other than having 'simple' and personalized interface but just putting out here as this seemed like a good idea at the time) 💡

  • Create a function to make adding layers easier

    • Reduce redundant layer code. A member is working on a plugin that helps avoid repetetive code when adding new layers which is mentioned in #276. We could try to use this.
  • Standard methods for each layer like layer.show() layer.hide() layer.isVisible() #251

  • Create a layer name aggregator function #253

  • Create an option to toggle overlapping marker spiderfier feature for individual layers 💡

  • Make layer names listing in README and layers hash strings consistent PR#315

  • Fix active base layer selection PR#300

  • Reformat/clean up code PR#303

Testing

  • Write tests for embed control PR#314

  • Write UI tests

Questions

  • What does 'share your own map data' on the layers browser menu do? Shown here in the mockup in issue #232.

  • There was a mention on debugging of the search-for-location in the location selector. Is this for the 'Add location section' when adding a post?

  • How should the layers 'browser' menu be implemented in LEL? My idea was to toggle it when clicking on the alert icon displaying the available layers.

  • I had proposed some new features for the LEL UI in my project proposal. Do I include those too as tasks here?

  • I am thinking of working on the embed feature and the layers menu for week one followed by writing tests for them. Are there tasks I should consider prioritizing over others?

Thanks. :-)

@nstjean
Copy link
Contributor

nstjean commented Dec 3, 2019

I've updated @crisner 's post above with some tasks that I had planned for plots2.

We had some overlap in LEL and we'll have to figure out who will take what! Also in the planning issue for geographic features for plots 2 there are more tasks for plots 2, and in the planning issue for LEL there are more as well. I created a large master-list of all the issues using a task planning tool to try to visualize them all. I sent the info over to @crisner so she can use it too. :)

@nstjean
Copy link
Contributor

nstjean commented Dec 3, 2019

One question I have is about the location tools in Plots2. I notice that in some places it uses the pop-up modal, such as in your profile when you are adding a location. But then when you are writing a new post or page it shows an in-line form.

  1. Is there a reason for having two different location input forms?
  2. Should we consolidate to just one or the other?

@jywarren
Copy link
Member Author

jywarren commented Dec 3, 2019

Hi all! Great questions, and great to hear from you all! I'll just jump right in:

What does 'share your own map data' on the layers browser menu do? Shown here in the mockup in issue #232.

Ideally it leads to a page which introduces LEL, and the lays out simple steps for suggesting/submitting a new layer idea (url, type, etc etc) so that we gradually add more layers. We don't yet have a simple way for non-developers to suggest layers, but we do have a new-layer label... in the meantime this could lead to a section of the README which we build out later.

There was a mention on debugging of the search-for-location in the location selector. Is this for the 'Add location section' when adding a post?

I think so! I saw a couple things - one, that it errors near the 360°/0° boundary publiclab/leaflet-blurred-location#213 and one just about the modal being really slow to appear #6897

How should the layers 'browser' menu be implemented in LEL? My idea was to toggle it when clicking on the alert icon displaying the available layers.

Yeah, i'm not 100% sure, and open to ideas. I think that the current layer selection control in upper right has little enough information as to be not really very useful. There's no extra info about each layer, they are obscurely named, etc etc. So, maybe the bigger menu would just replace it entirely, and toggle on as you click that button in the corner?

I had proposed some new features for the LEL UI in my project proposal. Do I include those too as tasks here?

That would be great, and can you highlight them specifically for feedback, too?

I am thinking of working on the embed feature and the layers menu for week one followed by writing tests for them. Are there tasks I should consider prioritizing over others?

This sounds pretty good! Also note the relation between generating an embed code and generating a plots2 short code, aka an "inline powertag" (which we use to embed maps in plots2, and is explained here: https://publiclab.org/wiki/inline-maps). These are very similar if not quite redundant, although we don't use iframes on plots2, which is nice. So, the function which generates the embed code could easily be replaced with one which generates a short code for plots2, you know?

And to @nstjean --

Is there a reason for having two different location input forms?
Should we consolidate to just one or the other?

They should share a lot and look similar, for sure! But one is for the discrete activity of adding a location, while the other we wanted to appear more clearly as one step in the flow of crafting a post, so we didn't want it to be in a popup modal. Does this make sense? And the one in the editor also has additional features such as being able to fetch default zoom and lat/lon coordinates from the URL parameters, kind of like how @nfarve is working on here: #6858

I hope these help answer your questions! Please keep asking! Great day 1 😄 🎉

@nstjean
Copy link
Contributor

nstjean commented Dec 3, 2019

And to @nstjean --

Is there a reason for having two different location input forms?
Should we consolidate to just one or the other?

They should share a lot and look similar, for sure! But one is for the discrete activity of adding a location, while the other we wanted to appear more clearly as one step in the flow of crafting a post, so we didn't want it to be in a popup modal. Does this make sense? And the one in the editor also has additional features such as being able to fetch default zoom and lat/lon coordinates from the URL parameters, kind of like how @nfarve is working on here: #6858

That makes sense! I do think they need to look more similar, I'd love to style the popup modal version to look more like the inline version.

@jywarren
Copy link
Member Author

jywarren commented Dec 3, 2019 via email

@nstjean
Copy link
Contributor

nstjean commented Dec 3, 2019

Ok, I'll work on a mockup.

@nstjean
Copy link
Contributor

nstjean commented Dec 4, 2019

Another question while I'm thinking about it.

Our original proposals had a timeline with tasks scheduled for each week. This is good for accountability and mentors making sure we are on track. With two of us working on the same large project would you rather we assign the tasks now while we plan, so we know who is in charge of what? Or would you prefer us if we worked through the list together, doing whatever task is next on the list?

@SidharthBansal
Copy link
Member

SidharthBansal commented Dec 4, 2019 via email

@crisner
Copy link
Contributor

crisner commented Dec 4, 2019

@nstjean I have updated the list.

@crisner
Copy link
Contributor

crisner commented Dec 4, 2019

@jywarren I have updated the task list. The ones with the 💡 emoji are the new features I had mentioned. Would like your feedback on implementing them.

Would also like your feedback on the task below.

Zoom in on map based on user location using geolocation.(wonder if this is useful as maps are displayed based on location entered by the user in plots2.) ❔

@crisner
Copy link
Contributor

crisner commented Dec 4, 2019

Another question. There are some tasks on the list which do not have their own issues. Do we create an issue for them before we begin working on those tasks?

@crisner
Copy link
Contributor

crisner commented Dec 4, 2019

@nstjean and I have organized the tasks together. We will be dividing up tasks as we go.

@nstjean
Copy link
Contributor

nstjean commented Dec 4, 2019

Will we need to post a week-by-week timeline of the tasks, as in our original proposals?

@jywarren
Copy link
Member Author

jywarren commented Dec 5, 2019

Will we need to post a week-by-week timeline of the tasks, as in our original proposals?

Like, an updated timeline? do you think this would be useful for you both?

Zoom in on map based on user location using geolocation.(wonder if this is useful as maps are displayed based on location entered by the user in plots2.)

I think the idea here was just that if you've entered a location, we should also try to show it at an appropriate level of zoom, not just the whole world, centered on your location. When people put in locations, they often do so to a specific resolution/blur-level, because we use this kind of cool library we developed: https://github.com/publiclab/leaflet-blurred-location#how-it-works -- so, the precision of the lat/lon coordinates can be used to indicate a zoom level.

Another question. There are some tasks on the list which do not have their own issues. Do we create an issue for them before we begin working on those tasks?

Yes please! What typically works is to make a list-style "planning issue" at first with checkboxes, and to split out just a few into their own issues, which you'll tackle first. Then spin out more separate issues as you go. This helps to not create a flood of issues all at once at the beginning, and if plans change as we learn more, we don't have to close a bunch of issues, we can just adjust the plan and those issues we have created so far. Thanks, i hope this makes sense!

Our original proposals had a timeline with tasks scheduled for each week. This is good for accountability and mentors making sure we are on track. With two of us working on the same large project would you rather we assign the tasks now while we plan, so we know who is in charge of what? Or would you prefer us if we worked through the list together, doing whatever task is next on the list?

This is partly up to you, in terms of what you both prefer. We don't have a strong preference and we will be paying enough attention to be aware of how you both split up the work, so we're not too worried about accountability in that regard. If it were me, I'd split up the next couple weeks worth of work at a pretty high resolution, so you don't step on each others' toes, but just have a more general idea of division of labor further out. And just check in every week to be sure you have the next couple weeks planned out sufficiently.

We're a very cooperative community and while we appreciate independence, we are most interested in how community members support each other and rely on each others' complimentary and distinct skill sets. People have preferences on the kind of work you like to do, what you're good at, what you want to get better at, and what you enjoy offering support on (if you know a skill set very well). So, these factors may guide you in deciding who works on what parts.

If you find that you need some support in making these decisions, I and the other mentors are happy to chime in with advice or guidance. So just reach out!

Thanks, sorry this was a long response!

@jywarren
Copy link
Member Author

jywarren commented Jan 15, 2020 via email

@crisner
Copy link
Contributor

crisner commented Jan 16, 2020

Need feedback on PR #352 for issue #349.

@sagarpreet-chadha
Copy link
Contributor

Regarding popups not showing on markers:

If we change this line popup = new Popup(options).setContent(popup); to popup = new Popup(options).setContent(popup._content ? popup._content : popup); in leaflet repo line:

https://github.com/Leaflet/Leaflet/blob/d1a1e97b8290f642eb677284af53c2db64199a76/src/layer/Popup.js#L320

Everything works fine then!

One way to change this line is to use https://www.npmjs.com/package/patch-package , this changes that line in node modules folder after we do yarn install. The advantage is that we can still update leaflet version if there is any (we will kind of become static user of leaflet if we fork leaflet and do this change).

Good night guys!

@jywarren
Copy link
Member Author

oh goodness, i totally misunderstood, please forgive me @sagarpreet-chadha ! It's a Leaflet bug? I guess I'd prefer to fork Leaflet and fix it and point to our branch, but is it a known issue, that might be fixed by them soon? Or, is there any way for us to override this line in our code, after including Leaflet?

@crisner @nstjean what do you think? I guess we should not hold back the publication of PublicLab.org if we don't have a quick path to fix this yet. I'm opening an issue where we can discuss this a bit more, would love to hear from you. Thanks!

@nstjean
Copy link
Contributor

nstjean commented Jan 17, 2020

Can we create a pull request on Leaflet for the fix so it gets pushed through by them? I'm curious, did the popups used to work and now they don't? Or was this an ongoing issue?

@jywarren
Copy link
Member Author

jywarren commented Jan 17, 2020 via email

@crisner
Copy link
Contributor

crisner commented Jan 20, 2020

PR#353 for issue#347 is ready.

@nstjean
Copy link
Contributor

nstjean commented Jan 21, 2020

I'm so excited that yesterday I had success with the Jasmine tests! That was a long few days of repeated trial and failure.
publiclab/leaflet-blurred-location#235 is LBL's fix
publiclab/leaflet-blurred-location-display#93 is LBLD's fix - might not be needed
And today I'm going to look at LEL and the People layer test failures. I'm betting it's related.

@crisner
Copy link
Contributor

crisner commented Jan 21, 2020

Not yet ready but would like some feedback on PR#356 for issue#123. Thanks!

@nstjean
Copy link
Contributor

nstjean commented Jan 21, 2020

I added a fix for LEL publiclab/leaflet-environmental-layers#358 - might not be needed

@sagarpreet-chadha
Copy link
Contributor

Commented/reviewed above PR's :)

@nstjean
Copy link
Contributor

nstjean commented Jan 21, 2020

I also could use feedback here: publiclab/leaflet-blurred-location#233 (comment)

@crisner
Copy link
Contributor

crisner commented Jan 22, 2020

Requested changes made for PR#353 for issue#347 and is ready for review.

@crisner
Copy link
Contributor

crisner commented Jan 22, 2020

I would also like some inputs on PR#356

@nstjean
Copy link
Contributor

nstjean commented Jan 22, 2020

Question about the map page here: #6993 (comment)

Adding PLpeopleLayer to LEL: publiclab/leaflet-environmental-layers#361 [WIP]

publiclab/leaflet-blurred-location#235 ready for merge

@sagarpreet-chadha
Copy link
Contributor

sagarpreet-chadha commented Jan 23, 2020 via email

@crisner
Copy link
Contributor

crisner commented Jan 24, 2020

PR#356 for issue#123 ready for review. Thanks!

@nstjean
Copy link
Contributor

nstjean commented Jan 27, 2020

publiclab/leaflet-blurred-location#235 - ready for merge

publiclab/leaflet-environmental-layers#361 - ready for merge

#7358 - should be ready, travis failed and needs to be restarted

Would like feedback in LEL:
publiclab/leaflet-environmental-layers#364
publiclab/leaflet-environmental-layers#365

There appears to be an error happening on some wiki pages - looks like just ones with an inline map. It's preventing use of the "add a location" button. I'll be looking at it more in depth tomorrow: #7346

@crisner
Copy link
Contributor

crisner commented Jan 28, 2020

Feedback needed for PR #367

@jywarren
Copy link
Member Author

Thanks all! Looked through these!

@nstjean
Copy link
Contributor

nstjean commented Jan 28, 2020

publiclab/leaflet-blurred-location-display#95 - bumps LBL, ready for merge

@nstjean
Copy link
Contributor

nstjean commented Jan 28, 2020

publiclab/leaflet-environmental-layers#368 - bumps LBL and also bumps the version number for LEL so that the changes can get pushed down to plots2. Ready for merge.

@crisner
Copy link
Contributor

crisner commented Jan 30, 2020

The following PRs are ready to be reviewed and merged

@crisner
Copy link
Contributor

crisner commented Feb 2, 2020

PR#380 for issue#379 ready for review.

@nstjean
Copy link
Contributor

nstjean commented Feb 4, 2020

#7425 ready for review and merge

@jywarren
Copy link
Member Author

jywarren commented Mar 3, 2020

I'm going to close this up since the process has moved to #7432 !!! Thanks, all!

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

No branches or pull requests

7 participants