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)am 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. ###Contribution guidelines Our [Contributing to Public Lab Software](/wiki/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](https://github.com/publiclab/spectral-workbench/issues), [PublicLab.org](https://github.com/publiclab/plots2/issues), or [MapKnitter](https://github.com/publiclab/mapknitter/issues) -- so contact the plots-dev list (see above) if anything there interests you! ###Rich Profile Pages on PublicLab.org **Part of:** [PublicLab.org](/wiki/plots2) **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 **Potential mentors:** Bronwen Densmore (bronwen9 (at) gmail.com), Jeff Warren (jeff@publiclab.org), Liz Barry (liz@publiclab.org) **** ###Search and sorting **Part of:** [PublicLab.org](/wiki/plots2) **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 **Potential mentors:** 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 **Potential mentors:** 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@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 **Potential mentors:** Diana Leonardo (ddileona (at) tulane.edu), 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-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 **Potential mentors:** 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-dev@googlegroups.com **Links:** https://github.com/publiclab/spectral-workbench/issues/45 **Prerequisites:** JavaScript, Ruby on Rails, possibly d3.js **Difficulty level:** easy **Potential mentors:** 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@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 **Potential mentors:** Liz (or someone else)