Skip to content

1sh-repalto/PRism

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

66 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PRism

PRism is a powerful tool designed for developers, open source enthusiasts, and newcomers alike. It tracks merged pull requests (PRs) from repositories of interest and provides insightful summaries generated by a Retrieval-Augmented Generation (RAG) pipeline. By analyzing code diffs, PRism delivers detailed insights into what each PR does and why it matters, helping users quickly understand code changes, coding styles, and code quality.

📸 Screenshots

🏠 Landing Page

Homepage

📖 Dashboard - Selecting Repository

Onboarding Pages

📚 Fetching PRs

Recommendations

👥 PR Summary Generation

Dashboard

Features

  • Merged PR Tracking: Monitor and track merged PRs across your favorite repositories.
  • Insightful Summaries: Automatically generated PR summaries that analyze code diffs to explain changes and their impact.
  • Educational Aid: Helps newcomers learn from established coding styles and best practices used in open source projects.
  • Enhanced Code Review: Assists maintainers and contributors in understanding and evaluating PRs quickly.
  • Future Chat Integration: Plans to integrate a chat feature with the RAG, allowing interactive querying about repositories and specific PRs.
  • Issues RAG: Upcoming functionality to generate summaries for issues, offering actionable insights and guidance.

Tech Stack

  • Frontend: React.js
  • Backend: Node.js
  • RAG Pipeline:
    • Python
    • Langchain
    • FastAPI
  • LLM Integration: Leveraging language models to interpret and summarize code diffs

Architecture Overview

  1. Frontend (React.js):
    Provides an intuitive user interface for exploring repositories, tracking PRs, and viewing summaries.

  2. Backend (Node.js):
    Manages API requests, user authentication, and repository tracking.

  3. RAG Pipeline (Python, Langchain, FastAPI):
    Analyzes code diffs from PRs using a Retrieval-Augmented Generation approach, generating detailed summaries and insights.

  4. LLM Integration:
    Utilizes language models to understand the context and significance of code changes, producing human-readable summaries.

Installation

Prerequisites

  • Node.js (v14 or above)
  • Python (v3.8 or above)
  • Package Manager (npm or yarn for Node.js, pip for Python)

Clone the Repository

git clone https://github.com/yourusername/prism.git
cd prism

Setup the Backend

Navigate to the backend directory and install dependencies:

cd backend
npm install

Start the Node.js server:

npm start

Setup the RAG Service

Navigate to the RAG service directory and install dependencies:

cd ../llm
pip install -r requirements.txt

Start the FastAPI server:

uvicorn main:app --reload

Setup the Frontend

Navigate to the frontend directory and install dependencies:

cd ../frontend
npm install

Start the React development server:

npm start

Usage

  1. Tracking PRs: Use the intuitive dashboard to subscribe to repositories and view tracked merged PRs.

  2. Viewing Summaries: Click on any PR to see the automatically generated summary. These insights will help you understand the code changes, the reasoning behind them, and their potential impact on the project.

  3. Future Interactions: Once the chat feature is implemented, you can interact with the RAG system to ask follow-up questions about specific repositories or PRs, further deepening your understanding.

Contributing

We welcome contributions from developers of all levels! If you would like to contribute:

Fork the repository.

Create a new branch for your feature or bug fix.

Commit your changes with clear messages.

Open a pull request detailing your changes.

For major changes, please open an issue first to discuss what you would like to change.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • JavaScript 83.7%
  • CSS 8.3%
  • Python 7.2%
  • HTML 0.8%