You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
<em>AI-powered research discovery platform that matches your research interests with relevant scientific papers using intelligent semantic ranking.</em>
11
+
</p>
2
12
3
-
*Inquiro* is an AI-powered research discovery platform designed to match user research interests with relevant scientific papers using intelligent semantic ranking.
13
+
---
14
+
15
+
## 📋 Prerequisites
16
+
17
+
| Tool | Required For | Installation |
18
+
| --- | --- | --- |
19
+
|**Docker**| All setups |[docker.com](https://www.docker.com/products/docker-desktop/)|
20
+
|**Python**| 3.11.14 — Development setup only |[python.org](https://www.python.org/downloads/release/python-31114/)|
21
+
|**Node.js**| 22.12.0+ — Development setup only |[nodejs.org](https://nodejs.org/)|
22
+
23
+
You also need an **OpenAI API key** for semantic ranking and paper analysis features.
24
+
Get one at [platform.openai.com](https://platform.openai.com/).
4
25
5
26
---
6
27
7
-
## ⚙️ Development Setup
28
+
## 🚀 Quick Start (Docker)
29
+
30
+
Run the entire stack — database, backend, frontend, and test data seeding — in Docker with a few commands.
31
+
32
+
1.**Create your environment file:**
8
33
9
-
### 🧩 Prerequisites
34
+
```bash
35
+
cp .env.example .env
36
+
```
10
37
11
-
Make sure the following tools are installed on your system:
38
+
2.**Add your OpenAI API key** by editing the `.env` file:
12
39
13
-
| Tool | Recommended Version | Installation Link |
💡 **Note:** Docker is only required to run the PostgreSQL database locally.
20
-
The backend and frontend are started manually.
44
+
3.**Start all services:**
45
+
46
+
```bash
47
+
docker compose --profile full up -d
48
+
```
49
+
50
+
This will automatically:
51
+
- Start the PostgreSQL database (with pgvector)
52
+
- Launch the backend, which creates the database schema on startup
53
+
- Seed the database with test papers and a test user (`test` / `My Test Project`)
54
+
- Serve the frontend via nginx
55
+
56
+
Once running, open [http://localhost](http://localhost) in your browser.
57
+
58
+
| Service | URL |
59
+
| --- | --- |
60
+
| Frontend |[http://localhost](http://localhost)|
61
+
| Backend API |[http://localhost:8000](http://localhost:8000)|
62
+
| API Docs |[http://localhost:8000/docs](http://localhost:8000/docs)|
63
+
64
+
> To stop all services: `docker compose --profile full down`
21
65
22
66
---
23
67
24
-
## 🖥️ Frontend Setup
68
+
## 🛠️ Development Setup
69
+
70
+
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.
25
71
26
-
1.**Navigate to the frontend directory**:
72
+
### 🖥️ Frontend
73
+
74
+
1.**Navigate to the frontend directory:**
27
75
28
76
```bash
29
77
cd frontend
30
78
```
31
-
2.**Install dependencies**:
79
+
80
+
2.**Install dependencies:**
32
81
33
82
```bash
34
83
npm install
35
84
```
36
-
3.**Start the development server**:
85
+
86
+
3.**Start the development server:**
37
87
38
88
```bash
39
89
npm run dev
40
90
```
41
91
42
92
The frontend will be available at [http://localhost:5173](http://localhost:5173) (or the port shown in the console).
43
93
44
-
---
45
-
46
-
## ⚙️ Backend Setup
94
+
### ⚙️ Backend
47
95
48
-
1.**From the project root, start the database**:
96
+
1.**From the project root, start the database:**
49
97
50
98
```bash
51
99
docker compose up -d
52
100
```
53
-
2.**Navigate to the backend directory**:
101
+
102
+
2.**Navigate to the backend directory:**
54
103
55
104
```bash
56
105
cd backend
57
106
```
58
107
59
-
---
60
-
61
-
## (Optional but recommended) Create and activate a Python environment
108
+
3.**Set up a Python environment***(optional but recommended)*
62
109
63
-
You can choose **either** a standard `venv` (recommended if you already installed Python 3.11.14 manually)**or** an Anaconda environment.
110
+
Choose **either** a standard `venv`**or** an Anaconda environment.
64
111
65
-
### ✅ Option A — Create a virtual environment using `venv` (Python 3.11.14)
112
+
<details>
113
+
<summary><strong>Option A — venv (Python 3.11.14)</strong></summary>
66
114
67
-
Ensure Python **3.11.14** is available on your system (check with `python --version` or `python3 --version`).
115
+
Ensure Python **3.11.14** is available on your system (`python --version` or `python3 --version`).
68
116
69
-
🧠 **Linux / macOS**
117
+
**Linux / macOS:**
70
118
71
-
```bash
72
-
# Create a virtual environment using the correct Python version
73
-
python3.11 -m venv inquiro-env
74
-
75
-
# Activate it
76
-
source inquiro-env/bin/activate
77
-
```
78
-
79
-
🪟 **Windows (PowerShell)**
119
+
```bash
120
+
python3.11 -m venv inquiro-env
121
+
source inquiro-env/bin/activate
122
+
```
80
123
81
-
```bash
82
-
# Create a virtual environment
83
-
py -3.11 -m venv inquiro-env
124
+
**Windows (PowerShell):**
84
125
85
-
# Activate it
86
-
inquiro-env\Scripts\activate
87
-
```
126
+
```bash
127
+
py -3.11 -m venv inquiro-env
128
+
inquiro-env\Scripts\activate
129
+
```
88
130
131
+
</details>
89
132
90
-
### ✅ Option B — Create an environment using Anaconda (Python 3.11.14)
133
+
<details>
134
+
<summary><strong>Option B — Anaconda</strong></summary>
91
135
92
-
If you're using Conda, you can create a dedicated environment:
136
+
```bash
137
+
conda create -n inquiro-env python=3.11.14
138
+
conda activate inquiro-env
139
+
```
93
140
94
-
```bash
95
-
conda create -n inquiro-env python=3.11.14
96
-
conda activate inquiro-env
97
-
```
141
+
This ensures all dependencies install cleanly — especially libraries like `torch`, `transformers`, and scientific packages.
98
142
99
-
This ensures all dependencies install cleanly—especially libraries like `torch`, `transformers`, and scientific packages.
143
+
</details>
100
144
101
-
---
102
-
103
-
3.**Install dependencies**:
145
+
4.**Install dependencies:**
104
146
105
147
```bash
106
148
pip install -r requirements.txt
107
149
pip install -r requirements-dev.txt
108
150
```
109
-
110
-
4.**Create a local environment file**:
111
151
112
-
Copy the example file and rename it to dev.env:
152
+
5.**Create a local environment file:**
153
+
154
+
Copy the example file and rename it to `dev.env`:
155
+
156
+
**Linux / macOS:**
113
157
114
-
🧠 Linux / macOS
115
-
116
-
```bash
158
+
```bash
117
159
cp .env.example dev.env
118
160
```
119
-
120
-
🪟 Windows (PowerShell)
161
+
162
+
**Windows (PowerShell):**
121
163
122
164
```bash
123
165
copy .env.example dev.env
124
166
```
125
-
126
-
Then adjust the values if needed (e.g., database port, credentials).
127
167
128
-
5.**Install Git hooks**:
168
+
Then open `dev.env` and add your **OpenAI API key**. Adjust other values if needed (e.g., database port, credentials).
169
+
170
+
6.**Install Git hooks:**
129
171
130
172
```bash
131
173
pre-commit install
132
174
```
133
175
134
-
After this, the formatters and linters will run automatically every time you commit.
176
+
After this, formatters and linters will run automatically on every commit.
135
177
136
-
6.**Start the FastAPI server**:
178
+
7.**Start the FastAPI server:**
137
179
138
180
```bash
139
181
uvicorn app.main:app --reload
@@ -146,27 +188,16 @@ This ensures all dependencies install cleanly—especially libraries like `torch
146
188
147
189
## 🧪 API Testing with Bruno
148
190
149
-
The *Inquiro* project includes a [**Bruno**](https://www.usebruno.com) collection under `/bruno` for testing and exploring the backend API.
150
-
Bruno is a lightweight, file-based API client that stores requests in plain text, making it well-suited for collaborative development and version control.
151
-
152
-
### ⚙️ Setup
153
-
154
-
1.**Install Bruno**
155
-
156
-
Download and install Bruno from [usebruno.com/downloads](https://www.usebruno.com/downloads).
157
-
158
-
2.**Open the collection**
159
-
160
-
* Launch Bruno.
161
-
* Click **“Open Collection”** and select the `/bruno/Inquiro Bruno` folder from the project root.
191
+
The project includes a [**Bruno**](https://www.usebruno.com) 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.
162
192
163
-
3.**Select or configure an environment**
193
+
1.**Install Bruno** — Download from [usebruno.com/downloads](https://www.usebruno.com/downloads).
164
194
165
-
The `/bruno/Inquiro Bruno/environments` directory contains predefined environment files. For local development select the **_Development_** environment.
195
+
2.**Open the collection** — Launch Bruno, click **"Open Collection"**, and select the `/bruno/Inquiro Bruno` folder from the project root.
166
196
197
+
3.**Select an environment** — The `/bruno/Inquiro Bruno/environments` directory contains predefined environment files. For local development, select the **_Development_** environment.
167
198
168
199
---
169
200
170
201
## 🤖 AI Acknowledgement
171
202
172
-
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.
203
+
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.
0 commit comments