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 (http://foss2serve.org) is an organization that promotes student participation in FOSS projects, and specifically humanitarian FOSS (HFOSS) projects, or FOSS projects that 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 on food distribution for this Comps project.
In this project, you will contribute to an active HFOSS project. Tentatively the project will be the Open Food Network (https://openfoodnetwork.org/). The Open Food Network enables farmers to connect with local businesses and consumers to distribute their food more easily and fairly. (If for some reason this project falls through, the HFOSS project will be another food distribution project.)
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.
This is an academic civic engagement (ACE) Comps project. In addition to all of the other goodness that you will gain by participating in CS Comps, you will also learn to (1) interact with real-world software developers and clients in a professional manner, (2) produce a product that will be used by real people in the real world, and (3) improve food sustainability efforts throughout the world.
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.