Summer of Code @ DIAL Open Source Center

Google Summer of Code

The Digital Impact Alliance (DIAL) at United Nations Foundation has launched its Open Source Center to provide a collaborative space for (and professional technical assistance to) open source projects focusing on international development and humanitarian response. The Center assists in the establishment of effective governance, software project management, and contribution models for member projects. It also provides technical, architectural, and programming support for projects; and assists those projects in support, engagement, management of their communities of contributors and implementers.

Google Summer of Code (GSoC) is a global program that offers post-secondary students an opportunity to be paid for contributing to an open source project over a three month period. The DIAL Open Source Center intends to serve as an “umbrella organization” to a variety of international development and humanitarian response related projects, to help raise awareness about those projects among student applicants, connect students to meaningful open source work that makes the world a better place, and help increase the maturity & reach of those projects.

The 2018 DIAL Open Source Center (OSC) GSoC coordinator is Michael Downey, the OSC’s Director of Community. (downey on Freenode IRC, downey (at) dial (dot) community, but please email gsoc (at) dial (dot) community if you are a mentor who wishes to contact an admin. Students should almost always visit Getting Started first, and then email gsoc (at) dial (dot) community only if you get stuck.

We have been accepted to participate in GSoC as an umbrella org for the 2018 season! If you haven’t already done so, check out our sub-orgs and affiliates listed below, and get in touch with them to learn more about their projects. Follow the documentation on this page, and the general GSoC web site, to learn more about developing your proposal together with the sub-orgs and mentors listed here.

See also:

2018 Project Ideas

CURRENT STATUS: Time to get in touch with sub-orgs & mentors! Our sub-orgs are actively developing their ideas lists, so this is the perfect time to get to know them and work on proposal ideas together! See the sub-org lists below for details. This section contains information about sub-orgs and their project ideas once they have gotten in touch with the OSC. If you’re unsure whether your favourite project will be participating, ask them and encourage them to sign up! If you represent a T4D or HFOSS sub-org and want to be added to the list, read Participating as a Sub-Organization, then contact gsoc (at) dial (dot) community to be added to this page and get assistance with customizing the Summer of Code Sub-Org Template for your specific projects.

Humanitarian Open Street Map Team (HOT)

Humanitarian Open Street Map Team (HOT)

The Humanitarian OpenStreetMap Team (HOT) applies the principles of open source and open data sharing for humanitarian response and economic development.

OpenLMIS

OpenLMIS

OpenLMIS is an open source, cloud-based, electronic logistics management information system (LMIS) purpose-built to manage health commodity supply chains. The OpenLMIS initiative incorporates a community-focused approach to develop open source and customizable LMIS systems specifically designed for low-resource settings.

The latest version of OpenLMIS, the version 3 series, uses a microservices architecture deployed with Docker. OpenLMIS is currently deployed in Benin, Côte d’Ivoire, Malawi, Mozambique, Tanzania, Zambia, and Zanzibar where it manages logistics processes in health commodity supply chains for over 10,000 health facilities.

SUMSarizer

SUMSarizer

SUMSarizer helps researchers measure impacts of improved cookstoves by using machine learning to turn raw data from stove use monitoring sensors (SUMS) into summaries of cooking events.

OSC Members Participating as Independent Projects

OSC participating projects are also taking part in GSoC as “standalone” organizations this year, after having participated during previous years. These open source projects are not operating under the OSC umbrella, but they also serve international development and humanitarian response. Please visit their project ideas pages too!

LibreHealth

LibreHealth

LibreHealth is collaborative community for free & open source software projects in Health IT.

Open Data Kit

Open Data Kit

Open Data Kit (ODK) is a free and open-source set of tools which help organizations author, field, and manage mobile data collection solutions.

Information for Students

GSoC is basically an open source apprenticeship: students will be paid by Google to work under the guidance of mentors from an open source community. It’s a really great opportunity to build new skills, make connections in your community, get experience working with a larger and often distributed team, learn, and, of course, get paid. If you’re new to GSoC and what it means to be a student, learn more in this short video:

Students are expected to work around 40 hours a week on their GSoC project. This is essentially a full-time job. Ideally, you should not attempt to do another internship, job, or full-time schooling while you’re doing GSoC.

Remember that Google intends this to be a way for new contributors to join the world of open source. The students most likely to be selected are those who are engaged with the community and hoping to continue their involvement for more than just a few months.

To apply, you need to take a look at the mentoring organizations and the ideas that they are willing to sponsor. See the “Ideas” section of this page for our sub-orgs and their project ideas. Typically, you’ll choose one of their ideas and work with a mentor to create a project proposal that’s good for both you and your chosen open source community. Sometimes, projects are open to new ideas from students, but if you propose something new make especially sure that you work with a mentor to make sure it’s a good fit for your community. Unsolicited, un-discussed ideas are less likely to get accepted.

Note that the DIAL Open Source Center (OSC) is an “umbrella organization” which means that our team is actually a group of projects that work together to do Google Summer of Code. If you’re going to apply with us, you’ll need to choose from one of those teams, because that defines which mentors will be helping you with your applications. Applications without any sub-org and mentor to evaluate them will be rejected. You can work with more than one sub-org while you’re figuring out what you want to do, but you can only accept one “job offer”. Here’s some resources so you can read up more on how to be an awesome student:

  • The GSoC student Guide – This is a guide written by mentors and former students. It covers many questions that most students ask us. Please read it before asking any questions on the mailing list or IRC if you can! New students in particular might want to read the section Am I Good Enough?
  • Google’s list of resources – Note especially the Frequently Asked Questions (FAQ) which does in fact answer 99% of the questions students ask.
  • Our OSC Summer of Code Frequently Asked Quetsions (FAQ) will answer the questions that we most often get about OSC projects. You might want to see “How do I choose a project or a sub-org?” or “How many slots does OSC get?”

Students: How to Apply

Communication is probably the most important part of the application process. Talk to the mentors and other developers, listen when they give you advice, and demonstrate that you’ve understood by incorporating their feedback into what you’re proposing. We reject a lot of students who haven’t listened to mentor feedback.

If you’re interested in how to prepare a strong proposal, take a look at these tips from past mentors:

Short application checklist:

  1. Read the links and instructions given on this page – All of it! we’ve tried to give you all the information you need to be an awesome student applicant.
  2. Choose a sub-org from our list. Applications not associated with a sub-org typically get rejected.
  3. Talk to your prospective mentors about what they expect of student applicants and get help from them to refine your project ideas. Listening to your mentors’ recommendations is very important at this stage!
  4. Prepare a patch or merge/pull request for that sub-org.
  5. Set up a blog where you will keep track of your GSoC progress.
  6. Write your application (with help from your mentors!) Make sure to include the sub-org name in the title so your mentors can find it in the system, and make it easy for your mentors to comment on your doc. e.g., Enable comments if you’re using Google Docs. See Summer of Code Student Template for the application template with notes and tips.
  7. Submit your application to Google before the deadline. We strongly recommend you submit a few days early in case you have internet problems or the system is down. Google does not extend this deadline, so it’s best to be prepared early! You can edit your application up until the system closes.

Important Program Dates

Next Deadline: To be announced after acceptance!

  • January 19: Sub-org requests due. See the sub-org section for details.
  • February 12: Google announces list of accepted mentoring organizations.
  • March 12-27: Students register & submit applications to organizations no later than March 27 at 09:00 PDT.
  • April 23: Student pojects announced; students & mentors start planning their projects and milestones.
  • May 24 - August 6: Students work on their Google Summer of Code projects.

Other dates and deadlines for 2018 will be added once we get accepted, so check back in February.

Please note Google’s official GSoC dates and deadlines. It is the final word when it comes to any deadlines.

In general, OSC will ask mentors to do things 48h before the Google deadline. This allows our admins time to make sure that evaluations, etc. are complete and ready for Google when their deadline comes. Student deadlines remain the same, although getting things done earlier is never a bad idea!

Participating as a Sub-Organization

First of all, make sure you understand what’s involved and the benefits of participating in Google Summer of Code. Watch this short video first, and drop us a line at gsoc (at) dial (dot) community if you have questions!

To participate under the DIAL Open Source Center (OSC) umbrella, a sub-organization must do the following:

  1. Be an open source project that is focused on international development, humanitarian response, or other such project that is aligned to focus on the DIAL Open Source Center challenge.
  2. Meets Google’s requirements for GSoC.
  3. Have one sub-org admin and at least two mentors who are willing to commit to the full GSoC period. (The admin can also be a mentor, but the more people, the better!)
  4. All sub-org admins and mentors agree to follow the OSC Code of Conduct for the duration of the program.
  5. Send an email indicating interest to gsoc (at) dial (dot) community, before the announced deadline. Exceptions can be made if you get an amazing student applicant later and want to sign up just for them.
  6. Have a good ideas page. See Summer of Code Sub-Org Template for an example. Getting a really great page sometimes takes a few rounds of revisions. We will work with you to make sure your page is ready! Once you’re ready for review, you can send request to be added to this page.
  7. Be able to handle meeting deadlines and following both Google and OSC’s rules. We try to send important reminders for big deadlines, but we only have limited volunteer time for nagging and cajoling. Groups that cause repeated problems may be asked to take time off to limit volunteer burnout.

We can’t promise to take everyone who meets those criteria, but we do try to take any eligible project/organization that we feel will give the students a great experience. The OSC Director of Community has final say in which projects participate under the OSC umbrella, but please send any queries to the team at gsoc (at) dial (dot) community to make sure we’re all on the same page.

T4D, HFOSS, and other international development focused projects are welcome and encouraged to apply as separate mentoring organizations directly with Google. We’re happy to help you in any way we can and we don’t mind being your backup plan. We’re also happy to help advertise related organizations not under our umbrella – we want students to find projects that best suit them!

Mentors Wanted!

Interested in volunteering with the DIAL Open Source Center or one of our participating projects?

The biggest job is mentoring students: Mentoring a student as a primary mentor can be a pretty big time commitment. We recommend around 0-10 hours a week on average for the 3 months of the program, with more time at the beginning and less once the student learns to work independently. It’s a very rewarding chance to give a student an open source apprenticeship. Mentorship happens in teams, so even if all you can handle is a few code reviews or taking over for a week while someone’s on vacation, our projects still love your help.

The easiest way to become a mentor is to be part of one of the sub-orgs that plan to be involved, so get in touch with them directly if you want to help. If you’re part of a group that would like to participate as a sub-org, please read the section for sub-orgs below.

Google produced a great video with advice on being a great mentor. Take a look:

But our projects also need other volunteers! We’re also looking for friendly community members to help with other tasks! We’d love to have more people available on IRC, mailing lists, and forums to answer student and mentor questions in various time zones. We are particularly looking for volunteers who can read and comment on student blogs, remind students if they haven’t posted, and promote the work our students do to the larger open source & international development community. Or maybe you have another skill set you’d like to contribute? (Proofreading? Recruiting diverse student applicants?) If you want to help, we’d be happy to find a way to make that happen!

If you’d like to volunteer, get in touch with a sub-org admin or email our GSoC team at admins at gsoc (at) dial (dot) community.

Frequently Asked Quetsions (FAQ)

Getting Started

How do I get started in open source?

Here are the top things you can do to get started in free and open source software:

  1. Choose an organization to work with.
    • There are thousands of open source software projects, and the list of projects focused on international development is also long. You need to narrow down the list before you can get help or do much that’s useful. See “How do I choose a project or sub-org?” for ideas on how to do that.
    • Any open source experience will help you prepare for GSoC, so don’t worry too much about what project you try first and don’t be afraid to change your mind!
    • For GSoC applications, you’ll need to choose from the list of accepted OSC sub-orgs, or Google’s master list of participating orgs. If your favorite group isn’t on the list, contact them to see if they’re interested in participating. Student applications not associated with a known sub-org are usually rejected because we don’t have mentors available.
  2. Set up your own development environment. This will vary depending on what project(s) you are interested in, but they should have documentation and help for you along the way.
    • Be sure to document what you do so you can remember it later, and so you can help others if they get stuck! And if you get stuck, don’t be afraid to ask for help.
  3. Start communicating with the developers. Join the mailing list, IRC channel, or any other communication channels the developers use. Listen, get to know the people involved, and ask questions.
    • In almost all cases, you should communicate in public rather than in private. GSoC is a busy time for many developers and many beginner questions get asked repeatedly. Help keep your devs less stressed out by reading what they’ve written already and making it easier for them to have a record of the things they’ve answered. You can use a pseudonym/nickname if you want. Also, search those archives to make sure you’re not asking something that’s just been asked by someone else!
    • If you want to make the best first impressions, DO NOT start with “Dear Sir.” and DO NOT ask to ask. See our Frequently Asked Quetsions (FAQ) for details.
  4. Find some beginner-friendly bugs and try to fix them. Many projects have these tagged as “easy” “bite-size” or “beginner-friendly” so try searching for those terms or looking at the tags to figure out which bugs might be good for you. Sub-org project ideas page will point you to them.
    • Note that if you apply as a student with the OSC you will be asked to submit a code sample – generally code related to your project. A few fixed bugs with code accepted upstream will make your application look great!
    • Remember, competition for easy bugs is very high during GSoC so it can be hard to find one that’s tagged. If you don’t see anything from your search, read through the bugs and choose a few that sound like something you can fix. Remember to ask for help if you get stuck for too long, “I’m a new contributor and was trying to work on bug #123456. I have a question about how to…” – if people can’t help, sometimes they will be able to suggest another bug which would be more beginner-suitable.
    • Other “easy” bug ideas: find typos and fix them. Set up new tests – even if the project doesn’t need the first one you write, practice writing test cases is useful for later. Talk to your org’s community to find out more about what they’re doing with testing.
  5. Find bugs and report them.
    • Hopefully you won’t encounter too many, but it’s always a good idea to get familiar with your project’s bug reporting process.
  6. Help with documentation. As a beginner in your project, you’re going to see things that are confusing that more experienced developers may not notice.
    • Take advantage of your beginner mindset and make sure to document anything you think is missing!
  7. Help others. This is a great idea for a lot of reasons:
    • Explaining things can help you learn them better.
    • Demonstrating your skills as a good community member can make you more memorable when your mentors have to choose candidates.
    • Being helpful makes your community a better place!

How do I choose a project or sub-org?

Choosing a project is a pretty personal choice. You should choose something you want to work on, and none of us can tell you exactly what that would be! But here’s a few questions you might want to ask yourself to help figure that out:

  • How do you want to change the world? Do you want to help people learn more? Communicate better? Understand our world better? With the DIAL Open Source Center, all of our projects are designed to help improve communities and peoples’ lives, so you’ll have choices!
  • What would you like to learn? GSoC is meant to be a bit of a learning opportunity. Have you always wanted to be more involved with health? Data? Visualization? Education? See which projects might help you improve your skills.
  • Who do you like working with? Hang out where the developers do and get to know some of your potential mentors. Which developers inspire you?
  • How do you like to communicate? Do you like realtime chat communication? Perhaps you should choose a project with mentors in a time zone close to you. Do you like asynchronous communication on mailing lists or forums? Find a group with active discussions. Communication is a big part of Summer of Code (and really any open source development in a team!) so finding a team that works the way you want to work can make your experience more awesome.

A list of sub-orgs for this year will be published on this site.

If you’re chosen as a GSoC student, you’re going to be expected to make some decisions on your own, so you can make a better first impression on mentors by showing that you’re able to narrow down your field of choices!

What do I need to know to participate in Summer of Code with OSC?

The answer to this depends a lot on the project you choose. We have a range of projects, from beginner to advanced. Every sub orgs expects different things from their students. Maybe you’ll need to know a bit about machine learning, or email, or image processing. The best answer to this question is, “always ask your mentors what you will need to know” for a specific project.

But a lot of people ask early on because they want to be sort of generically ready, but they’re not sure what they want to do yet. So the above answer is not always super helpful.

In that case, here’s a list of a few things that are useful for most OSC projects:

  • You must have some experience with software development. You can be a beginner, but practicing in advance is good! And there are a lot more projects available for students who are reasonably used to a project’s specific language, so more practice means you’ll have more project options.
  • You need to feel comfortable asking questions, because we’re going to expect you to ask if you don’t understand something.
  • You should be comfortable communicating your ideas to others in public. Most projects have public mailing lists or forums, and would prefer if you use them. OSC students will also be asked to blog about their work over the summer. You can use a pseudonym (nickname) if that works best for you. Google will need to know who you are to pay you, but we just need something to call you.
  • You probably want some experience with version control. We have a lot of projects that use different tools, such as Git, Mercurial, or Subversion, and you can find out which one your project uses in advance and practice using it on your schoolwork or personal projects to get used to it.

Communication

What does “don’t ask to ask” mean?

You’ll hear this phrase sometimes on IRC or other chat systems, and it means, “Please just ask your question, don’t say something like ‘can I ask a question?’ first.”

Why? Developers are often pretty busy, and if you just ask the question, someone can jump in the minute they see your message with the answer or direct you to folk who can answer it better.

If you ask “can I ask a question?” you’re basically just waiting for someone to say “yes” before any useful information is communicated. Many folk consider this slow, annoying, and perhaps even rude. Save everyone (including yourself!) some time and just ask the question right from the start. Culturally speaking, in open source projects it’s generally ok launch right in to a question on IRC; you don’t even have to say hi first!

What should I do if no one answers my question?

  • Be patient. If you’re on IRC or another chat tool, stick around for an hour or so (you can do something else, just leave the window open and check back occasionally) and see if someone gets back to you. If they don’t, try posting to the forum or mailing list. (It’s possible all the developers are asleep!) You should give people around 24-48h to answer before worrying too much about it.
  • Make sure you’re asking in the best place. One common mistake students make is to contact individual developers rather than asking on a public mailing list or a public IRC/chat channel. You want as many people as possible to see your questions, so try not to be shy! (Don’t worry about looking too much like a newbie – all of us were new once!) Sometimes projects have different lists/IRC channels/forums/bug queues for different types of questions. If you’re not sure, do feel free to follow up your question with something like, “Hey, I haven’t gotten an answer on this. Is there somewhere better I could post it or more information you need to help?”
  • Try giving more information. If you’ve hit a bug, try to give the error message and information about your setup and information about what you’ve already tried. If you’re trying to find a bit of documentation, indicate where you’ve already looked. And again, “Hey, I haven’t got an answer; what other information could I provide to help debug this problem?” is usually a reasonable follow-up if you’re not sure what people might need.
  • If you’re really having trouble getting in touch with your mentors, talk to the OSC GSoC team emailing gsoc (at) dial (dot) community. The GSoC org admins should have contact info for mentors with each project and can help connect you. (Note: Please don’t complain that you can’t get in touch with us on the general Google lists or the global #gsoc IRC channel. They’re just going to redirect you to the OSC org admins anyhow!)

How should I address my emails?

(Or, “Why shouldn’t I start my emails with ‘Dear Sir’?”)

If you want to make the best first impression, do not start emails with “Dear Sir.” OSC has many mentors who are female and/or prefer other forms of address. We realize you’re trying to be polite, but “Dear Sir” is often perceived in our communities as alienating, rude or simply too formal and off-putting.

Try “Dear developers” or “Dear mentors” if you’re sending a general email. If you’re addressing a specific person, use the name or nickname that they use on their emails. Culturally speaking, first names or chosen nicknames are fine for most open source projects.

Mentoring

What does it take to be a mentor?

  • We expect around a 0-10hr/week commitment, which sounds scary, but it’s not actually that variable. You usually spend up to lots of time for the first few weeks, where you’re fleshing out your ideas page, discussing projects with many students, and selecting students from their proposals. After students are selected, it becomes more like a 1hr commitment per week for a weekly meeting, and maybe a few more hours here and there for code review or questions. (That depends on your student: experienced students may need very little supervision, inexperienced students may need more. It also depends on you: You and your co-mentor(s) select the student and project you mentor, so you can choose according to the time commitment you have. Some mentors even do pair programming with their students!)
  • We want at least two mentors per project, so hopefully no one ever gets overwhelmed and feels like they’re always on call. Google does ask that we try to answer questions within 48h so students can’t get stuck for too long. Remember, no one mentor has to know all the answers.
  • We recommend at least one mentor has a weekly 1hr meeting with the student so they get to know each other, keep everyone on track, and give a chance to talk about other stuff. Lots of students have questions about jobs, courses, architecture, open source, etc. and it’s nice to have someone to talk to). Some weeks this meeting may be the only mentoring time needed.
  • Mentors don’t have to be the “Best At Everything”. A lot of what mentors do is keep students on track and keep them from getting stuck for too long. Sometimes that means just knowing who to ask or where to look rather than knowing the answer yourself. In an ideal world, at least one mentor can answer at least basic architectural questions and knows how to get code accepted upstream, though.
  • Mentors do have to do multiple evaluations on the student, two mid-terms and one at the end. (only one evaluation per student per period, though, so only one mentor needs to do this). There’s a few questions about how the student is doing and then a pass/fail that determines if the student gets paid and continues in the program.

Other

How many slots does OSC get? How many slots does project X get?

We don’t know our slot allocation until Google announces them, and Google bases their numbers on the number of students we tell them we want. The more great applications we have, the more slots we’ll request. So rather than worrying about the number of slots, you should be aiming to be such a memorable and great prospective student that your sub-org will definitely request a slot with you in mind.

For sub-orgs, new groups working with us usually get 1-2 slots, experienced sub-orgs may be granted as many as they can comfortably mentor at the discretion of the org admins. The maximum number will likely be close to the total number of mentors divided by two, but the actual number requested depends on which students the org specifically wants to accept after they’ve done an initial review of the applications.

We anticipate being more limited by the matching of mentors with truly excellent students.

Getting in Touch

  • Please note that the OSC has a Community Code of Conduct and mentors and students working with the OSC are asked to abide by it as members of the community.
  • Sign up to our forum at https://forum.osc.dial.community/ list to get updates, reminders, and to discuss questions.
  • https://dial.zulipchat.com is our real-time chat service. Zulip is an open source project similar to IRC or Slack. Please visit the “#OSC Summer of Code” channel with questions or ideas!
  • Found a typo? Want to improve this page? Use the “Edit on GitLab” link above and submit a merge request!
  • To get in touch with people from a specific sub-org, check their ideas page listing.

Please try to read all the information on this page before asking a question. We have tried to answer a lot of common questions in advance!

Remember to be patient: Our mentors generally have day-jobs and are not always paying attention to chat, mailing lists, or forums. (This is especially true during GSoC off-season. Expect more active mentors after Google’s announcement of organizations.) Please ask questions directly on channel (you don’t need to introduce yourself or say hi first) and please be patient while waiting for an answer. You could wind up waiting an hour or much longer for “real-time” answers if all the mentors are in meetings at work or otherwise occupied. If you can’t stay that long, stay as long as you can and then send email to the mailing list instead so mentors have some way to reach you. We try to answer emails within 48h.

For mentors: The OSC GSoC team can be reached at gsoc (at) dial (dot) community if you or students have questions about participating.

Acknowledgements

This work was adapted from “Google Summer of Code 2018 @ the Python Software Foundation” by Python Software Foundation, used under the Creative Commons 4.0 International Attribution License (CC BY 4.0). Our umbrella org strategy has also been adapted from the time-tested policies, processes, and content from this excellent team. They have also provided mentorship and advice to our umbrella program. Thank you!