Write Code. Save Lives.
OpenMRS participated in its 5th year as a mentoring organization for Google Summer of Code™ in 2011. We enjoyed participating in this great program in the last 4 years and were even more excited about the projects and mentors we had 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, and Malaria.
Accepted Students and Mentors
10 Next Steps for Accepted Students
If you have been accepted as a student, congratulations! Please make sure to complete the following tasks as soon as possible. Ask your mentor for help if you need it.
- If you don't have one yet, get an OpenMRS ID and create your user profile page. Upload an avatar photo. Make sure you are subscribed to the developer mailing list.
- If you haven't read it yet, read the GSoC Student Guide.
- Contact your mentor immediately and create a communication plan for now through the time of final evaluations. You should communicate once each week, if not more frequently. Determine the best way to communicate (e-mail, IRC, IM, Skype, telephone, etc.). Post the communication plan in your personal space on the OpenMRS wiki.
- Get OpenMRS installed and running. Read Developer Guide, Getting 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.
- Get a development environment installed and running.
- Review our Conventions page. If you have quesitons about anything you read, contact your mentor or anyone the community.
- Set up a blog for GSoC. Send the URL to Michael Downey. If you don't have a blog yet, you can create one for free at WordPress.com or Blogger.com.
- Browse the current OpenMRS code specific to your project. Browse other GSoC organizations and the pages they have for their students. We want to be the best!
- Review the requirements for your project together with your mentor and agree on the final list of requirements with your mentor.
- Submit a formal written proposal and project timeline to your mentor. Make sure your mentor agrees with both. Post them in your personal space on the OpenMRS wiki.
I didn't get accepted. Why not?
First of all, thank you to everyone who worked hard on submitting a proposal to OpenMRS. We received many excellent proposals, but unfortunately, it's not possible to accept everyone. If you're interested in being even more competitive next year, read "Being Turned Down" in the GSoC Student Guide (in fact, the entire student guide is useful) and consider the tips it suggests. Also look at our "tips for students" section of this page for more ideas.
What we expect of students:
- Become familiar with OpenMRS and your project before the start date.
- Complete a short "progress report" each week to help stay on schedule.
- Commit early. Commit often. This is an important value in our open source community - read why.
- Join the interns mailing list. (We'll help you with this.)
- You are now part of our developer community. We want you to feel like part of the team, so we hope you will:
- Have technical discussions on IRC or on the developers mailing list.
- Ask questions (the smart way) if you get stuck.
- Participate in our Developers Forum via phone or Skype.
- Give one or more project presentations during those weekly meetings so we can see the cool stuff you're making.
What students should expect of OpenMRS during the summer:
- You will have fun!
- You will learn how to work within an open source project.
- 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 later in the year to geek out with fellow mentors from other open source projects.
We will follow the official Google timeline for the program. In summary:
- March 18: Official announcement of Google Summer of Code participating organizations.
- March 28 - April 8: Student application period.
- April 25: Accepted students are announced.
- Through May 22: Community bonding period.
- Get to know your fellow interns and mentors.
- Do the things listed above in "Next Steps" below.
- May 23: Coding begins!
- You should have a project plan in place by this date.
- Important: Commit code early and often!
- July 11: Mentors submit a mid-term evaluations of your work.
- August 15: Plan to finish coding by this date, then use the final week to scrub code, write tests, improve documentation, etc.
- August 22: "Pencils down." No more coding after this date. Mentors submit their final evaluations.
- August 29: Results of evaluations are announced.
- Every accepted student will be required to give a short (15-minutes: 10 minutes presentation, 5 minutes questions-and-answers) presentation/demo of their project twice during the program. You can use our screen sharing tools to demo your project. Look in the table of projects, mentors, and students above to determine which group you are in.
- Check your calendars now to make sure these dates are OK for you. If you have a serious conflict with one of these dates, contact a student in a different group and trade dates with them. Both students should then notify Michael Downey.
- Students presenting early in the program can focus more on their plan and design strategy. Later presentations should be more of a "demo" and show your working project in-progress.
Tips for applicants and accepted students
We're happy you're interested in working on OpenMRS during Summer of Code 2011. Here are some tips that we prepared to help your application process be easier and more successful. These are all things you can do today to start getting involved.
Basically: Become an active contributor in our community. The sooner you do this, the more familiar we'll be with your name and your work.
- Join our developers mailing list. Read its archive from recent weeks to learn about what's been going on lately in our developer community.
- To start, install OpenMRS (just like a user would) and learn a bit about how it works. If you have problems, write the developers mailing list and we'll help you work through them.
- Want to get more involved? 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.
- Join our Developers Forum every Thursday to learn about the latest activities & work happening in our community. You can participate by telephone, Skype, or even just on IRC.
- Interact with our community. Continue to ask smart questions (what?) on our mailing list or hang out on IRC to ask and answer questions about being an OpenMRS developer, or about the potential projects listed above.
You may notice that we refer to "smart questions" several times on this page. When you write to the developers mailing list, hundreds of people will see your message. Because there are many messages sent on the list, it's important to be courteous. That means asking clear questions, as well as trying to limit the number of mails you send. Please read and understand How To Ask Questions The Smart Way before you hit "send"! We want to help you be a successful contributor to OpenMRS, and keeping these tips in mind will help. Thanks!
Potential students should take time to read the GSoC Student Guide.
Helpful Community Resources
- If possible, join the Developers Forum every Thursday. You can participate by telephone, Skype, or even just on IRC. The 2nd and 4th Thursdays of each month will be dedicated to Summer of Code, so make every effort to attend to listen to your fellow students' presentations (see the next section for details).
- 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.
- The Interns mailing list is for accepted students to discuss SoC administrative issues. This list should not be used for technical discussions.
- IRC discussions in the #OpenMRS channel of freenode are always fun! Useful for shorter discussions or for large group discussions
- Skype or telephone — sometimes a short discussion can get ideas across much more efficiently
- Google Docs — an excellent tool for sharing and collaborating in real time on documents or spreadsheets
- 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.
- Scheduling tools:
- TimeAndDate.com — to clarify/coordinate times around the world
- Doodle.ch — to coordinate meeting times for larger groups
We asked the following questions on student applications:
- Who are you? What are you studying?
- Please provide the URL to your OpenMRS ID personal profile page. (If you don't have one yet, please create one.)
- Why are you the right person for this task?
- Do you have any other commitments we should know about?
- List your Java experience.
- List your web interface experience.
- List any previous experience working with open source projects. (This experience is not a requirement.)
- Please provide links to websites created by you and/or source code examples.
- Do you have experience with Spring/Hibernate/DWR/HL7/Tomcat/MySQL/AOP? (Experience with any/all is not a requirement.)
- What is your preferred method of contact and how should we reach you with it? (phone, email, Skype, IRC, IM, etc.)
- If you have visited our IRC channel, please include your IRC nickname in your application.
- If you have added any patches to tickets, please include the ticket numbers.
- If you have further questions that aren't answered in this document, please contact Michael Downey.