Inspiration

We were inspired by our own experiences of struggling to find open-source technical projects to contribute to. While online platforms like Reddit are popular sources of project information, social media's feeds are designed to share posts that quickly gain engagement, meaning that most of our research led to projects that already have enough contributors. Our project instead pairs people to open-source projects based on their technical needs, saving developers potentially hours of frustrating research

What it does

Patchworks allows users who are seeking help with open-source projects to post collaboration requests, and view other's collaboration requests, catered towards their unique skills. These collaboration requests include the skills needed from potential collaborators. Users list their skills in their profile, and link their Patchworks accounts with their Github accounts. The Patchwork platform then boosts collaboration requests posts to individual users based on how many needed skills match user profile skills. Our target audience is beginner developers, such as students, looking for technical projects to contribute to, that they can build their technical skills and strengthen their professional resumes.

How we built it

Initially, we intentionally brainstormed ideas that fit the theme of Mulehacks. While many ideas interested us, we agreed on Patchworks based on our personal connection to the problem and the timelimit of the hackathon. We first focused on developing the back-end of the platform in Python, as that is a language all of us are familiar with. Once the back-end had its initial functionality, we developed the front-end in TypeScript, React, CSS, and HTML. We chose this front-end stack since our team had minimal prior experience with web development, and we wanted to challenge ourselves technically in this hackathon. We leveraged generative AI, primarily Copilot, to assist with debugging front-end code.

Challenges we ran into

We initially created our Git repo and accounts with our student .edu emails. However, we were unaware that student accounts were restricted, and faced technical challenges with deploying and testing our project. We had to use a purchased domain to host our site, which ate up development time. A second challenge was settling on a project idea. As mentioned previously, we all had several ideas we were interested in, but took time to all agree on a singular idea. Finally, this was our first time using generative AI to assist on a large programming project. We struggled with parallelizing tasks as Copilot worked in the background to assist with debugging. This caused our team to struggle to work collaboratively as there was downtime waiting for prompt responses. However, we overcame this by adjusting our prompting strategies, more intentionally dividing tasks, and scheduling mental-health breaks.

Accomplishments that we're proud of

We are proud of the many ways we challenged ourselves technically throughout this hackathon. We were unfamiliar with several technical components, such as hosting on a custom domain, using new languages (Typescript and React), and using generative AI as a debugging assistant. We are also proud of ourselves for successfully submitting a project to a hackathon. As high school students, there is a big jump in technical difficulty and project management constraints between a hackathon competition and our computer science class assignments. This taught us how to work collaboratively as a team, scope a technical project, and make tough decisions to meet a hard deadline.

What we learned

  • Full-stack development, specifically connecting front-end to back-end code and how they work together.
  • Typescript
  • React
  • Custom domain hosting
  • Project management
  • Pair programming
  • Debugging with generative AI
  • Coping with stressful situations
  • Protecting our mental health through intentional brain breaks
  • Hackathon culture and strategies ## What's next for Patchworks The next major feature for Patchworks is a "Like" attribute that would be affected by a user clicking a "Like" button on a collaboration request post. This "Like" attribute would not impact the rate the post is suggested to users, however, it would be a component to the algorithm that decides how other posts are suggested to users. For example, if a user "Like"s a collaboration request on an open-source project that lists "Java" as a needed skill, the algorithm would then be biased to suggest more collaboration requests to the user that lists "Java" as a needed skill. Another feature would be for users to be able to comment on collaboration request post. The use case for comments would be for users to ask questions about the project, the technical needs, or simply offer "kudos". Commenting would not be a component to the algorithm that decides which posts are suggested to users. An additional feature for Patchworks is MFA for accounts. This feature, while seemingly simple, adds an intentional layer of protection for our users and the platform.
Share this project:

Updates

Submission history