GitInsight is a powerful web application designed to give you a comprehensive overview of your recent GitHub activity. It offers two key features:
- Quick Summary: Get a snapshot of your activity with event counts (such as commits, pull requests, and more) broken down by repository.
- Smart Summary: Dive deeper with AI-driven insights! This feature leverages multiple LLM-powered personas to provide personalized feedback on your coding habits, helping you grow and improve as a developer.
Whether you're looking for a quick glance at your contributions or get brutally roasted on your skills, GitInsight has you covered.
demo.mp4
- Fetches all public events of a GitHub user
- Filters and stores the following in memory for each repo:
- Starred status
- Commit count and messages
- Pull Request Open count
- Pull Request Comment count and messages
- New Members added count
- Open Issues count
- Issue Comment count and messages
- LLM Parsing of GitHub Summary with the persona of
- Software Architect
- HR Recruiter
- Potential Partner
- One-page UI for both Quick & Smart Summary
- V1.0.0 Release
- Responsive UI for Phones
- Frontend: Thymeleaf for templating HTML, Bootstrap for CSS, HTMX for minimal JS
- Backend: Java, Maven, Spring Boot
- LLM: Gemini API
Prerequisites:
- Java and Maven
- Create a GitHub API key
- Create a Gemini API key
# Set Environment Variables
export GITHUB_ACCESS_KEY=github_pat_xxx
export GEMINI_ACCESS_KEY=xxxx
# Run the app
mvn spring-boot:run
# Build JAR
mvn clean package -DskipTests
Contributions to GitInsight are welcome! If you'd like to contribute, please follow these steps:
- Fork the Repository: Fork the project on GitHub.
- Create a Branch: Create a new branch for your feature or bug fix.
- Make Changes: Implement your changes and ensure they are well-tested.
- Submit a Pull Request: Submit a pull request with a detailed description of your changes.
This code is licensed under the MIT license.
This projects extends the functionality of a coding challenge in an attempt to make it more useful and accessible for everyone.