GitZen is a powerful web-based tool designed to help users extract and summarize code from public GitHub repositories. It simplifies the process of understanding and contributing to open-source projects by providing a concise summary of the repository's contents and purpose.
- GitHub Code Extraction: Easily extract all files and their contents from a public GitHub repository.
- Automated Code Summarization: Get AI-generated summaries using the Gemini to understand the key features and objectives of a repository.
- Customizable Extraction: Exclude/include files based on extensions, directories, and set a maximum file size in bytes to tailor the extraction process to your needs.
- Clipboard & Download Support: Copy extracted code and summaries to your clipboard or download them as plain text files.
- Interactive User Interface: Clean and intuitive design for a seamless user experience.
-
Frontend: React.js
-
Backend: Node.js with Express.js
-
APIs:
- GitHub REST API (for fetching repository data)
- Google Generative AI (for code summarization)
-
Dependencies:
axios
: For API requestsreact-icons
: For UI icons@google/generative-ai
: For integrating Google Generative AI
Directory structure:
└── sarahkhan20-gitzen/
├── README.md
├── LICENSE
├── package.json
├── public/
│ ├── index.html
│ ├── manifest.json
│ └── robots.txt
├── server/
│ ├── package-lock.json
│ ├── package.json
│ └── server.js
└── src/
├── App.css
├── App.js
├── App.test.js
├── index.css
├── index.js
├── reportWebVitals.js
├── setupTests.js
└── components/
├── ChatInterface.jsx
├── CodeExtractor.jsx
├── CodeSummarizer.jsx
├── Footer.jsx
└── Header.jsx
git clone https://github.com/YOUR_USERNAME/GitZen.git
cd GitZen
npm install
cd server
npm install
Create a .env file in the root directory and add your GitHub Personal Access Token and Groq API Key.
GITHUB_TOKEN=YOUR_GITHUB_ACCESS_TOKEN
GEMINI_API_KEY=YOUR_GEMINI_API_KEY
- Generate a GitHub Token from: GitHub Developer Settings
- Obtain a GEMINI API Key from: GEMINI Platform
Run the following command to start the app:
npm start
cd server
node server.js
The app will run locally at: http://localhost:3000
We welcome contributions to enhance GitZen!
-
Fork the repository.
-
Create a new branch:
git checkout -b feature-name
-
Commit your changes:
git commit -m "Add new feature"
-
Push to your branch:
git push origin feature-name
-
Open a Pull Request.
This project is licensed under the MIT License.
Developed with ❤️ by Sarah Khan.
- LinkedIn: Sarah Khan
- Email: sarahejaz77@gmail.com