Inspiration

The inspiration for GithubGuide came from our own experiences working with open-source projects and navigating through complex codebases on GitHub. We realized that understanding the purpose of each file and folder in a repository can be a daunting task, especially for beginners. Thus, we aimed to create a tool that simplifies this process and makes it easier for developers to explore and contribute to GitHub projects.

What it does

GithubGuide is a Google Chrome extension that takes any GitHub repository as input and explains the purpose of each file and folder in the repository. It uses the GitHub API to fetch repository contents and metadata, which are then processed and presented in an easily understandable format. This enables developers to quickly navigate and comprehend the structure of a repository, allowing them to save time and work more efficiently.

How we built it

We built GithubGuide as a team of four. Here's how we split the work among teammates 1, 2, 3, and 4:

  1. Build a Chrome extension using JavaScript, which serves as the user interface for interacting with the tool.
  2. Develop a comprehensive algorithm and data structures to efficiently manage and process the repository data and LLM-generated inferences.
  3. Configure a workflow to read repository contents into our chosen LLM ChatGPT model using a reader built on LLaMa - a connector between LLMs and external data sources.
  4. Build a server with Python Flask to communicate data between the Chrome extension and LLaMa, the LLM data connector.

Challenges we ran into

Throughout the development process, we encountered several challenges:

  1. Integrating the LLM data connector with the Chrome extension and the Flask server.
  2. Parsing and processing the repository data correctly.
  3. Engineering our ChatGPT prompts to get optimal results.

Accomplishments that we're proud of

We are proud of:

  1. Successfully developing a fully functional Chrome extension that simplifies the process of understanding GitHub repositories.
  2. Overcoming the technical challenges in integrating various components and technologies.
  3. Creating a tool that has the potential to assist developers, especially beginners, in their journey to contribute to open-source projects.

What we learned

Throughout this project, we learned:

  1. How to work with LLMs and external data connectors.
  2. The intricacies of building a Chrome extension, and how developers have very little freedom when developing browser extensions.
  3. The importance of collaboration, effective communication, and making sure everyone is on the same page within our team, especially when merging critically related modules.

What's next for GithubGuide

We envision the following improvements and features for GithubGuide:

  1. Expanding support for other browsers and platforms.
  2. Enhancing the accuracy and quality of the explanations provided by ChatGPT.
  3. Speeding up the pipeline.
  4. Collaborating with the open-source community to further refine and expand the project.

Built With

Share this project:

Updates