Wiki Spaces

Documentation
Projects
Resources

Get Help from Others

Q&A: Ask OpenMRS »
Discussion: OpenMRS Talk »
Real-Time: IRC Chat

Resources

Skip to end of metadata
Go to start of metadata

Welcome to the OpenMRS Hackathon Germany!

Join us in supporting the OpenMRS mission in a one day hackathon with the main focus on paying back technical debt that has accumulated over time.

How To Join The Hackathon

Everyone is more than welcome to join us for the hackathon! You do not need to be a domain expert in healthcare. However since we want to solve code related OpenMRS issues you need to be familiar with the technologies OpenMRS is built on. We expect you to have experience with Java and tools/frameworks such as maven, JUnit, Spring, Hibernate, Mysql.

Register

In order for the organizers to cope with the logistics please join the meetup group https://www.meetup.com/ThoughtWorks-Berlin/

and register for the OpenMRS hackathon event you want to attend.

Mandatory Pre-Hackathon TODOs

If you want to join us for the hackathon please follow the next sections with at least a few days, even better a few weeks in advance. We want to spend the hackathon with helping out the OpenMRS community and not with setting up laptops. If you are having any issue or questions please refer to the Need Help section.

Get An OpenMRS ID

In order for you to claim the issue you’ll be working on in the OpenMRS issue system https://issues.openmrs.org you need an OpenMRS ID. This login is also used to login in to the OpenMRS forum http://talk.openmrs.org/ which is what you’ll need to talk to the community.

To get your OpenMRS ID

  1. go to https://id.openmrs.org/ and follow the instructions
  2. once you have your OpenMRS ID go to https://help.openmrs.org/ and request JIRA access and mention your OpenMRS ID 

Please do this as soon as you are sure you are going to participate as this can sometimes take a few days. The helpdesk is run by the community which are mostly volunteers so please keep that in mind!

Setup Your Development Environment

  1. Make sure you have setup your machine before the day of the hackathon by following instructions here Getting started with OpenMRS
  2. Install the Generate Test Case Plugin for IntelliJ or Eclipse to write unit tests according to the OpenMRS convention
  3. Clone the repositories you are going to work on. You'll definitely need: https://github.com/openmrs/openmrs-core

Checklist

Make sure you have all you need ahead of your first hackathon by reviewing this quick Checklist for Hackathon

Read About OpenMRS Coding Conventions

Optional Pre-Hackathon TODOs

Create Or Find Issues

You can help us in creating issues for the hackathon by getting familiar with the OpenMRS code base and especially by looking for

  1. critical or major code smells on the OpenMRS code quality tool - Sonar Cube
  2. untested code using either the Coveralls Code Coverage Site or OpenMRS code quality tool - Sonar Cube
  3. existing issues at https://issues.openmrs.org that are not labeled with 'hackathon-germany' but you think you can complete in a one day hackathon or you commit to complete soon after the hackathon

IMPORTANT NOTE: please involve the community in the ticket creation process, we do not want to drain community resources, the community should decide what is of importance. So be considerate, ask first at  http://talk.openmrs.org/ or on IRC Chat if you are uncertain.

Upcoming Events

DateEventTimeLocationRegistration
April 22, 2017OpenMRS Hackathon9am - 8pm UTC+01:00
ThoughtWorks Werkstatt: Mülhauser Str. 6, 10405 Berlin; https://goo.gl/maps/95KSFxVCLT12https://www.meetup.com/ThoughtWorks-Berlin/events/237696997/

On the Day of Hackathon

What To Bring

Your laptop & your friends with laptop :)

What To Work On

Our goal is to complete as many issues as we can; the goal is not to claim as many issues as we can but to successfully complete them. Therefore please

  • pair with someone if its your first time or if the issue seems more complex
  • claim only issues as described in the section find tickets. These are tickets that the community pre-selected for this hackathon; please stick to those as the community put in time and effort in selecting issues it can use our help!
  • furthermore if you have some ideas on how to improve the code which are not covered by the tickets please share them with the community.

Find a ticket to work on

Please claim one of these issues or join someone who has already claimed a ticket:

Loading
Key Summary T Created Updated Due Assignee Reporter P Status Resolution
TRUNK-5069 Add tests to PatientServiceImpl Bug 2017-02-20 2017-02-26 Francesco Spampinato Ivo Ulrich Must In Progress Unresolved
TRUNK-5068 Add tests to ProgramWorkflowService Bug 2017-02-20 2017-02-20 Unassigned Ivo Ulrich Must Ready for Work Unresolved
TRUNK-5067 Add tests to MessageServiceImpl Bug 2017-02-20 2017-02-20 Unassigned Ivo Ulrich Should Ready for Work Unresolved
TRUNK-5066 Add tests to ConceptServiceImpl Bug 2017-02-20 2017-02-25 Sanatt Abrol Ivo Ulrich Must In Progress Unresolved
TRUNK-5065 Add tests to AdministrationServiceImpl Bug 2017-02-20 2017-02-20 Unassigned Ivo Ulrich Must Ready for Work Unresolved
TRUNK-5064 Add tests to PersonServiceImpl Bug 2017-02-20 2017-02-22 Ira Lauer Ivo Ulrich Must In Progress Unresolved
TRUNK-5063 Extract private method in ConceptServiceImpl.saveConcept Bug 2017-02-17 2017-02-20 Unassigned Ivo Ulrich Could Ready for Work Unresolved
TRUNK-5062 Extract private method in EncounterServiceImpl.saveEncounter Bug 2017-02-17 2017-02-23 Prabodh Kotasthane Ivo Ulrich TBD In Progress Unresolved
TRUNK-5061 Add test to FormServiceImpl.getForms Bug 2017-02-17 2017-02-20 Unassigned Ivo Ulrich TBD Ready for Work Unresolved
TRUNK-5060 globalPropertyChanged catches all exceptions Bug 2017-02-17 2017-02-20 Unassigned Ivo Ulrich TBD Ready for Work Unresolved
TRUNK-5059 Remove duplication in LocationService.getDefaultLocation Bug 2017-02-17 2017-02-20 Unassigned Ivo Ulrich TBD Ready for Work Unresolved
TRUNK-5057 Extract private methods in OrderServiceImpl.saveOrder Bug 2017-02-17 2017-02-20 Unassigned Ivo Ulrich Could Ready for Work Unresolved
TRUNK-5055 Improve PersonServiceImpl.getPersonAttributeTypes Bug 2017-02-16 2017-02-20 Unassigned Ivo Ulrich TBD Ready for Work Unresolved
TRUNK-5054 Extract private methods in PersonServiceImpl.savePerson Bug 2017-02-16 2017-02-20 Unassigned Ivo Ulrich TBD Ready for Work Unresolved
TRUNK-5053 Refactor ProgramWorkflowServiceImpl.saveProgram Bug 2017-02-16 2017-02-20 Unassigned Ivo Ulrich Could Ready for Work Unresolved
TRUNK-5052 Extract methods from getVisitTypesToStop Sub-task 2017-02-16 2017-02-20 Unassigned Ivo Ulrich TBD Ready for Work Unresolved
TRUNK-5051 Extract getVisitTypesToStop from VisitServiceImpl.stopVisits Sub-task 2017-02-16 2017-02-20 Unassigned Ivo Ulrich TBD Ready for Work Unresolved
TRUNK-5050 Reduce nesting in VisitServiceImpl.stopVisits Sub-task 2017-02-16 2017-02-20 Unassigned Ivo Ulrich TBD Ready for Work Unresolved
TRUNK-5049 Refactor VisitServiceImpl.stopVisits Bug 2017-02-16 2017-02-20 Unassigned Ivo Ulrich TBD Ready for Work Unresolved
TRUNK-5048 Code in UserServiceImpl might not be reached Bug 2017-02-16 2017-02-20 Unassigned Ivo Ulrich TBD Ready for Work Unresolved
TRUNK-5047 Replace duplication in UserServiceImpl by StringUtils Bug 2017-02-16 2017-02-22 Prabodh Kotasthane Ivo Ulrich Should In Progress Unresolved
TRUNK-5046 Remove commented out code Bug 2017-02-16 2017-02-20 Unassigned Ivo Ulrich TBD Ready for Work Unresolved
TRUNK-5045 Extract private methods in PatientServiceImpl.savePatient Bug 2017-02-16 2017-02-20 Unassigned Ivo Ulrich TBD Ready for Work Unresolved
TRUNK-5043 Remove unused temp variables Bug 2017-02-16 2017-02-20 Unassigned Ivo Ulrich TBD Ready for Work Unresolved
TRUNK-5042 Possible null pointer dereference Bug 2017-02-16 2017-02-24 Sanatt Abrol Ivo Ulrich Should In Progress Unresolved
TRUNK-5041 Replace temp vars in Concept with streams Bug 2017-02-16 2017-02-20 Unassigned Ivo Ulrich Should Ready for Work Unresolved
TRUNK-5040 Inefficient use of map Bug 2017-02-15 2017-02-20 Unassigned Ivo Ulrich TBD Ready for Work Unresolved
TRUNK-5037 Replace use of synchronized class Vector with ArrayList Bug 2017-02-15 2017-02-20 Unassigned Ivo Ulrich TBD Ready for Work Unresolved
TRUNK-5034 Merge collapsable if statements Bug 2017-02-14 2017-02-20 Unassigned Ivo Ulrich TBD Ready for Work Unresolved
TRUNK-5033 Public static fields should be final Bug 2017-02-14 2017-02-20 Unassigned Ivo Ulrich TBD Ready for Work Unresolved
TRUNK-5032 Remove unused private fields Bug 2017-02-14 2017-02-20 Unassigned Ivo Ulrich TBD Ready for Work Unresolved
TRUNK-5031 UpgradeUtil may not close a stream Bug 2017-02-14 2017-02-20 Unassigned Ivo Ulrich TBD Ready for Work Unresolved
TRUNK-3800 Refactor UserDAO Sub-task 2012-11-10 2017-02-20 Unassigned Lluis Martinez Could Ready for Work Unresolved
TRUNK-3799 Refactor TemplateDAO Sub-task 2012-11-10 2017-02-20 Unassigned Lluis Martinez Could Ready for Work Unresolved
TRUNK-3798 Refactor ProviderDAO Sub-task 2012-11-10 2017-02-20 Unassigned Lluis Martinez Could Ready for Work Unresolved
TRUNK-3797 Refactor ProgramWorkflowDAO Sub-task 2012-11-10 2017-02-20 Unassigned Lluis Martinez Could Ready for Work Unresolved
TRUNK-3796 Refactor PersonDAO Sub-task 2012-11-10 2017-02-20 Unassigned Lluis Martinez Could Ready for Work Unresolved
TRUNK-3795 Refactor PatientDAO Sub-task 2012-11-10 2017-02-20 Unassigned Lluis Martinez Could Ready for Work Unresolved
TRUNK-3794 Refactor OrderDAO Sub-task 2012-11-10 2017-02-20 Unassigned Lluis Martinez Could Ready for Work Unresolved
TRUNK-3793 Refactor ObsDAO Sub-task 2012-11-10 2017-02-20 Unassigned Lluis Martinez Could Ready for Work Unresolved
Showing 40 out of 47 issues Refresh

These issues can also be found at https://issues.openmrs.org filtered by the label 'hackathon-germany'. If you cannot find a interesting ticket to work on here look at the introductory tickets and after introductory tickets here.

Share Ideas Or Need Help

  1. Reach out to the organizers or ask your neighbor for help
  2. Try to see if anyone in IRC channel can help you out on IRC Chat
  3. Search for your issue in the OpenMRS forum http://talk.openmrs.org/
  4. Check the demo server if you want to replicate an issue http://demo.openmrs.org/openmrs
  • No labels

1 Comment

  1. If ThoughtWorks ever decides to run a hackaton in Barcelona I'll be there.