|
| 1 | +<div align="center"> |
| 2 | + <img src="https://raw.githubusercontent.com/herin7/gitforme/main/gitforme/logo.png" alt="GitForMe Logo" width="150"/> |
| 3 | + <h1>GitForMe</h1> |
| 4 | + <p><strong>Supercharge your open-source journey. Understand any codebase in minutes.</strong></p> |
| 5 | + |
| 6 | + <p> |
| 7 | + <a href="https://github.com/herin7/gitforme/actions/workflows/main_gfm-backend.yml"><img src="https://github.com/herin7/gitforme/actions/workflows/main_gfm-backend.yml/badge.svg" alt="Backend CI"></a> |
| 8 | + <a href="https://github.com/herin7/gitforme/actions/workflows/azure-static-web-apps-thankful-dune-02c682800.yml"><img src="https://github.com/herin7/gitforme/actions/workflows/azure-static-web-apps-thankful-dune-02c682800.yml/badge.svg" alt="Frontend CI"></a> |
| 9 | + <a href="https://github.com/herin7/gitforme/blob/main/LICENSE"><img src="https://img.shields.io/badge/License-MIT-blue.svg" alt="License: MIT"></a> |
| 10 | +<!-- Will add this later <a href="https://github.com/herin7/gitforme/releases"><img src="https://img.shields.io/github/v/release/herin7/gitforme" alt="GitHub release"></a> --> |
| 11 | + <a href="https://github.com/herin7/gitforme/issues"><img src="https://img.shields.io/github/issues/herin7/gitforme" alt="Issues"></a> |
| 12 | + </p> |
| 13 | +</div> |
| 14 | + |
| 15 | +--- |
| 16 | + |
| 17 | +## 🚀 What is GitForMe? |
| 18 | + |
| 19 | +GitForMe is an intelligent code exploration platform designed to help open-source developers and contributors rapidly understand and engage with any GitHub repository. By leveraging Large Language Models (LLMs), it creates a "superfast context" of a codebase, offering insights, answering questions, and providing a clear path to making your first contribution. |
| 20 | + |
| 21 | +Simply paste a repository URL, and GitForMe generates a comprehensive, interactive dashboard that demystifies the architecture, identifies key areas, and helps you navigate the code with an AI-powered assistant, **GitBro**. |
| 22 | + |
| 23 | +## ✨ Key Features |
| 24 | + |
| 25 | +Based on the core components `gitformeUi.jsx` and `app.py`, GitForMe offers: |
| 26 | + |
| 27 | +* **🤖 AI-Powered Chatbot (GitBro)**: Ask questions about the codebase in natural language. GitBro uses context from the repository files to give you accurate, grounded answers. |
| 28 | +* **🌐 Interactive Repository Dashboard**: A centralized view that includes: |
| 29 | + * **Code Hotspots**: Visualize the most frequently changed files. |
| 30 | + * **Dependency Health**: Analyze project dependencies for risks and outdated packages. |
| 31 | + * **File & Directory Explorer**: Navigate the repository structure with ease. |
| 32 | + * **Issue Tracking**: View and understand open issues to find contribution opportunities. |
| 33 | +* **🧠 LLM Context Builder**: Select specific files or issues to build a focused context for the LLM, allowing for deeper, more specific analysis. |
| 34 | +* **Seamless GitHub Integration**: Log in with your GitHub account to get a personalized experience. |
| 35 | +* **Dynamic UI**: A fluid and responsive interface built with React and Framer Motion for a modern user experience. |
| 36 | + |
| 37 | +## 🏛️ Architecture Overview |
| 38 | + |
| 39 | +GitForMe operates on a modern, distributed architecture: |
| 40 | + |
| 41 | +* **Frontend**: A responsive web application built with **React** and **Vite**, using TailwindCSS for styling. It's responsible for the user interface and all client-side interactions. |
| 42 | +* **Backend Server**: A **Node.js** and **Express** server that handles user authentication, interacts with the GitHub API to fetch repository data, and manages application logic. |
| 43 | +* **LLM Server**: A **Python** and **Flask** server that powers the AI capabilities. It uses `sentence-transformers` to generate embeddings, `FAISS` for efficient similarity search, and streams responses from an Azure-hosted OpenAI model. |
| 44 | + |
| 45 | + |
| 46 | +## 🛠️ Getting Started |
| 47 | + |
| 48 | +To get a local copy up and running, follow these simple steps. |
| 49 | + |
| 50 | +### Prerequisites |
| 51 | + |
| 52 | +* Node.js and npm |
| 53 | +* Python 3.8+ and pip |
| 54 | +* Git |
| 55 | +* An Azure OpenAI API Key (or other LLM provider) |
| 56 | + |
| 57 | +### Installation |
| 58 | + |
| 59 | +1. **Clone the repository:** |
| 60 | + ```sh |
| 61 | + git clone [https://github.com/herin7/gitforme.git](https://github.com/herin7/gitforme.git) |
| 62 | + cd gitforme |
| 63 | + ``` |
| 64 | + |
| 65 | +2. **Setup the Backend Server:** |
| 66 | + ```sh |
| 67 | + cd server |
| 68 | + npm install |
| 69 | + # Create a .env file and add your GitHub credentials |
| 70 | + npm start |
| 71 | + ``` |
| 72 | + |
| 73 | +3. **Setup the LLM Server:** |
| 74 | + ```sh |
| 75 | + cd ../llm-server |
| 76 | + pip install -r requirements.txt |
| 77 | + # Create a .env file and add your AZURE_OPENAI_KEY and other credentials |
| 78 | + flask run |
| 79 | + ``` |
| 80 | + |
| 81 | +4. **Setup the Frontend:** |
| 82 | + ```sh |
| 83 | + cd ../gitforme |
| 84 | + npm install |
| 85 | + # Create a .env file with VITE_API_URL pointing to your backend server |
| 86 | + npm run dev |
| 87 | + ``` |
| 88 | + |
| 89 | +## 💖 How to Contribute |
| 90 | + |
| 91 | +We welcome contributions from the open-source community! If you're looking to help, here’s how you can get started: |
| 92 | +
|
| 93 | +1. **Fork the Project.** |
| 94 | +2. **Create your Feature Branch** (`git checkout -b feature/AmazingFeature`). |
| 95 | +3. **Commit your Changes** (`git commit -m 'Add some AmazingFeature'`). |
| 96 | +4. **Push to the Branch** (`git push origin feature/AmazingFeature`). |
| 97 | +5. **Open a Pull Request.** |
| 98 | +
|
| 99 | +### Good First Issues |
| 100 | +
|
| 101 | +Looking for a place to start? Check out these areas: |
| 102 | +* **Improve UI/UX**: Enhance the styling of components or improve the mobile responsiveness. |
| 103 | +* **Add More File Parsers**: Extend the `summarize_code` function in `app.py` to support more languages. |
| 104 | +* **Enhance Error Handling**: Improve error messages and user feedback across the application. |
| 105 | +* **Write Unit/Integration Tests**: We always need more tests! |
| 106 | +
|
| 107 | +## 📄 License |
| 108 | +
|
| 109 | +Distributed under the MIT License. See `LICENSE` for more information. |
| 110 | +
|
| 111 | +## 📧 Contact |
| 112 | +
|
| 113 | +Herin - [@herin7](https://github.com/herin7) |
| 114 | +
|
| 115 | +Project Link: [https://github.com/herin7/gitforme](https://github.com/herin7/gitforme) |
| 116 | +
|
| 117 | +--- |
0 commit comments