Inspiration
In 2018, 44 million repositories were created on GitHub. With an active community of 40 million users, Github is used by junior and senior developers alike.
On one hand, junior developers on GitHub often struggle to gain contributions on their repository unless they gain substantial experience, and on the other hand, senior developers interested in contributing often all contribute to popular repositories, run by companies with plenty of engineers. There is a lack of information about the repositories that do need help/features/bugs fixed for senior developers looking to contribute, which results in excessive focus on large repositories.
In a team brainstorming session for HackSC, Gaurang, an undergrad freshman studying computer science, complained that they would never get help on their repositories. Megan, a full stack developer, exclaimed that she found it hard to find repositories to make meaningful contributions to, since popular repositories got most of the contributions.
GitHelp is a website that connects developers who seek contributions to their repositories with developers who are willing to contribute.
What it does
GitHelp accounts allow you to work as a contributor or a project owner. The landing page prompts users to sign up for an account or login. After successfully logging in, users are redirected to a home page where collaborators can browse a catalogue of repositories that are seeking help. Tags are placed in the repository cards in the catalogue to make the purpose for contributions more clear.
Meanwhile, repository owners can use the home page to get their projects and issues noticed by uploading a ‘request for contribution’ on the website.
A contributor can view more details about the repository by clicking on a specific repository card on the catalogue. If they are impressed by the project and have knowledge about the issues, they can click on the ‘contribute’ button which redirects them to the GitHub repository, where they can view the code.
Collaborators can keep track of their contributions through their profile page, where they earn points based on the contributions they make. To receive online kudos and reputation, contributors receive emoji medals based on a ranking system that accumulates points they earn from each contribution. More points can be earned by both contributing to newer repositories and different repositories, as opposed to making multiple contributions to a single one.
The points system can be used by potential recruiters to see how many as well as what contributions, contributors on our website make.
How we built it
Since 3 members in the team were proficient in React.js, we built this app using the MERN stack. Most of the styling of the website was done using React bootstrap.
Additionally, Bootswatch was used to create a ‘gun grey’ color theme for the website to save time on styling.
MongoDB Atlas was used to store user data post registration. Material UI as well as font awesome was used to add special components on the website. Backend was built with Express and Node.js to record the sign in and registration of users.
Challenges we ran into
The challenge we faced is since we have different pages, it is hard to link those pages together. We struggled in coming up with a flow in the website. Given the 2 different use cases of our websites, contributor user and user seeking contributions, we faced challenges in designing the user experience of our website.
Also, we faced errors while hosting our website on Heroku, which were finally resolved.
We had members from 3 different time zones, EST, PST, and CST, which made it difficult to organize meetings while keeping everybody’s convenience in mind.
Since most of us were new to collaborative coding, we faced issues while merging our code on GitHub. It’s easy to get issues of conflict merging code which requires significant time to solve. However, we managed to learn a lot about project collaboration on GitHub.
Accomplishments that we're proud of
We are most proud of the originality of this idea and the real world problem that it fixes. This is the first hackathon for three members of this team so it was a steep learning curve for most members.
Our idea to include a points system was also a source for pride. We want to incentivize contributors to keep finding different repositories on our website, so we built a point system that rewards contributors more for helping different repositories rather than contributing to the same ones.
We are also thrilled to roll out a filter functionality that helps users easily find the projects they are interested in by searching for specific languages and taglines. We’re also proud of the tag feature on the repositories to make the requirements more clear.
What we learned
Our team was familiar with the tech stack that we used, but this project was a great opportunity to revise our React.js skills along with React Bootstrap. Emphasis was placed on designing the frontend of the website to understand the scope of the project. As a result, we learned and debated about various important aspects of UI/UX.
Since most of us were first time hackers, we learned about the rules and progression of hackathons. From the project, we learned that there are many things involved in a project like communication, ideation, collaboration, empathy for users, and taking help from peers.
We also learn from each other as we are from different places, different schools and different majors.
What's next for GitHelp
Since the GitHelp platform matches project owners and project contributors, better matching will be a continuous goal. This can be accomplished through a recommendation system based on user interest, technical knowledge and ability.
In an effort to make more connections among GitHub users, future work involves analysis of contributions to GitHub repositories. This analysis can determine the complexity of the problem solved or the amount added to a code base which can be visualized on meaningful graphs.
Log in or sign up for Devpost to join the conversation.