Skip to content

Repository files navigation

Inquiro

AI-powered research discovery platform that matches your research interests with relevant scientific papers using intelligent semantic ranking.


📋 Prerequisites

Tool Required For Installation
Docker All setups docker.com
Python 3.11.14 — Development setup only python.org
Node.js 22.12.0+ — Development setup only nodejs.org

You also need an OpenAI API key for semantic ranking and paper analysis features. Get one at platform.openai.com.


🚀 Quick Start (Docker)

Run the entire stack — database, backend, frontend, and test data seeding — in Docker with a few commands.

  1. Create your environment file:

    cp .env.example .env
  2. Add your OpenAI API key by editing the .env file:

    OPENAI_API_KEY=sk-your-key-here
    
  3. Start all services:

    docker compose --profile full up -d

    This will automatically:

    • Start the PostgreSQL database (with pgvector)
    • Launch the backend, which creates the database schema on startup
    • Seed the database with test papers and a test user (test / My Test Project)
    • Serve the frontend via nginx

Once running, open http://localhost in your browser.

Service URL
Frontend http://localhost
Backend API http://localhost:8000
API Docs http://localhost:8000/docs

To stop all services: docker compose --profile full down


🛠️ Development Setup

For active development, run only the database in Docker and start the frontend and backend manually. This gives you hot-reload and direct access to the code.

🖥️ Frontend

  1. Navigate to the frontend directory:

    cd frontend
  2. Install dependencies:

    npm install
  3. Start the development server:

    npm run dev

    The frontend will be available at http://localhost:5173 (or the port shown in the console).

⚙️ Backend

  1. From the project root, start the database:

    docker compose up -d
  2. Navigate to the backend directory:

    cd backend
  3. Set up a Python environment (optional but recommended)

    Choose either a standard venv or an Anaconda environment.

    Option A — venv (Python 3.11.14)

    Ensure Python 3.11.14 is available on your system (python --version or python3 --version).

    Linux / macOS:

    python3.11 -m venv inquiro-env
    source inquiro-env/bin/activate

    Windows (PowerShell):

    py -3.11 -m venv inquiro-env
    inquiro-env\Scripts\activate
    Option B — Anaconda
    conda create -n inquiro-env python=3.11.14
    conda activate inquiro-env

    This ensures all dependencies install cleanly — especially libraries like torch, transformers, and scientific packages.

  4. Install dependencies:

    pip install -r requirements.txt
    pip install -r requirements-dev.txt
  5. Create a local environment file:

    Copy the example file and rename it to dev.env:

    Linux / macOS:

    cp .env.example dev.env

    Windows (PowerShell):

    copy .env.example dev.env

    Then open dev.env and add your OpenAI API key. Adjust other values if needed (e.g., database port, credentials).

  6. Install Git hooks:

    pre-commit install

    After this, formatters and linters will run automatically on every commit.

  7. Start the FastAPI server:

    uvicorn app.main:app --reload

    The API will be available at http://localhost:8000 API docs: http://localhost:8000/docs


🧪 API Testing with Bruno

The project includes a Bruno collection under /bruno for testing and exploring the backend API. Bruno is a lightweight, file-based API client that stores requests in plain text, making it well-suited for collaborative development and version control.

  1. Install Bruno — Download from usebruno.com/downloads.

  2. Open the collection — Launch Bruno, click "Open Collection", and select the /bruno/Inquiro Bruno folder from the project root.

  3. Select an environment — The /bruno/Inquiro Bruno/environments directory contains predefined environment files. For local development, select the Development environment.


🤖 AI Acknowledgement

AI-assisted tools, including ChatGPT, Claude (Code), and Cursor, were used during the development of this project for architectural planning, code generation, and debugging support. All AI-generated output was reviewed and adapted by the development team.

About

No description, website, or topics provided.

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages