This is the ideas page for [Public Lab's Google Summer of Code program](/wiki/gsoc). Our main repositories can be found [on our Github organization page](https://github.com/publiclab), but a clearer listing with descriptions is [on our main developers page](/wiki/developers) **Important** -- to learn how to contribute to Public Lab software, see our [Contributing to Public Lab software page](/wiki/contributing-to-public-lab-software) ###Who to contact Generally, with programming related topics, reach out on **[plots-dev](https://groups.google.com/group/plots-dev)** - the Public Lab developers discussion list shown in the left sidebar. For active Google Summer Code projects, use **[plots-gsoc](https://groups.google.com/group/plots-gsoc)** - the GSoC discussion list. For chatting and real-time meetings, use the [Gitter chat room](https://gitter.im/ananyo2012/plots-gsoc) or type directly in here (if you have already authenticated on another page): **** ###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! 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](https://github.com/publiclab/plots2/issues?q=is%3Aopen+is%3Aissue+label%3Aeasy), [Spectral Workbench](https://github.com/publiclab/spectral-workbench/issues?q=is%3Aopen+is%3Aissue+label%3Aeasy), or [MapKnitter](https://github.com/publiclab/mapknitter/issues?q=is%3Aopen+is%3Aissue+label%3Aeasy), 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 contact the above **plots-dev** list, 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](/wiki/developers)) and installed it [on a test server](/wiki/developers#Simple+installation+with+Cloud9). Done with that? How about running tests? Tell us how far you've gotten! Once your idea is more developed, please post a research note describing your proposal in detail. Tag it `gsoc` and `gsoc-201[X]`. Here is the [template](/wiki/gsoc-application-template) we used last year. This To Be Updated for 2017: [Post a proposal here](/notes/warren/03-10-2016/google-summer-of-code-2016-draft-proposals) -- and view proposals posted so far **** ## Ideas ### Map of projects ### Email notification overhaul * Scheduling, per-user settings, batched tag-based updates, log, de-duplication ### ImageSequencer ### **** ## Old ideas list Here are other project ideas we're 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! ###Mapknitter Annotations **Part of:** [Mapknitter.org](http://mapknitter.org) **Description:** building on [2014 mapknitter annotations](https://publiclab.org/notes/justinmanley/03-18-2014/mapknitter-annotations-using-fabric-js-gsoc-2014-proposal) project to get it live and integrated into Mapknitter. Read more on the [state of development.](https://publiclab.org/tag/annotations). **List:** plots-dev@googlegroups.com **Prerequisites:** **Difficulty Level:** hard **Potential mentors:** Jeff Warren, Liz Barry **** ###Distortable image ordering in MapKnitter **Part of:** [MapKnitter](/wiki/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:** Diana Di Leonardo, Jeff Warren **** ###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 * 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, Bryan Bonvallet, Dan Henry **** ###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