Week 7:Group Project
Decision-Making Process
At the beginning of our project selection, we discussed our backgrounds and realized that all three of us were relatively comfortable with Python. This made it clear that choosing a Python-based open-source project would be a good starting point. Meanwhile, since none of us had previous experience contributing to open-source software (OSS), we decided to look for projects that involved documentation and UI polish tasks—areas as well. In that case, we could make meaningful contributions without deep familiarity with the project’s core codebase.
With these criteria in mind, I started by exploring Blender-related projects, as Blender is the software I use most frequently, and it is primarily written in Python. However, I quickly realized that Blender itself was too complex for beginners to contribute to. I then shifted my focus to Blender plugins, thinking that they might be more manageable. Unfortunately, most of these plugins were small-scale projects maintained by only a few developers (typically between 3-10 people), and they didn’t have many UI or documentation-related tasks available.
At this point, we came across the NYU CS Wiki, which seemed like a perfect fit. However, after discussing it with our professor, we were advised that this course was meant to challenge us with contributing to large-scale OSS projects. The NYU CS Wiki wasn’t complex enough to push us out of our comfort zones. To truly gain valuable experience, we needed to attempt contributions to a more sophisticated and widely used project.
Eventually, we decided to choose one between iNaturalist and Oppia, both of which had a large number of marked issues suitable for new contributors. We were particularly interested in iNaturalist, but since it is written in Ruby—a language none of us were familiar with—it became our backup option. After setting up our development environments of both projects, we chose to start with Oppia, where we could explore available issues and determine what we could start next.
Obstacles and Challenges
One of the biggest initial challenges was that both iNaturalist and Oppia require Docker for development. Only one member of our group had prior experience with Docker, so we were concerned that setting it up would be difficult and time-consuming. However, after going through the installation process and learning how to use it, we realized that it wasn’t as overwhelming as we initially thought. But, I haven’t use Docker within the project yet, so I’m hoping we won’t run into any major issues later.
Next Steps
Next week, our plan is to set aside time to discuss the issues we’ve found that align with our skill levels. We’ll evaluate which ones are feasible for us to work on and then divide tasks among the group. From there, we’ll begin working on our first contributions to Oppia, aiming to fix at least one or more issues collaboratively. This will be an important step in applying what we’ve learned so far and gaining hands-on experience in open-source development.