View on GitHub

COMP 491/492

Dickinson College Computer Science Senior Seminar

PA02: Candidate Projects

Introduction

Selecting the H/FOSS (FOSS or humanitarian FOSS) project on which you will work is a four step process. This assignment, PA02 - Candidate Projects is the first step. In this step you will explore a variety of H/FOSS projects to learn what they do and quickly assess their suitability for this course. In the next assignment, PA03 - Project Explorations you will dig deeper into some of the candidate projects that you identified, to determine things such as whether they are active and open to contributions, and how approachable they seem to be. PA04 - Project Reviews asks you to become more informed about the projects in which you are most interested. Then in PA05 - Project Ranking and Selection we will form teams around commonalities in the projects that were reviewed and each team will work together to select the project on which they will work.

Before beginning it is recommended that you read What you actually need to know about open source to get started and Open-Source Contribution: The Ultimate Guide to get a feel for the kinds of things you’ll want to be thinking about as you browse projects looking for ones that you might be interested in working on.

Assignment

Use the steps outlined below to build the list of candidate projects to which you might be interested in contributing.

  1. Browse the resources in the Finding H/FOSS Projects section looking for projects that interest you. It is recommended that you consider projects from across a range of your different interests. Eventually we will be forming teams around areas of common interest. So having considered projects across a range of interests increases the likelihood that you will find a team with some shared interests.
  2. From the projects that interest you, identify at least 10 candidate projects that you are interested in exploring more deeply. Candidate projects must:
    • be under active development (recent commits, issues, pull requests, etc).
    • have a stated license (without one it can’t be used for this course).
    • have at least some basic documentation (e.g. README, INSTALL, CONTRIBUTING, etc).
  3. Using your clone of the course repository:
    1. Ensure that you are on the branch you created in PA01
    2. In your directory (i.e. the one with your name):
      1. Create a new file in your directory to hold information about your candidate projects.
      2. Create a link to this new file under the “Assignments” heading in your README.md file.
      3. Create nicely formatted content in the new file for each candidate project including:
        • the name of the project
        • a link to its home page and/or repository.
        • 1-2 sentences description of the purpose of the project and the community it serves.
        • 1-2 sentences summarizing of your interest level in the project and your impression of the suitability of the project for this course.
    3. Commit your changes to your feature branch.
    4. Push your feature branch to update your PR.
    5. Check the changes in your pull request on GitHub to ensure that they are correct.

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 engagement. You will, of course, want to find projects that you are interested in. But you’ll also want to find projects that are active, technically approachable, have a variety of ways to contribute and have 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 candidate projects.

Humanitarian FOSS (HFOSS) Projects

As you know, HFOSS is an acronym for humanitarian free open source software. We encourage you to explore at least a few humanitarian FOSS (HFOSS) projects because they reflect the potential for computing to benefit society and thus will align your major well with the broader mission of Dickinson College. In addition, past students and faculty from this course, and other courses similar to ours, report that HFOSS project communities tend to be friendly, supportive and open to helping new contributors come on board. That said, you should explore and select projects according to all relevant factors, including your own personal interest and you are not required to pursue any humanitarian projects.

The following lists are good places to find humanitarian projects that might be of interest:

Projects with Mentor Connections

Having a mentor to guide your work in a project can be very useful in getting started, identifying appropriate tasks and getting help when you are stuck. Regardless of the project that you pick you will want to make an effort to find a mentor in the project. This is easier in some projects and harder in others.

There are several projects where we have potential mentor connections:

Broader H/FOSS Project Lists

The following lists are also good places to find H/FOSS projects that are are open to contributions:

H/FOSS Projects for New Contributors

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 projects with “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:

H/FOSS Projects Selected by Past Senior Seminar Teams

Below is the list of all H/FOSS projects selected as capstone projects by previous Dickinson senior seminar students. Note that we do not necessarily recommend every project on this list. Every project has both advantages and disadvantages. Projects where students have had particularly good experiences are marked with an 🏆. Note though that projects change over time so past experience is not necessarily predictive of current success. If you are considering pursuing one of these projects, feel free to discuss it with the instructor to find out about the experience of previous Dickinson students.

In addition there are a number of other projects students and instructors from courses similar to ours have reported having good success with:

H/FOSS Projects You Already Know or Use

Think about the apps, software, frameworks, libraries and websites you use on your phone and computer. Which of them are open source? Are any of them suitable as capstone projects? If so, feel free to explore them.

Other Collections of H/FOSS Projects

If nothing in any of those places 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 millions 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 explore it in detail. That said, here’s a list of repositories:

Acknowledgements

This assignment builds from and adapts ideas and content from the following activities created by others:


Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License All textual materials used in this course are licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License

GPL V3 or Later All executable code used in this course is licensed under the GNU General Public License Version 3 or later