Skip to content

nh0397/ProfSync

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ProfSync

ProfSync is a web application designed to help students rate and review professors using the power of Large Language Models (LLM) combined with Retrieval-Augmented Generation (RAG). It enables seamless user authentication through Clerk, integrates Gemini API for generating professor insights, and stores vectorized data in Pinecone for efficient retrieval. ProfSync uses various APIs to facilitate these integrations, creating a smart and interactive platform for student reviews.

Features

  • User Authentication: Integrated with Clerk API for secure login and sign-up functionality.
  • LLM + RAG Integration: Uses a combination of LLM and Retrieval-Augmented Generation (RAG) to generate professor insights and analysis.
  • Vectorized Data Storage: Stores vectorized professor data in Pinecone for fast, scalable search and retrieval.
  • Customizable Prompts: You can modify the prompts used to generate professor insights by editing the gemini.js file.
  • API-Based Integrations: ProfSync uses an API-based architecture for all external service integrations.

Screenshots

Homepage

Login/Signup

Dashboard

Professor Insights

Tech Stack

  • Frontend: React.js
  • User Authentication: Clerk API
  • LLM and RAG: Gemini API
  • Vector Data Storage: Pinecone

Installation

To get a local copy up and running, follow these simple steps.

Prerequisites

Make sure you have the following installed:

Setup

  1. Clone the repository:

    git clone https://github.com/nh0397/ProfSync
    cd ProfSync
  2. Install dependencies:

    npm install
    
  3. Set up environment variables:

    Create a .env file in the root directory of the project and add the following:

    REACT_APP_GOOGLE_API_KEY=your-google-api-key
    REACT_APP_PINECONE_API_KEY=your-pinecone-api-key
    REACT_APP_CLERK_PUBLISHABLE_KEY=your-clerk-publishable-key
    CLERK_SECRET_KEY=your-clerk-secret-key
    REACT_APP_PINECONE_INDEX_NAME=rag
    REACT_APP_PINECONE_ENVIRONMENT=us-east-1
    REACT_APP_API_URL=your-api-url
    
  • You can get your Clerk publishable key from the Clerk API dashboard.
  • The Firebase API key is required for additional integrations (e.g., user analytics or database usage).

Running the App

To start the development server, run:

npm start

The app will be available at http://localhost:3000.

Backend of the app: https://github.com/nh0397/ProfSync-Backend

Learn More

Contributing

Contributions are welcome! Please follow these steps to contribute:

  • Fork the repository.
  • Create your feature branch: git checkout -b feature/YourFeature.
  • Commit your changes: git commit -m 'Add some feature'.
  • Push to the branch: git push origin feature/YourFeature.
  • Open a pull request.