
SoC ideas
This is the ideas page for Public Lab's Google Summer of Code program.
Our main repositories can be found on our Github organization page, but a clearer listing with descriptions is on our main developers page
Important -- to learn how to contribute to Public Lab software, see our Contributing to Public Lab software page
Who to contact
Generally, with programming related topics, reach out on plots-dev - the Public Lab developers discussion list shown in the left sidebar.
For active Google Summer Code projects, use plots-gsoc - the GSoC discussion list.
For chatting and real-time meetings, use the Gitter chat room or type directly in here (if you have already authenticated on another page):
Contribution guidelines
Our Contributing to Public Lab Software page has our preferred guidelines for submitting changes. Please read it over!
We also love it when students show that they can work well with us by checking out some of our easier issues in PublicLab.org, Spectral Workbench, or MapKnitter, and even submitting a pull request. This gives us confidence that you've read our contribution guidelines and would be ready to jump into a project.
How to post a proposal
(for students)
Please first leave a comment on the post below, and tell us what you're interested in and a bit about your experience. It's also great to hear if you've forked one of our codebases) and installed it on your computer or a test server. Done with that? How about running tests? Tell us how far you've gotten, and ask us for help -- we're happy to help you get started!
Read the call for proposals, ask questions, and post your ideas:
Post a proposal here -- and view proposals posted so far
Ideas
Email notification overhaul
Part of: https://publiclab.org / https://github.com/publiclab/plots2
Description: Scheduling, per-user settings, batched tag-based updates, log, de-duplication -- see https://github.com/publiclab/plots2/milestone/6
List: plots-dev@googlegroups.com
Prerequisites: Ruby on Rails
Difficulty Level: medium
Potential mentors: Jeff Warren
ImageSequencer
Part of: https://github.com/publiclab/image-sequencer
Description: An experimental, non-destructive image processing/analysis system based on the mental model of a storyboard: each change to the image produces a new version of the image, rather than affecting the original.
List: plots-dev@googlegroups.com
Prerequisites: JavaScript, possibly Node.js
Difficulty Level: medium/hard
Potential mentors: Jeff Warren
Expanded Rich Wikis
Part of: https://publiclab.org / https://github.com/publiclab/plots2
Description: An expansion of the Rich Wikis project, this project would create more interactive and responsive interfaces for authoring documents, from form generators (open source Google Forms) to embedded maps and even spreadsheets or in-line file viewers. The Public Lab Wiki is the backbone of our co-created knowledge base, and it could be a lot more alive!
Learn more about our nascent "short codes" system here: https://publiclab.org/wiki/power-tags#Inline+tags
List: plots-dev@googlegroups.com
Prerequisites: Ruby on Rails
Difficulty Level: medium
Potential mentors: Jeff Warren, Liz Barry
Tagging interface
Part of: https://publiclab.org / https://github.com/publiclab/plots2
Description: Our new editor has a great new tagging interface, and we should standardize and extend that over all tag inputs across PublicLab.org. Additionally, with our power-tagging system, the increasing set of abilities and options for power tags means we ought to have a more intuitive menu for selecting power tags, so people don't have to type them in manually.
List: plots-dev@googlegroups.com
Prerequisites: Ruby on Rails, JavaScript, Bootstrap
Difficulty Level: easy
Potential mentors: Jeff Warren
Wiki discussion
Part of: https://publiclab.org / https://github.com/publiclab/plots2
Description: Commenting inside a wiki document, and/or making suggestions, is an important planned feature for making wiki pages more interactive and discussion-oriented. We have several rich wiki features coming together, and more Google Docs-type features on our pages would make contributing to Public Lab easier. This would probably involve inserting expandable forms between paragraphs (perhaps like our Prompts system) and displaying expandable comment icons alongside text, with full comment display as in a Google Doc.
List: plots-dev@googlegroups.com
Prerequisites: Ruby on Rails, JavaScript, Bootstrap
Difficulty Level: medium
Potential mentors: Jeff Warren
Map of projects
Part of: https://github.com/publiclab/plots2
Description: A browseable map of projects (wiki pages tagged with "project" tag) for people to find and learn about projects near them. We'd probably use Leaflet maps such as shown on https://publiclab.org/archive, and upon clicking on map marker, you'd see things like the title, lead image, # of contributors, and topics of interest. This would require both JavaScript work with Leaflet and Ruby on Rails work to generate the listings, as well as interface design work to develop the browse-able map interface.
List: plots-dev@googlegroups.com
Prerequisites: JavaScript, Ruby on Rails
Difficulty Level: medium
Potential mentors: Jeff Warren (@warren), Stevie Lewis (@stevie)
Tidy up photo monitoring plugin
Part of: https://publiclab.org/wiki/photo-monitoring-plugin
Description: The photo monitoring plugin is in need of some work. Two broad areas that could be addressed in order of priority are: 1) rewriting (refactoring) the code to make it compatible with the latest version of ImageJ/FIJI 2) adding new functionality like geotagging NDVI which has been developed (to some extent) but hasn't been incorporated into the public release
List: https://groups.google.com/forum/#!forum/plots-infrared
Prerequisites: Java, willingness to learn to write plugins for FIJI (https://fiji.sc/)
Difficulty Level: medium/hard
Potential mentors: Ned Horning
OAuth-based login for FB, Twitter
Part of: https://github.com/publiclab/plots2
Description: Very highly sought! Add OAuth user login so people can log in via Google account, Facebook, Twitter.
https://github.com/publiclab/plots2/issues/683
List: plots-dev@googlegroups.com
Prerequisites: JavaScript, Ruby on Rails
Difficulty Level: easy/medium
Potential mentors: Jeff Warren
Add a project idea
[prompt:paragraph:Copy template from below and insert new ideas here]
Project idea template:
### Project idea title **Part of:** https://github.com/publiclab/plots2 **Description:** (what the feature should do and WHY) **List:** plots-dev@googlegroups.com **Prerequisites:** JavaScript, Ruby on Rails? **Difficulty Level:** easy/medium/hard **Potential mentors:** Jeff Warren, ADD YOUR NAME HERE ****
Old ideas list
From past years:
Mapknitter Annotations
Part of: Mapknitter.org
Description: building on 2014 mapknitter annotations project to get it live and integrated into Mapknitter. Read more on the state of development..
List: plots-dev@googlegroups.com
Prerequisites:
Difficulty Level: hard
Potential mentors: Jeff Warren, Liz Barry
Distortable image ordering in MapKnitter
Part of: MapKnitter, Leaflet.DistortableImage
Description: This project is for a long requested feature on our most popular websoftware -- being able to choose which image shows up on top of your map! Tackling this would be a huge contribution to community cartography. Currently, images are automatically ordered by their geographic extent: bigger images end up on the bottom, little images on top, with no way for the mapmaker to manually reorder them. Longer story: Create simple methods for ordering images in Leaflet.DistortableImage, the heart of MapKnitter, and saving these asynchronously in MapKnitter. Modification of export system to accept an order
parameter.
List: plots-dev@googlegroups.com
Links:
- https://github.com/publiclab/mapknitter/issues/116
- https://github.com/publiclab/Leaflet.DistortableImage
- This could also integrate disabling images from export using: https://github.com/publiclab/mapknitter/issues/36
Prerequisites: Ruby on Rails, JavaScript/jQuery
Difficulty level: medium
Potential mentors: Jeff Warren
Queue-based MapKnitter export system
Part of: MapKnitter
Description: De-couple MapKnitter main app from GDAL-based export queue to enable better scaling of exports and fewer interruptions of primary MapKnitter.org service during large exports.
List: plots-dev@googlegroups.com
Links:
- https://github.com/publiclab/mapknitter/issues
- https://github.com/publiclab/mapknitter/blob/master/app/models/map.rb#L200
- https://github.com/publiclab/mapknitter/blob/master/app/models/warpable.rb#L152
- list of recent/current MapKnitter exports, which could be used to terminate "old" exports: https://mapknitter.org/exports
Prerequisites: Ruby on Rails, GDAL, asynchronous queue-based server architecture, Amazon S3
Difficulty level: medium
Potential mentors: Jeff Warren