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 2015 GSOC page](/wiki/gsoc-2015) * [our 2014 GSOC page](/wiki/gsoc-2014) * [our 2013 GSOC page](/wiki/gsoc-2013) and [2013 mentor & student proposals](/wiki/gsoc-2013-mentors-and-student-proposals) 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](https://groups.google.com/group/plots-dev)** - the Public Lab developers discussion list. This is the list for programming related topics. **Please use this list!** * **[plots-gsoc](https://groups.google.com/group/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](/post) describing your proposal in detail. Tag it "gsoc". Here is the [template](http://publiclab.org/wiki/gsoc-application-template) we used last year. **** ##Ideas list ###Rich Profile Pages on PublicLab.org **Part of:** [PublicLab.org](/wiki/plots2) **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 **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](/wiki/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, grassrootsmapping **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](/wiki/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-spectrometry **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](/wiki/spectral-workbench) **Description:** Enable comments on specific wavelengths which highlight those wavelengths in the displayed spectrum graph. **List:** plots-spectrometry **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](/wiki/plots2) **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 **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)