Summer Of Code 2015

Write Code. Save Lives.

OpenMRS is participating as a mentoring organization for Google Summer of Code™ in 2015. We've enjoyed participating in this great program in the last 8 years and are extremely excited about the projects and mentorship opportunities available this year. Coding for OpenMRS is a great way to practice your coding skills and, at the same time, help benefit people in developing countries who are on the front lines of the battle against HIV/AIDS, TB, Malaria, and other public health challenges. For a more detailed history of who were are and what we do, please see here.

On this page ....

Current Status

Congratulations GSoC 2015 students! See below for information about our successful projects.

Program Timeline

We will follow the official Google timeline for the program. Please refer to it for all official dates. In summary:

  • 2 March: List of accepted mentoring organizations published on the Google Summer of Code 2015 site
  • 16-27 March: Student application period
  • 27 April: Accepted student proposals announced on the Google Summer of Code 2015 site
  • 27 April to 24 May: Students get to know mentors, read documentation, get up to speed to begin working on their projects
  • 25 May: Students begin coding for their Google Summer of Code projects
  • 26 June - 3 July: Mentors and students submit mid-term evaluations
  • 17 August: "Pencils down" date
  • 31 August: Final results of Google Summer of Code 2015 announced


Google Summer of Code at OpenMRS

Watch this short video to learn more! 


Students, Projects, & Mentors

10 Steps for Accepted Students

Please read the acceptance e-mail for specific tasks accepted students should do right away. Generally, after accepted interns are announced, here's what should happen:

  1. Sign in to your email account. Details are in your acceptance email.
  2. Introduce yourself on the GSoC 2015 student introduction page on OpenMRS Talk.
  3. Set up a blog for your work on open source projects, including GSoC. Post the URL on OpenMRS Talk. If you don't have a blog yet, you should create one. You will be required to write a blog post every week about your planning work and project progress during GSoC.
  4. Contact your mentor immediately. Make a plan to communicate with them regularly - at minimum, once each week. Determine the best way to communicate (e-mail, IRC, IM, VoIP, telephone, etc.).  Agree on final requirements with your mentor, and post a formal written proposal including project schedule (timeline) on which you both agree.
  5. Begin attending the weekly Developers Forum to briefly introduce yourself and meet other interns & contributors. Attend as many Developers Forums as your schedule permits.
  6. Spend lots of time in our IRC channel and on OpenMRS Talk with other community members & interns.
  7. If relevant, make sure you have OpenMRS installed and running. (You should have done this already since you were accepted.) Read Developer GuideGetting Started as a Developer, and ask others in the community if you have questions. If you ask questions the smart way, you'll get better responses.
  8. Make sure your development environment is installed and running, and optimized for maximum efficiency. Review our Conventions page.
  9. Review any JIRA issues related to your project and work on some initial bugs or feature development, or work on some general OpenMRS bugs. Ask your mentor for guidance. (This doesn't mean begin your project!)
  10. Browse the current OpenMRS code specific to your project and review the requirements for your project together with your mentor.

Expectations of Students & Mentors

What we expect of students:

  • Become familiar with OpenMRS and your project before the start date.
  • Complete a short required "progress report" each week so we can make sure things are on track and there are no problems with your project.
  • Write at least one blog post every week to help stay on schedule and to share your work publicly.
  • Commit early. Commit often. This is an important value in our open source community - read why.
  • Prepare a mid-term project presentation video about your project's status, progress, and any questions you have for the community.
  • You are now part of our developer community. We want you to feel like part of the team, so we hope you will:

What students should expect of OpenMRS during the summer:

  • You will have fun!
  • You will learn how to work within an open source project – one that's helping people save lives around the world.
  • You will have dedicated time (4-5 hours each week) with an experienced OpenMRS mentor, and will have a backup mentor for questions or problems.
  • If you ask a question the smart way, our community will do its best to help you.
  • The Summer of Code program leaders (both at OpenMRS and Google) will be available if any problems arise between students and mentors.

What we expect of mentors:

  • Help your student be successful. Commit to spending a minimum of 4-5 hours each week with your student answering questions, giving advice, working together, and evaluating his or her progress.
  • Complete a short "progress report" each week to help stay on schedule and catch potential problems early.
  • Read the GSoC Mentoring Manual and ask questions if you have them.
  • Reach out to the Summer of Code project leaders if you have questions or concerns.
  • Have fun and work hard! The highest-performing mentors will get an expenses-paid trip to Google's headquarters in October to geek out with fellow mentors from other open source projects.

Helpful OpenMRS Community Resources

  • Join OpenMRS Talk and sign in regularly to keep track of activities in the OpenMRS Community.
  • If possible, join the Developers Forum (Inactive) every Thursday. You can participate by telephone, VoIP, or even just on IRC.
  • We use JIRA as a tool for issue tracking and project management.
  • Tips for using e-mail:
    • If you have a highly specific question, contact your mentor.
    • Technical discussions, ideas, and requests for feedback should be sent to the entire community on the developers mailing list.
  • IRC discussions in the #OpenMRS channel of Freenode are always fun! Useful for shorter discussions or for large group discussions.
  • Use the OpenMRS wiki often:
    • Be sure to make a user profile page.
    • Every project should have a OpenMRS wiki page where you document your project, progress, technical details, show mock ups, etc.
  • Google Docs — an excellent tool for sharing and collaborating in real time on documents or spreadsheets, when the wiki is not appropriate.
  • Scheduling tools:
    • — to clarify/coordinate times around the world
    • Doodle — to coordinate meeting times for larger groups

Our Technology At-A-Glance

The OpenMRS project is architecture is quite extensive, and incorporates a number of different components, programming languages and frameworks. As an GSoC student, you may be required to work on one or many of these components. Each project is different – consult the mentor and project documentation for details. The OpenMRS Developers Guide covers some of our software's technical architecture in more detail.

Some of the core skills you might be able to use in our projects this year include:

  • Java
  • The Spring Framework
  • The Hibernate Framework
  • JavaScript
  • JQuery
  • Node.js
  • More to come ....

9 Steps Toward Becoming a Successful Applicant

We're happy you were interested in working with OpenMRS during Summer of Code 2015. Here are some tips that we prepared to help your application process be easier and more successful. These are all things you should have begun early to start getting involved.


Get started as a developer in our community right away. The sooner you do this, the more familiar we'll be with your name and with your work. (smile)

Specifically, the 9 steps to do:

  1. First, read the GSoC Student Guide to get familiar with Google Summer of Code.
  2. Create an OpenMRS ID and a personal space on your wiki and tell us about yourself. Here's a great personal wiki page from a MediaWiki student you might want to use as a guide.
  3. Sign in to OpenMRS Talk and introduce yourself to the community in the "Welcome - please introduce yourself!" topic. Check out the GSoC category there for questions and updates.
  4. Join our developers mailing list to keep track of what's going on in our development community. To help control the volume of email our developers received, do not introduce yourself or ask questions about a GSoC project on this mailing list without first contacting its mentor (listed here) directly.
  5. Join our IRC channel and introduce yourself – meet some other community members and tell us about yourself and why OpenMRS is interesting to you. Spend lots of time in IRC getting to know us.
  6. To start, install OpenMRS (just like a user would) and learn a bit about how it works. If you have problems, write to the developers mailing list and we'll help you work through them.
  7. Set up your development environment and fix some simple bugs listed on our Introductory Tickets list. Read Getting Started as a Developer for details on how to do this. This demonstrates that you are self-motivated, makes you familiar to the developer team, and gives you a taste of the development process. Keep track of the issue numbers that you work on. We'll ask you for them in your application.
  8. Join our Developers Forum (Inactive) every Thursday to learn about the latest activities & work happening in our community or join an OpenMRS University call every Wednesday. You can participate by telephone or using your web browser.
  9. Interact with our community. Continue to ask smart questions (what?) on our mailing list or hang out on IRC to ask and answer questions.

When preparing your application, also remember to:

  1. Use the title of the project idea for which you are applying as the title of your application. If you are submitting an application to work on the "Add whirlygigs to OpenMRS" project, then make the title of your application "Add whirlygigs to OpenMRS".
  2. Submit a thoughtful application. Simply regurgitating documentation from the wiki will not impress us. Rather, show that you've thought about the project and provide some ideas on how you would approach the solution. You can ask other people in the community for ideas in advance. The best applications not only refer to one of the GSoC projects, but also demonstrate you have thought about the project by providing a description of how you think you might approach the project, including a rough timeline of the steps involved.

Application Requirements & Questions

You should have communicated in advance with the potential mentors listed above to prepare one or more project proposals. This proposal must describe in detail how you would plan to approach the project, and must include goals and a draft timeline. In addition to the project proposal, you needed to respond to the following questions:

  1. Who are you? What are you studying?
  2. Why are you the right person for this task?
  3. Describe in detail your software development experience by various technologies. Include all technologies you have used for development projects.
  4. List any previous experience working with open source projects other than OpenMRS. (This experience is not a requirement.)
  5. Provide links to any websites or applications created by you, or other source code examples.
  6. Please provide the URL to your wiki personal space. (If you don't have one yet, please create one.)
  7. You must have made at least one coding contribution to OpenMRS BEFORE submitting your proposal. Please include in your proposal all relevant issue numbers, pull requests, commit links, etc. for these contributions. If you don't include this information, your proposal will not be reviewed. It's not necessary for your pull requests need to be merged. We just want to see that you've made some effort to learn the basics about OpenMRS.
  8. Describe your interactions with our community so far. Include dates of developer forums you have attended, and include any IRC nicknames used when visiting our channel previously.
  9. What is your preferred method of contact and how should we reach you with it? (phone, email, IRC, IM, etc.)
  10. Do you have any other commitments during the program? (Include any and all holidays, vacations, travel, exams, classes, research projects, other work, job offers, etc.)

Have Additional Questions?