When we made our first open source contributions, we had to learn from a lot of separate resources and it took a long time to get into the "explorative" mindset. We wanted to make a collaborative platform that has everyone pooling in their knowledge and insights to make this the canonical guide to contributing to open source

What it does

It is a collaborative platform with three main features:

  1. General Guide - This is meant to be the one stop collection of tips, insights and anything else that could help you dive into huge codebases and start contributing to them
  2. Stories - This is a section that is intended to showcase incredibly detailed accounts of how real people like you and me navigated a huge unknown codebase.
  3. Resources - A collection of cool resources that you can read up on after going through the guide.
  4. Playground - This is an interactive tool that can help you play with some of the tools mentioned in the guide. You can type in your code and it generates call graphs and UML diagrams for the code you wrote.

How we built it

We used Docusaurus as the platform for creating the guides. For the Playground, we created a Flask server that interfaced with tools like pygraph, Graphviz, pyreverse and on the front end used React.

Challenges we ran into

We were facing issues with encoding the code properly when sending to the backend, as well as when trying to return an image

Integrating the front end and the backend servers proved to be a bit tricky Debugging last minute errors on few minutes of sleep was certainly a challenge

Accomplishments that we are proud of

We got the end to end pipeline for the Playground and it is pretty cool to see our code get transformed into representative diagrams

We were able to collaborate very effectively

What we learned

We learned a lot about collaborating. This hackathon, we were able to use a lot of the team skills we built up over the past few months and were able to check them out in action.

We did a lot of pair programming, used Github the way it is meant to be used (with project boards, code reviews, issues, etc) and it was also an interesting experience collaborating together on one document.

On the technical side, we learned how to deal with string escapes and dealing with all issues by just encoding it and then decoding it on the other end.

What's next for OSS Guide

Invite more maintainers and contributors to add their insights and experiences
Flesh out the "playground" aspect of the site to make it more interactive
Add it into the MLH Handbook :)

Built With

Share this project: