H/FOSS Project Exploration
Students pursuing a H/FOSS Project must each complete a Project Exploration of at least 4 H/FOSS projects of interest. Students pursuing Honors Projects must complete the Project Exploration of at least 2 H/FOSS projects. You should plan to look briefly at lot of projects and then do explorations only for those that you might seriously consider working on for the remainder of the year. For those that you select to explore, you should spend ~30 minutes exploring it and writing it up as described below.
For each project that you explore:
- Use the resources in the Finding H/FOSS Projects section below, or otherwise, identify an H/FOSS project to which you might potentially be interested in contributing.
- Visit the course Wiki on the course Moodle (link on home page).
- Go to the H/FOSS Projects List page on the Wiki.
- Under the “Project Exploration” heading, add a line for the project you are exploring. The line will contain a link to the project’s webpage and a link to a new Wiki Page that will contain your information about the project. See the instructions on the Wiki page and use my sample entry provided there as a template.
- On the new Wiki page to which you linked in the previous step, complete your exploration of the project according to the H/FOSS Project Exploration section below. There is a sample exploration on my (GBraught) Wiki page for the “My Robot Lab” project. You can click “edit” on my page to copy and paste the source to your own page and then edit it there.
Project Exploration Documents
For each project your exploration page must contain the following information:
- Project Title: The title of the project.
- Project Repository: The URL of the repository where the latest version of the source code is located. This is where a developer would go to get the code for the project (e.g. GitHub, BitBucket, SourceForge, etc.).
- Project Homepage: The public-facing homepage for the project. For many projects this will be different from the repository. Some smaller projects may keep everything in the repository.
- Product: Summarize in a few sentences what the software product does.
- Target User Community: Summarize in a few sentences: (i) Who is the user community for the software product? (ii) What is the benefit of the software to the user community.
- Getting Started: Imagine that you have been assigned to start working on this project as a developer… What did you find that would make it easy to get started as a developer on this project? (Give links to resources as appropriate). What did you find (or not find) that would make it difficult to get started as a developer with this project?
- Other: Is there anything particularly unique or interesting that you learned about this project or its user or developer communities that increased (or decreased) your interest in pursuing it further?
Finding H/FOSS Projects
There are literally millions of open source projects out there. However, not all open source projects are equally good candidates for use in this course. You’ll want to find a project you are interested in, of course. But you’ll also want a project that is active, technically approachable, has a variety of ways to contribute and has a welcoming developer community that will help you get started and that you can go to when you have questions. Below are resources that may help you find suitable projects of interest.
Projects from a number of different application areas that have been used here during past semesters or in other courses similar to ours, and that students and instructors have reported having good success with include:
- Sugar Labs
- Sahana Eden
- Open MRS
- Libre Health
- Open Energy Dashboard
- Mifos
- Ushahidi
- GNOME Accessibility
- FreeCodeCamp
The above projects all belong to a sub-class of FOSS projects referred to as HFOSS (Humanitarian FOSS or HFOSS), which have explicitly humanitarian missions. Students and faculty from other courses, similar to ours, report that many of these projects tend to be friendly, supportive and open to helping new contributors come on board. You can find all of the above projects and many more HFOSS projects on the following list:
NOTE: The table and the lists below do not contain all of the same projects, so be sure to look at both the table and the lists below.
Information about other HFOSS initiatives and lists of projects (some overlap with the above list) can be found:
- At The Humanitarian FOSS Project and on its Project Gallery page. (Note: May be dated).
- On the awesome-humanitarian-foss curated list of HFOSS.
There are also a few sites that are specifically designed to help new people get involved in FOSS projects. These often have a list of “introductory” issues that make good targets for new contributors. Listing a project here and tagging issues as “introductory” suggests that the projects may be particularly welcoming to new contributors. So you may want to search these sites:
- Up For Grabs
- Good First Issue
- Easy Bugs for Newcomers (Note: May be dated.)
- OVIO - requires a free signup.
If nothing there catches your attention, or you want to explore further you can leap into the void and search some of the large open source project repositories. Most of the above projects are located in one of the following repositories, but these repositories also contain thousands and thousands of other projects as well. Some will be great projects to get involved with, but others will be too large, too specialized, dead, or exclusive. So if you do head off into the void searching for projects, spend a few minutes informally assessing how active a project is and how open/welcoming/accessible it is to new contributors before spending the time to review it in detail. That said, here’s a list of repositories:
- The Big Two:
- Some others:
Grading
The grading criteria for the Project Exploration are included in the Project Selection rubric on the Course Syllabus.
Acknowledgements:
This assignment builds from and adapts ideas and content from the following activities created by others:
- https://github.com/ChrisMurphyOnline/open-source-software-development-course/blob/master/activities/foss-evaluation-activity.txt
- http://foss2serve.org/index.php/Project_Anatomy_Activity
- http://foss2serve.org/index.php/FOSS_Field_Trip_Activity
- http://foss2serve.org/index.php/Project_Evaluation_Activity_V2
- https://github.com/ChrisMurphyOnline/open-source-software-development-course/blob/master/activities/foss-get-involved.txt