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. Implement profile tagging for geographic data, role, tools, skills, and barnstars -- all highly requested features by the Public Lab community!
List: plots-dev@googlegroups.com
Links:
- powertagging your profile for location, topics, and gear: https://github.com/publiclab/plots2/issues/104
- barnstars: https://github.com/publiclab/plots2/issues/167
- barnstars custom graphics (extra fun): https://github.com/publiclab/plots2/issues/265
Prerequisites: Ruby on Rails
Difficulty level: hard
Mentor: Jeff Warren (jeff@publiclab.org), Liz Barry (liz@publiclab.org)
Search and sorting
Part of: PublicLab.org
Description: There's so much going on in Public Lab.org that it can be hard to follow. Choose to implement this project and create much-needed tools for people trying to organize the open science and technology knowledge base. These features will also be used by Public Lab's community managers to help people develop their projects and connect to others.
List: plots-dev@googlegroups.com
Links:
- add more types of sorting to /profiles (AKA /people) https://github.com/publiclab/plots2/issues/317
- implement tag sorting https://github.com/publiclab/plots2/issues/179 and tag optomization: https://github.com/publiclab/plots2/issues/99
- expand search to include profile content (for admin users): https://github.com/publiclab/plots2/issues/209, currently only accessible via datadumps: https://github.com/publiclab/plots2/issues/308
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
- Stub wiki page: https://publiclab.org/wiki/q-a
- more background: https://github.com/publiclab/plots2/issues/209
Prerequisites: Ruby on Rails, JavaScript/jQuery
Difficulty level: easy
Mentor: Liz (or someone else)