Advisor: Amy Csizmar Dalal
The world of free and open source software (FOSS) development is, in theory, an exciting one. The idea behind FOSS is that anyone can download, examine, modify, add to, play with, remix, etc. the code of an existing project, and ideally contribute changes back to the code base. This makes software development a global collaborative experience, removing many of the barriers to contributing to a software development project. Anyone can contribute, and this provides valuable opportunities to practice and refine one’s computer science skills in a real-world environment on an actual code base.
The reality is somewhat different. It is often daunting to contribute to open source projects. Each project has its own culture, its own workflow, its own hierarchies, its own set of tools and conventions. It’s often hard to tell if a project is active or not, or if the project has a welcoming community towards newcomers. The sheer number of FOSS projects, and the steep learning curve, can easily overwhelm the most eager would-be contributor.
Foss2serve is an organization that promotes student participation in FOSS projects, and specifically humanitarian FOSS (HFOSS) projects. HFOSS projects address social issues like health care, economic development, and disaster management. Foss2serve provides resources to help students and faculty onboard onto HFOSS projects and support them as they contribute to HFOSS development, including: how to use the various development tools; how to select and join a project; how to communicate with the existing developers; etc. In short, Foss2serve helps simplify the process of contributing to an HFOSS project, allowing students to contribute to an active, real-world project in meaningful ways.
We will be utilizing the Foss2serve resources to contribute to an HFOSS project for this Comps project. Tentatively, this project addresses health care in developing countries, although the exact project will be finalized this summer.
In this project, you will contribute to an active HFOSS project, OpenMRS. OpenMRS is a platform for health care systems and health care records in resource-constrained environments, and is currently being used all over the world (see an interactive map). The OpenMRS development community is large, diverse, and, most importantly, welcoming to student participation.
The project will involve the following stages:
Depending on the status and needs of the project next fall, the group may choose to contribute one common module to the codebase, or divide into subteams and contribute several smaller modules.
(Note to students: The exact project will not be finalized until late summer. OpenMRS is the top contender right now, but I am also looking at several smaller projects as well. I will let you know once the exact project is finalized.)
Because we will be working with an external developer community, and because any number of things happen out in the real world, specific deliverables and milestones may and likely will change over the lifetime of this Comps project. Thus, the deliverables for this project will be slightly different for this Comps project than for the “typical” Comps project.
My expected contributions from the team are as follows:
Completion of CS 257, Software Design, prior to the start of Comps, is required for this Comps project. This is not an appropriate project for people who are planning on taking Software Design concurrent with either term of Comps, as the entire team will need to make use of Software Design content starting Day 1. Experience in contributing to Open Source projects is nice, but not necessary.
Here are some resources to get you started on this project.