This is a testing site only. See the live Public Lab site here »

Public Lab Wiki documentation

Summer of Code programs

This is a revision from March 07, 2019 22:50. View all revisions
3 | 41 | | #7963

« 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

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 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:

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

Call for proposals

Our 2019 call for proposals is open! Read here:

You can see past years' call for proposals lists here:

The call for proposals asks people to post their proposals using this 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:

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 and

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.


Ask a question  or help answer future questions on this topic


Add an activity  or request an activity guide you don't see listed

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


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 -- and read over our software outreach resources to get an idea of how we work!

Some more resources on mentoring:


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.


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

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


Title Author Updated Likes Comments
Spam management Dashboard @ GSoC week-3 @keshav_sethi0004 over 1 year ago 0
Week 3 @ GSOC 2020: Mapknitter Export Module and Spectral Workbench upgrades @alaxallves over 1 year ago 0
Outreachy proposal: Fortify Public Lab Text Editor and Introduce More Custom Inserts @asoamarachi over 1 year ago 8
GSoC 2020 proposal: Site Wide Accessiblity on @suyash1814 over 1 year ago 31
GSoD : System diagram and Roadmap for Plots2 @bansal_sidharth2996 over 1 year ago 3
GSoc Proposal: OAuth & Upgrade to Bootstrap 4 @bansal_sidharth2996 over 1 year ago 41
Outreachy Proposal: Optimize Performance and Accessibility of Public Lab Content. @itm2017004 over 1 year ago 15
Outreachy proposal: Optimize Performance and Accessibility of Public Lab Content. @uwaobayagbona over 1 year ago 1
Outreachy proposal: Optimize Performance and Accessibility of Public Lab Content. @medlinechinonye over 1 year ago 0
GSoC 2020 Proposal – Implementation of better printability of posts and wiki pages @susannadiv over 1 year ago 9
GSoC 2020 proposal: Spectral Workbench - Rails and DevOps upgrades @ruturaj_mohite over 1 year ago 6
Outreachy proposal: Optimize perofrmance and accessibility of Public Lab content @opetunde_adepoju over 1 year ago 0
SoC proposal: @nitin_tech over 1 year ago 4
SoC proposal: Expanding Community Toolbox @icode365 over 1 year ago 7
Call for 2020 GSoC proposals @cess over 1 year ago 4
GSOC Multi Party Auth System @bansal_sidharth2996 over 1 year ago 0
Career goals after Outreachy @christie_reni over 1 year ago 7
Draft of a Public Lab Software Roadmap: Comments welcome! @warren almost 2 years ago 13
Outreachy proposal: @Reenesa almost 2 years ago 2
Outreachy proposal: Refine Geographic UI and JS Integration for @christie_reni almost 2 years ago 16
Outreachy proposal: Refine Geographic UI and JS Integration for @natalie_stjean almost 2 years ago 7
Congratulations to our 2019 Outreachy and Google Summer of Code team! @warren about 2 years ago 2
Outreachy Final Blog : An awesome Journey @lekhidugtal about 2 years ago 7
Google Summer of Code 2019 - Final Work Product - Isha Gupta @IshaGupta18 about 2 years ago 18
Show more