GSoC ideas
This is the ideas page for Public Lab's Google Summer of Code program. Many are slightly out of date or have already been built! Please go ahead and edit these if you see things that need changing, as well as add your new ideas.
For a quick flashback, see
Our main repositories can be found here: https://github.com/publiclab
Important -- to learn how to contribute to Public Lab software, see: http://publiclab.org/wiki/contributing-to-public-lab-software
Who to contact with ideas/proposals
- plots-dev - the Public Lab developers discussion list. This is the list for programming related topics. Please use this list!
- plots-gsoc - the GSoC discussion list, more for GSOC logistics.
Either of these lists is fine; feel free to CC both.
How to post a proposal
Please first contact the above lists (even both!). Once your idea is more developed, please post a research note describing your proposal in detail. Tag it "gsoc". Here is the template we used last year.
Contribution guidelines
Our Contributing to Public Lab Software page has our preferred guidelines for submitting changes. Please read it over!
Ideas list
Here are the project ideas we're most interested in; however, we are also interested in any major feature request listed in our top project repository issue trackers, at Spectral Workbench, PublicLab.org, or MapKnitter -- so contact the plots-dev list (see above) if anything there interests you!
Rich Profile Pages on PublicLab.org
Part of: PublicLab.org
Description: A major build-out of profile pages on PublicLab.org, with tagging, geographic data, barnstars and research history browsing, sorting on /people, and lots of other features relevant to Community Development in Public Lab
List: plots-dev@googlegroups.com
Links:
- https://github.com/publiclab/plots2/issues/104
- https://github.com/publiclab/plots2/issues/308
- search to include profile content for admins: https://github.com/publiclab/plots2/issues/209
- https://github.com/publiclab/plots2/issues/317
- https://github.com/publiclab/plots2/issues/215
- barnstars: https://github.com/publiclab/plots2/issues/167
- barnstars custom graphics: https://github.com/publiclab/plots2/issues/265
- can we also add in tag sorting here? https://github.com/publiclab/plots2/issues/179 and tag optomization: https://github.com/publiclab/plots2/issues/99
Prerequisites: Ruby on Rails
Difficulty level: hard
Mentor: Jeff Warren (jeff@publiclab.org), Liz Barry (liz@publiclab.org)
Browser-based Arduino sensor data transfer using WebRTC and headphone jack
Description: A way to read data off of sensors from a website, using only an audio cable, building on modem.js and SoftModem (see links). Dramatically eases connecting to a sensor using a laptop or smartphone directly from a web page, no software installation necessary.
List: plots-dev@googlegroups.com
Links:
- https://github.com/dolske/modem.js
- https://github.com/arms22/SoftModem
- discussion: https://groups.google.com/forum/#!searchin/plots-airquality/audio/plots-airquality/3b3Y2vrMsoI/xebM6kNBEgAJ
Prerequisites: JavaScript, Arduino
Difficulty level: medium/hard
Mentor: Jeff Warren (jeff@publiclab.org)
Distortable image ordering in MapKnitter
Part of: MapKnitter, Leaflet.DistortableImage
Description: 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. This could also integrate disabling images from export using: https://github.com/publiclab/mapknitter/issues/36
List: plots-dev@googlegroups.com
Links:
- https://github.com/publiclab/mapknitter/issues/116
- https://github.com/publiclab/Leaflet.DistortableImage
Prerequisites: Ruby on Rails, JavaScript/jQuery
Difficulty level: medium
Mentor: Jeff Warren (jeff@publiclab.org)
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
Prerequisites: Ruby on Rails, GDAL, asynchronous queue-based server architecture, Amazon S3
Difficulty level: medium
Mentor: Jeff Warren (jeff@publiclab.org)
Commenting on specific wavelengths in Spectral Workbench
Part of: Spectral Workbench
Description: Enable comments on specific wavelengths which highlight those wavelengths in the displayed spectrum graph.
List: plots-dev@googlegroups.com
Links: https://github.com/publiclab/spectral-workbench/issues/45
Prerequisites: JavaScript, Ruby on Rails, possibly d3.js
Difficulty level: easy
Mentor: Jeff Warren (jeff@publiclab.org)
Expanded Q&A system for PublicLab.org
Part of: PulblicLab.org
Description: This is a critical step for moving from a separated email and website structure towards clearly answered questions prominently featured as the knowledge base of Public Lab. This project features a posting form, styling for presentation, "answering" feature, more outreach display for recruiting, integration with Rich Profiles to feature "helpful" people, displays of "common questions".
List: plots-dev@googlegroups.com
Links:
- Closest: https://github.com/publiclab/plots2/issues/162
- more background on the anticipated future transition away from googlegroups and towards a forum similar to "Stack Overflow": https://github.com/publiclab/plots2/issues/209
Prerequisites: Ruby on Rails, JavaScript/jQuery
Difficulty level: easy
Mentor: Liz (or someone else)