|
1 | 1 | <div align="center"> |
2 | 2 | <img src="https://raw.githubusercontent.com/herin7/gitforme/main/gitforme/logo.png" alt="GitForMe Logo" width="150"/> |
3 | 3 | <h1>GitForMe</h1> |
4 | | - <p><strong>Supercharge your open-source journey. Understand any codebase in minutes.</strong></p> |
5 | | - |
| 4 | + <p><strong>Understand any GitHub repository in minutes, not days.</strong></p> |
| 5 | + <p>Your AI-powered co-pilot for navigating, understanding, and contributing to open-source projects.</p> |
| 6 | + <br/> |
6 | 7 | <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> |
| 8 | + <a href="https://www.gitforme.tech" target="_blank"><img src="https://img.shields.io/badge/Live_Demo-gitforme.tech-brightgreen?style=for-the-badge&logo=icloud" alt="Live Demo"></a> |
| 9 | + </p> |
| 10 | + <p> |
| 11 | + <a href="https://github.com/herin7/gitforme/releases"><img src="https://img.shields.io/github/v/release/herin7/gitforme?style=flat-square" alt="GitHub release"></a> |
| 12 | + <a href="https://github.com/herin7/gitforme/issues"><img src="https://img.shields.io/github/issues/herin7/gitforme?style=flat-square" alt="Issues"></a> |
| 13 | + <a href="https://github.com/herin7/gitforme/stargazers"><img src="https://img.shields.io/github/stars/herin7/gitforme?style=flat-square" alt="Stars"></a> |
12 | 14 | </p> |
13 | 15 | </div> |
14 | 16 |
|
15 | 17 | --- |
16 | 18 |
|
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. |
| 19 | +Jumping into a new, complex GitHub repository can feel like navigating an ocean without a map. That initial "where do I even start?" moment is a real blocker for developers who want to contribute to open-source. |
20 | 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**. |
| 21 | +**GitForMe** is an intelligent code exploration platform that solves this problem. Just paste a repository URL, and GitForMe generates a comprehensive, interactive dashboard that demystifies the codebase, helping you make your first contribution faster than ever. |
22 | 22 |
|
23 | 23 | ## ✨ Key Features |
24 | 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 | | - |
| 25 | +* **🤖 AI-Powered Chat (GitBro)**: Ask questions about the codebase in natural language. GitBro uses the repository's context to give you accurate, grounded answers. |
| 26 | +* **📊 Interactive Dashboard**: Get a bird's-eye view of any repository with: |
| 27 | + * **Code Hotspots**: Instantly see the most active and complex files. |
| 28 | + * **Dependency Analysis**: Check for outdated packages and potential security risks. |
| 29 | + * **Contribution Insights**: Find "Good First Issues" and understand contributor activity. |
| 30 | +* **🧠 Super Context Builder**: Select specific files, folders, or issues to create a focused context, then copy it to your favorite LLM (ChatGPT, Claude, Gemini) for deeper analysis. |
| 31 | +* **📂 Smart File Explorer**: Navigate the repository structure with an intuitive file tree. |
| 32 | +* **🚀 One-Click Setup**: Clone the repository and open it directly in VS Code with a single click. |
| 33 | + |
| 34 | +## 🛠️ Tech Stack |
| 35 | + |
| 36 | + |
| 37 | + |
| 38 | + |
| 39 | + |
| 40 | + |
| 41 | + |
| 42 | + |
| 43 | + |
| 44 | + |
| 45 | + |
| 46 | + |
| 47 | +## 🏛️ How It Works: Architecture |
| 48 | + |
| 49 | +GitForMe uses a microservice architecture to separate concerns and ensure scalability. |
| 50 | + |
| 51 | + |
| 52 | +1. **Frontend**: The user interacts with a responsive web app built with React, Vite, and Framer Motion. |
| 53 | +2. **Backend**: A Node.js/Express server handles user authentication, fetches repository data via the GitHub API, and coordinates with the LLM server. |
| 54 | +3. **LLM Server**: A Python/Flask server manages all AI-powered tasks. It creates vector embeddings of the code (`sentence-transformers`), stores them in a `FAISS` index for fast retrieval, and streams responses from the language model (e.g., Azure OpenAI). |
| 55 | +## 📸 Screenshots |
| 56 | +<div align="center" style="display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 20px; margin: 20px 0;"> |
| 57 | + <div> |
| 58 | + <img src="https://github.com/herin7/gitforme/raw/main/sc/ll3.png" alt="File Explorer" style="width: 100%; max-height: 300px; object-fit: contain; border: 1px solid #ddd; border-radius: 8px;"/> |
| 59 | + <p><em>Landing Page</em></p> |
| 60 | + </div> |
| 61 | +</div> |
45 | 62 |
|
46 | | -## 🛠️ Getting Started |
| 63 | +## 🚀 Get It Running Locally |
47 | 64 |
|
48 | | -To get a local copy up and running, follow these simple steps. |
| 65 | +Want to run GitForMe on your own machine? Here’s how. |
49 | 66 |
|
50 | 67 | ### Prerequisites |
| 68 | +* [Node.js](https://nodejs.org/) (v18+) and npm |
| 69 | +* [Python](https://www.python.org/) (v3.8+) and pip |
| 70 | +* [Git](https://git-scm.com/) |
| 71 | +* An Azure OpenAI API Key (or you can adapt the code for another LLM provider) |
51 | 72 |
|
52 | | -* Node.js and npm |
53 | | -* Python 3.8+ and pip |
54 | | -* Git |
55 | | -* An Azure OpenAI API Key (or other LLM provider) |
56 | 73 |
|
57 | | -### Installation |
| 74 | +### Installation Guide |
58 | 75 |
|
59 | | -1. **Clone the repository:** |
| 76 | +<details> |
| 77 | +<summary>Click to view step-by-step installation instructions</summary> |
| 78 | + |
| 79 | +1. **Clone the Repository** |
60 | 80 | ```sh |
61 | 81 | git clone [https://github.com/herin7/gitforme.git](https://github.com/herin7/gitforme.git) |
62 | 82 | cd gitforme |
63 | 83 | ``` |
64 | 84 |
|
65 | | -2. **Setup the Backend Server:** |
| 85 | +2. **Setup the Backend Server** |
66 | 86 | ```sh |
67 | 87 | cd server |
68 | 88 | npm install |
69 | | - # Create a .env file and add your GitHub credentials |
| 89 | + ``` |
| 90 | + Create a `.env` file and add your GitHub OAuth credentials: |
| 91 | + ```env |
| 92 | + GITHUB_CLIENT_ID=your_client_id |
| 93 | + GITHUB_CLIENT_SECRET=your_client_secret |
| 94 | + ``` |
| 95 | + Then, start the server: |
| 96 | + ```sh |
70 | 97 | npm start |
71 | 98 | ``` |
72 | 99 |
|
73 | | -3. **Setup the LLM Server:** |
| 100 | +3. **Setup the LLM Server** |
74 | 101 | ```sh |
75 | 102 | cd ../llm-server |
76 | 103 | pip install -r requirements.txt |
77 | | - # Create a .env file and add your AZURE_OPENAI_KEY and other credentials |
| 104 | + ``` |
| 105 | + Create a `.env` file and add your Azure OpenAI credentials: |
| 106 | + ```env |
| 107 | + AZURE_OPENAI_KEY=your_key |
| 108 | + AZURE_OPENAI_ENDPOINT=your_endpoint |
| 109 | + AZURE_OPENAI_DEPLOYMENT=your_deployment_name |
| 110 | + ``` |
| 111 | + Then, start the server: |
| 112 | + ```sh |
78 | 113 | flask run |
79 | 114 | ``` |
80 | 115 |
|
81 | | -4. **Setup the Frontend:** |
| 116 | +4. **Setup the Frontend** |
82 | 117 | ```sh |
83 | 118 | cd ../gitforme |
84 | 119 | npm install |
85 | | - # Create a .env file with VITE_API_URL pointing to your backend server |
| 120 | + ``` |
| 121 | + Create a `.env.local` file and add the URL of your backend server: |
| 122 | + ```env |
| 123 | + VITE_API_URL=http://localhost:3001 |
| 124 | + ``` |
| 125 | + Then, start the development server: |
| 126 | + ```sh |
86 | 127 | npm run dev |
87 | 128 | ``` |
| 129 | +Your local GitForMe instance should now be running at `http://localhost:5173`! |
| 130 | + |
| 131 | +</details> |
88 | 132 |
|
89 | 133 | ## 💖 How to Contribute |
90 | 134 |
|
91 | | -We welcome contributions from the open-source community! If you're looking to help, here’s how you can get started: |
| 135 | +We welcome contributions from the open-source community with open arms! If you're looking to help, here’s how you can get started. |
92 | 136 |
|
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.** |
| 137 | +1. Fork the Project |
| 138 | +2. Create your Feature Branch (`git checkout -b feature/AmazingFeature`) |
| 139 | +3. Commit your Changes (`git commit -m 'Add some AmazingFeature'`) |
| 140 | +4. Push to the Branch (`git push origin feature/AmazingFeature`) |
| 141 | +5. Open a Pull Request |
98 | 142 |
|
99 | 143 | ### 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. |
| 144 | +Looking for an easy way to start? Check out these areas: |
| 145 | +* **Improve UI/UX**: Enhance the styling of components or improve mobile responsiveness. |
103 | 146 | * **Add More File Parsers**: Extend the `summarize_code` function in `app.py` to support more languages. |
104 | 147 | * **Enhance Error Handling**: Improve error messages and user feedback across the application. |
105 | | -* **Write Unit/Integration Tests**: We always need more tests! |
| 148 | +* **Write Tests**: We always need more unit and integration tests! |
106 | 149 |
|
107 | 150 | ## 📄 License |
108 | 151 |
|
109 | | -Distributed under the MIT License. See `LICENSE` for more information. |
| 152 | +Distributed under the MIT License. See `LICENSE.txt` for more information. |
110 | 153 |
|
111 | 154 | ## 📧 Contact |
112 | 155 |
|
113 | 156 | Herin - [@herin7](https://github.com/herin7) |
114 | 157 |
|
115 | 158 | Project Link: [https://github.com/herin7/gitforme](https://github.com/herin7/gitforme) |
116 | | -
|
117 | | ---- |
|
0 commit comments