Public Lab Wiki documentation



Summer of Code programs


« Back to Developers

Public Lab has received support for students to work on Public Lab software projects via Google's Summer of Code program -- 2019 is our sixth great year of open source coding with GSoC! In 2017 and 2018 we also joined the Rails Girls Summer of Code program, and in 2018 we participated in Outreachy.

This is a key way that we are able to develop our collaborative platform (this website) as well as other Public Lab coding projects.

We especially welcome contributions from people from groups underrepresented in free and open source software!

How to apply

Want to get involved? As a first step, we ask everyone to complete a “first-timers-only” issue, which you can find on our Welcome page at https://code.publiclab.org.

While it’s helpful to have some experience with the Git version tracking system, we have guides to help you go through this process, and will be there to help you get your code posted. Almost all of our code is in Ruby on Rails and JavaScript, so basic familiarity with these systems is a plus. We have a chatroom at https://publiclab.org/chat where you can get help pretty much any time.

Brainstorming project ideas

We kick off each season with a big brainstorm of ideas. You can find this year's discussion here:

https://publiclab.org/notes/warren/01-02-2019/brainstorming-for-summer-of-code-2019

Our Summer of Code Ideas Page will list the final brainstormed ideas that come out of this process.

Call for proposals

We'll then open up a call for proposals. You can see past years' call for proposals lists here; this year's will be very similar: https://publiclab.org/tag/call-for-proposals

The call for proposals will ask people to post their proposals using this template: https://publiclab.org/gsoc-application-template

We encourage people to leave comments, encouragement, tips, and questions on each others' proposals in a community fashion, and to be friendly and welcoming to one another!

How we work

Over recent years, we’ve steadily refined a workflow that helps new contributors get plugged into our community and code with a warm welcome, and aims to support building skills incrementally and cooperatively. We’re always looking for ways to improve, and welcome feedback!

Once you are comfortable with our workflow by completing a first-timers-only issue (see above) we’d like to ask that you compile your project steps into a planning issue, which you can learn about here. You can see examples here: https://github.com/publiclab/plots2/labels/planning

At this point, we recommend you begin going through the task list, creating a pull request like a mini-project for each task. Each one will ideally have tests, and we can help you develop these.

As you progress, we encourage contributors to grow as leaders by reviewing others’ pull requests, helping troubleshoot, and also taking small parts of your project to post as “first-timers-issues” for someone else. You can read more about these steps at https://publiclab.org/software-outreach and https://github.com/publiclab/plots2/labels/support.

Your code will be reviewed, supported and troubleshooted (troubleshot?) and potentially published to our live site as often as once a week, and you’ll be able to see it running and get feedback from people about it to inform your work.

Towards the end of your project, we’ll encourage you to take remaining pieces you’d like to see followed-up on in the future, and describe them with enough information for others to take up and complete. This could be in the form of “first-timers-only” issues, or “break-me-up” issues that list out steps that can be adapted into small stand-alone tasks.


Questions

Title Author Updated Likes
Software project ideas for upcoming 2018 Summer of Code fellowships? @warren about 1 year ago

Ask a question  or help answer future questions

Activities

Purpose Category Status Author Time Difficulty Replications
Create a welcoming "first-timers-only" issue to invite new software contributors - - @warren - - 0 replications: Try it »
Help Public Lab’s software grow by joining a supportive team - - @warren - - 0 replications: Try it »
Use Git and GitHub to contribute and improve Public Lab software - - @warren - - 0 replications: Try it »
Make the most basic github contribution - - @liz - - 0 replications: Try it »

Add an activity  or request an activity

Activities should include a materials list, costs and a step-by-step guide to construction with photos. Learn what makes a good activity here.


Mentoring

What does it mean to be a mentor?

Mentors check in with a student at least once per week roughly from May-August, and offer some project management guidance and encouragement... while relying on the plots-dev list and the @publiclab/reviewers group on GitHub to provide code-specific input, so that we share the burden of specific technical support.

This means that to be a mentor you don't necessarily need to know how to code -- we need mentors who know Public Lab's community and practices well, and who can encourage students to speak up when they get stuck, and to ask the community for input and testing of their work. Students often get stuck when they don't know how something should look, or how a feature might be used by the community -- contextual info!

If you're interested in being a mentor, email the developers list or jeff@publiclab.org -- and read over our software outreach resources to get an idea of how we work!

Some more resources on mentoring:


Communication

We do occasional chat or video sessions, and mentors rely on each other quite a bit, in the chatroom and on the plots-gsoc list.

Benefits

Our code contributor community is built on a commitment to mutual benefit -- we can’t create good software without welcoming in newcomers, and we are deeply invested in supporting contributors to learn new skills and grow as coders, designers, project leaders, and “cooperators”. Unlike many open source communities, much of our capacity is aimed at helping people become proficient coders, and to learn and apply principles such as code modularity, test-driven development, and more, as outlined at https://publiclab.org/software-outreach.

But we also seek to change coding culture by recognizing how important communication, mutual support, and affirmative and welcoming tone are. As part of this, we seek to improve ourselves and help contributors learn how to support one another, welcome in a diverse and inclusive community, and build a more positive and equitable society by doing things a little differently.


Past years


Updates

Title Author Updated Likes
Call for Summer of Code 2019 mentors! @warren 30 days ago
Updated Image Sequencer Colormaps! @MaggPi about 1 month ago
Brainstorming for Summer of Code 2019 @warren about 1 month ago
Call for Outreachy 2018-19 proposals! @warren 3 months ago
Outreachy proposal: Extend community collaboration statistics and visualization system @cess 3 months ago
Outreachy proposal: @faithngetich188 3 months ago
Outreachy proposal on expanded community stats system by Amy Chan @amychan331 3 months ago
Expanding Public Lab's community stats system @romrod 3 months ago
Outreachy proposal: Improve statistics system for publiclab @radhikadua 3 months ago
Outreachy proposal by narnt @thayshi 3 months ago
Outreachy proposal: Planning for expanded community stats system @kramadan 3 months ago
Outreachy proposal @quinn-codes-synthesis 4 months ago
Outreachy proposal on expanded community stats system by Amy Chan @amychan331 4 months ago
Brazilian Housewives Coding Team Presentation - RGSOC - 2018 @milaaraujo 4 months ago
Reply-by-email: a new way to use PublicLab.org @warren 4 months ago
Software Freedom Day in NIT Hamirpur @souravirus 5 months ago
SoC MeetUp at DTU @bansal_sidharth2996 5 months ago
GSOC-18 Email notification overhaul. @vidit 5 months ago
Web Working Group Update 23: August 2018 @warren 6 months ago
Congratulations on a great 2018 Summer of Code! @warren 6 months ago
Prototype: filter map tiles in real-time in a browser with ImageSequencer (NDVI Landsat) @warren 6 months ago
GSoC 2018: Final Work Product of Draft Feature and Email Integration Project @gauravano 6 months ago
GSOC Multi Party Auth System @bansal_sidharth2996 6 months ago
GSoC Submission for Leaflet Blurred Location Part 2 @mridulnagpal 6 months ago
GSoC Proposal: Draft Feature & Email Integration Project @gauravano 6 months ago
GSOC 2018 Work on Image Sequencer @tech4gt 6 months ago
Raspberry Pi camera (visible and NOIR) V2 / picamera effects demos @MaggPi 6 months ago
Announcing 10 Summer of Code projects for 2018 @warren 7 months ago
Leaflet Environmental Layer Library - Part 2 @sagarpreet 7 months ago
GSoC with Public Lab: First Evaluation @gauravano 8 months ago
GSOC: First Evaluation Google Authentication @bansal_sidharth2996 8 months ago
Web Working Group Update 22: June 2018 @warren 8 months ago
Call for Summer of Code 2018 proposals! @warren 8 months ago
Leaflet Environmental Layers Library @sagarpreet 8 months ago
USB Webcam vs Raspberry Pi V2 Field of View (FOV) comparison / Community microscope initial evaluation #2 @MaggPi 9 months ago
Community Microscope Initial Evaluation @MaggPi 9 months ago
Is there a way to use RGB spectral overlap to make better spectral measurements? @MaggPi 9 months ago
Raspberry PI NoIR close-up Imaging @MaggPi 9 months ago
All Summer of Code convening Live Call @liz 9 months ago
GSoC with Public Lab: Selection @gauravano 10 months ago
GSoC proposal: Computer Vision enhancements for Raspberry Pi based Public Lab Science Projects @MaggPi 10 months ago
Which Public Lab kit is best for testing the impact of different camera settings? @MaggPi 10 months ago
RGSoC: v2 API development @milaaraujo 10 months ago
Raspberry Pi Microscope/close up lens system @MaggPi 10 months ago
GSoC proposal: Social Media Integration and Leaflet-Layers Library . @sagarpreet 11 months ago
RGSoC proposal: Upgrade to Rails 5 @meghana-07 11 months ago
GSoC proposal: v2 API development @rishabh07 11 months ago
GSoC proposal: Calendar Events and Graphs Integration @500swapnil 11 months ago
GSoC Proposal: v2 API development and third party app integrations @sukhbir 11 months ago
GSoC proposal: Upgrade to Rails 5 @souravirus 11 months ago
GSoC proposal: Leaflet Blurred Location Part 2 @mridulnagpal 11 months ago
GSoC proposal: Email integration Project @namangupta 11 months ago
GSoc Proposal: OAuth & Upgrade to Bootstrap 4 @bansal_sidharth2996 11 months ago
GSoC proposal: Card UI/UX Implementation v2 & Bootstrap 4 Upgradation @amitsin6h 11 months ago
GSoC proposal: Image-Sequencer v2 : Processing on steroids @tech4gt 11 months ago
GSoC proposal: v2 API development | Grape | Swagger Specification @Raounak 11 months ago
RAILS GIRLS NAIROBI MEGA CODING EVENT @stella 11 months ago
RGSoC proposal: Entrepreneurial Network And Enhanced UX @SrishtyMittal 11 months ago
SoC proposal:RGSOC PROPOSAL: Upgrade to Rails 5.1.5 @stella 11 months ago
RGSoC proposal: Upgrade to Rails 5 @cess 11 months ago
RGSoC proposal: Rich Editor Extras @soniya2903 12 months ago
RGSoC proposal : Pollution tracker @evjam 12 months ago
SoC proposal: Pollution analysis on google maps @sid2111995 12 months ago
GSoC proposal: Email integration project @vishesh 12 months ago
Web Working Group Update 21: January 2018 @warren about 1 year ago
Software outreach: Modularity is great for collaboration @warren about 1 year ago
Software project ideas for upcoming 2018 Summer of Code fellowships? @warren about 1 year ago
Software outreach: a blog series @warren over 1 year ago
Help with a standard mini-evaluation for assessing software outreach efforts? @warren over 1 year ago
Introducing Image Sequencer: a pure JavaScript non-destructive image processing library for Node, browser and command line @ccpandhare over 1 year ago
Wrapping up Google Summer of Code 2017 at Public Lab @warren over 1 year ago
Web Working Group Update 20: August 2017 @warren over 1 year ago
GSOC 2017 FINAL REPORT; EMAIL NOTIFICATIONS OVERHAUL @stella over 1 year ago
Final posts for Google Summer of Code @liz over 1 year ago
GSoC Submission for Map of Projects @mridulnagpal over 1 year ago
GSoC 2017: Final Report on Wiki Discussion @Ashan over 1 year ago
GSoC 2017: Final Work Product of Image Sequencer Project @ccpandhare over 1 year ago
Getting to know plotsbot @ryzokuken over 1 year ago
Demo for leaflet-blurred-location @mridulnagpal over 1 year ago
Web Working Group Update 19: June 2017 @warren over 1 year ago
Introducing Question Button in Wiki Pages @Ashan over 1 year ago
Google Summer of Code 2017 - and a call for community mentors @warren almost 2 years ago
Email Notification Overhaul @stella almost 2 years ago
Email notification overhaul @bash almost 2 years ago
Image-sequencer - Graph Editor @calvrix almost 2 years ago
Graph Editor for the Image-sequencer @calvrix almost 2 years ago
Graph Editor for Image-sequencer @calvrix almost 2 years ago
OmniAuth and Wiki Discussion @vaibhavgeek almost 2 years ago
Omniauth and Gamification of contributing to Public Lab @vaibhavgeek almost 2 years ago
GSOC - Upgrade Plot to Rails 4 and Email Notification Overhaul @aayushgupta1 almost 2 years ago
Re-construction for ImageSequencer @yachao almost 2 years ago
Expanded Rich Wikis @bansal_sidharth2996 almost 2 years ago
Upgrading Plot to Rails 5 @aayushgupta1 almost 2 years ago
Android app for Image sequencer @ashwinvasudevan almost 2 years ago
Developing Image Sequencer as a Library @ccpandhare almost 2 years ago
Tagging Interface @mkashyap354 almost 2 years ago
Wiki Discussion @Ashan almost 2 years ago
GSoC Proposal - Email Notifications Overhaul @Khamba almost 2 years ago
Map of Projects @mridulnagpal almost 2 years ago
Call for Summer of Code 2017 proposals! @warren almost 2 years ago
Show more


4 sub-pages

Public Lab is open for anyone and will always be free. By signing up you'll join a diverse group of community researchers and tap into a lot of grassroots expertise.

Sign up