An open API service indexing awesome lists of open source software.

https://github.com/daim-nickel-penny/graphiq

Ask all your graph related questions
https://github.com/daim-nickel-penny/graphiq

Last synced: 2 months ago
JSON representation

Ask all your graph related questions

Awesome Lists containing this project

README

        

# GraphIQ

GraphIQ Banner

GraphIQ is tool designed to streamline graph analysis. It allows you to upload graph images, parse their structure, and ask insightful questions about them. By automating the extraction of graph details such as axes, vertices, and contextual information, GraphIQ accelerates your analysis and helps uncover new insights.

---

## Features

- **Graph Analysis**: Extracts graph details such as statistical trends, scientific concepts, and contextual information.
- **Question-Answering**: Enables you to ask insightful questions about the extracted graph details.
- **Support Text and Image Input**: Accepts text and image inputs for graph analysis.
- **No Vendor Lock-In**: You decide! GraphIQ can easily be integrated with other LLMs. Ofers pre-built support for **20 text & vision LLMs**.

### 🛠️ Monorepo Architecture

GraphIQ utilizes a monorepo setup powered by **Turborepo**, enabling seamless development and build management:

- **Fully Typed**: Written in `TypeScript`, ensuring type safety and code quality.
- **React Frontend**: Built using `Vite` for a faster and optimized build. Also used `Zustand` for state management.
- **Express.js Backend**: Provides robust API endpoints and serves static assets in production.
- **Vitest**: Includes unit tests for the frontend and backend using `Vitest`.
- **JsDoc**: Includes JSDoc comments for better code documentation and maintainability.

### ✨ Key Highlights

- **Vite Proxy**: Proxies API requests from the frontend to the backend for smooth local development.
- **Shared Environment Variables**: Manages consistent configuration across applications using `dotenvx`.
- **Production-Ready**: Efficiently bundles the frontend into static files served by the backend.
- **Turbocharged Development**: Unified commands for building, linting, and running servers via Turborepo.

---

## Gallery

Chat Home


screen-intro

Easily Drag Drop Images


image request

Get Response


image response

Remebers the context


chat-window

Change the presets


screen presets

---

## Project Structure

```bash
/apps
/react # Frontend React application
/express # Backend Express.js application
/packages
/shared # Shared code
```

## Setup and Installation

Additionally, you can refer to `INSTALLATION.md` for detailed installation instructions.

### 1. Clone the repository:

```bash
git clone https://github.com/probir-sarkar/react-express-monorepo
cd react-express-monorepo
```

### 2. Install dependencies using PNPM:

```bash
pnpm install
```

### 3. Set up environment variables:

Create a `.env` file in the root directory to manage global variables across the monorepo.

### 4. Start development servers:

```bash
pnpm dev
```

This will start both the frontend (Vite on port `5173`) and backend (Express on port `3000`).

### 5. Build for production:

```bash
pnpm build
```

### 6. Start the production server:

```bash
pnpm start
```

# Development Server Setup

- The **frontend** runs on [localhost:5173](http://localhost:5173) (powered by Vite).
- The **backend** runs on [localhost:3000](http://localhost:3000) (powered by Express.js).
- All API requests to `/api` are proxied from the frontend to the backend.

## Proxying API Requests

All API requests to /api are automatically proxied from the frontend to the backend during development