I have a total of 16 students in my Software Development Capstone class this semester. They are all senior CS majors, who have had 3 semesters of programming in Java, a software design course, a software process management course, and a software testing course before coming to this course. They are working in 3 teams of 5-6 students. Our semester runs until 4 May 2016.
My hope is to have each team take on an OpenMRS ticket, break it in to tasks that can be taken on by one team member, and complete those tasks in sprints. Once a team completes a ticket, they can start another. They don’t have to write a lot of code, because we are doing other process-related stuff - but I’m sure they would be happiest if they wrote a lot of code. I am willing to adjust this plan, if needed, based on the type of work.
We have all gotten the core cloned, have built it, and have set up our development environments - some in Eclipse, some in IntelliJ. We are looking at tickets right now to find something we think we can work on. We are not committed to any particular tickets at this point.
If you have some project that you could use some help with for the next 2 1/2 months, and are willing to do some mentoring of students (and a faculty member), we would be excited to help.
Hi @kwurst, this is great!
Question to you, do the students want to be involved in the tasks right from the design stage itself, or do they want fully fleshed out tasks?
Not sure if you’re familiar with the OHDSI initiative, but we’ve built out an initial module to provide OpenMRS support for OHDSI.
This might be a good fit because there’s a wide range of task types available (from UI to database / sql to performance), and also, it touches two different, and very vibrant communities.
Hi @kwurst, we are thrilled that you and your students picked OpenMRS, I’m not 100% sure we do have several tickets that can be broken down into several tasks to be worked on by 5 developers per task and can be covered in 10 weeks but we will see. Can’t they start with smaller intro tickets and once they have a little feel of the project and more familiar with things then they can take on bigger tasks that can be broken down.
We want to build a reporting module on top of OpenMRS that allows radiologists to use openmrs to generate radiology reports. Essentially they would select a study from a reading worklist , interpret the study and use an editor to type in the report.
There would be availability of templates that they can use to start typing their reports
Please review these links for current work done on radiology module (We already have Devops set up )
We’d also love to work with a group of your students. We have a team of 6 devs at AMPATH based in Eldoret, Kenya. We’ve been in the process of building an angular based front end to OpenMRS and are piloting this system in a few of our clinics now. We generally use a variant of scrum and would welcome inclusion of your students in any of our sprints (usually 3 weeks long).
Some of the ongoing features we are or would like to be working on:
Angular Form Entry : a data collection tool using angular-formly
Angular based Order Entry System : development of a front end consuming OpenMRS order entry rest api
Offline Data Collection : Angular + Ionic + pouchdb (using the angular form entry tool we’ve developed)
Bar Code Integration : We’d like to move to a bar code (rather than typed) system mimicking the Baobab approach in which patient flow through the clinic is tracked through bar coding. We need to develop the modules to produce the bar codes as well as the ui front ends and integrations with our work flows. This would all be done using javascript.
Cohort Based Data Collection : Putting finishing touches on the the GSOC project by Sharon Varghese and making it production ready.
Hi @kwurst,
I suggest that it is better to do this strategy in a module instead of the core. The reason is that the code there might be larger tickets that can be broken down to smaller tasks. The core tickets I think are more specific (and smaller) and unless you break those down to pair-programming tasks (like one student writing a test and another writing the method), I think it would be difficult.
I like @judy’s idea of the radiologydcm4chee project tickets or @jdick’s AMPATH project and think that might be more suited.
Thanks @surangak, @wyclif, @judy, @jdick, and @sunbiz for all the great suggestions! It’s great (and slightly overwhelming) to have so many of you respond so quickly.
@surangak I will definitely take at look at the OHDSI Project and get back to you.
Probably both. Right now, at the beginning of our involvement, it would probably be better to just code something that is already designed. But, later, we would probably enjoy starting something from the design stage.
@wyclif We may even be able to break an intro ticket into tasks at the beginning - those tasks will include things like researching the architecture of OpenMRS, or how to work with a particular framework or API, rather than just the coding tasks. While the coding is something they want to do, I also want them to get a feel for the team aspects also. We can handle learning about the project in a divide-and-conquer fashion. Plus it will give them a support system within the class itself, and a chance for different students to become the resident “expert” on some aspect of the project.
@judy I will definitely take a look at your project and videos and get back to you. I notice that one of the students has already liked your post, so I think they are also looking at the suggested projects.
@jdick This also looks great. I’ll take a look and get back to you. I’ll also want to talk with you about how you envision the students fitting into your sprints.
[quote=“sunbiz, post:6, topic:4731”]
I suggest that it is better to do this strategy in a module instead of the core. The reason is that the code there might be larger tickets that can be broken down to smaller tasks. [/quote]
@sunbiz I think that the module idea is probably a good one, and I’ll definitely be looking at those.
See my reply to @wyclif’s comment above on how I think this may be doable early on.
We’ve taken a look at your videos and the repository and we are very interested.
Some questions:
Who is managing this project? Who would we be going to for help with selecting tasks to work on? I see two “must” issues that are unassigned: https://issues.openmrs.org/browse/RAD-116 and https://issues.openmrs.org/browse/RAD-115. Are these what you would want us to work on? Or would we be working on some of the 12 “TBD” issues?
We’ve taken a look at the GitHub repository for AMPATH. There’s a lot there! Which specific tasks would you be interested in having us work on?
I also have questions about how you envision us fitting in with your scrum and sprints? Would we run our own scrum teams and follow your sprint schedule? Would we integrate into some of your teams?
It looks interesting, but it also looks somewhat overwhelming. More information would be helpful for making a decision. Thanks.
Would be great if the students could work on tickets RAD-58, 107, 109, 121
I’ll groom the backlog in the coming days and add more tickets for your students. You and your students are welcome to contact me if you need any help getting started!
The class decided today that we would like to work on your project for the semester. We will look at the tickets that Ivo mentioned to get a feel for what needs to be done.
I’ve already made a class fork of your repository for us to work in, and we’ll all try to build the module and install it into our local OpenMRS installs.
What would be that best communication channel for us to use to ask questions when we get stuck?
Well we can use talk and skype (my username is teleivo).
But If the students would like to use any other tool like https://slack.com/ or https://www.hipchat.com/, we could also create a team there so all communication is in such a channel. Might be a good idea, so everyone can read up on conversations later on.
We generally try to promote discussion in public and logged channels (for a number of good reasons), so I’m with @michael on this. Would it be possible to use the existing IRC or Telegram channels @kwurst?