Skip to content

Commit 13f35fb

Browse files
committed
docs(readme): add routing, ranking, database and MinIO setup instructions
1 parent eb71801 commit 13f35fb

1 file changed

Lines changed: 72 additions & 1 deletion

File tree

README.md

Lines changed: 72 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,21 @@ This project is a **local web application** designed to compare symbolic executi
55

66
The system uses **PySymGym tools** to run symbolic execution on the dataset and evaluate the results. After execution completes, the results are sent to the **email address you provide**.
77

8+
## Features
9+
10+
- **Run Experiment** — upload an ONNX model, select test methods from the dataset, and compare it against the baseline strategy. Results (coverage, errors, timing) are delivered to your inbox.
11+
- **Model Ranking** — a public leaderboard of all published experiments, sorted by mean coverage. Shows per-experiment metrics: mean/median coverage, total tests, errors, and runtime.
12+
- **Publish Experiment** — submit a model to the ranking leaderboard. The experiment runs in Docker, computes metrics, and saves the result to the database. Supports cancellation while in progress.
13+
14+
The frontend is a multi-page React SPA using `react-router-dom`:
15+
16+
| Route | Page |
17+
|---|---|
18+
| `/` | Home — navigation hub |
19+
| `/experiment` | Run Experiment form |
20+
| `/ranking` | Model Ranking leaderboard |
21+
| `/ranking/publish` | Publish Experiment form |
22+
823
# Installation
924

1025
The repository contains **both frontend and backend components**, and **both must be launched** for the application to work.
@@ -13,7 +28,7 @@ The repository contains **both frontend and backend components**, and **both mus
1328

1429
## Email Communication (Gmail)
1530

16-
To enable email delivery of results, create a `.env` file containing your Gmail credentials:
31+
To enable email delivery of results, add Gmail credentials to your `.env` file:
1732

1833
```
1934
EMAIL=your_email@gmail.com
@@ -25,6 +40,45 @@ APP_PASSWORD=your_app_password
2540

2641
---
2742

43+
## Database (PostgreSQL)
44+
45+
The ranking leaderboard stores experiment results in a PostgreSQL database. Add the connection URL to your `.env` file:
46+
47+
```
48+
DB_URL=postgresql://user:password@localhost:5432/pysymbench
49+
```
50+
51+
The required table is created automatically on server startup. You can run a local PostgreSQL instance via Docker:
52+
53+
```
54+
docker run --name postgres-pysymbench -e POSTGRES_USER=user -e POSTGRES_PASSWORD=password \
55+
-e POSTGRES_DB=pysymbench -p 5432:5432 -d postgres
56+
```
57+
58+
---
59+
60+
## Object Storage (MinIO) — optional
61+
62+
When publishing experiments to the ranking, the ONNX model and result artifacts can be stored in MinIO. Add the following to your `.env` file:
63+
64+
```
65+
MINIO_ENDPOINT=localhost:9000
66+
MINIO_ACCESS_KEY=your_access_key
67+
MINIO_SECRET_KEY=your_secret_key
68+
MINIO_SECURE=false
69+
MINIO_BUCKET=pysymbench
70+
```
71+
72+
If not configured, artifact upload is skipped and only metrics are saved to the database. You can run a local MinIO instance via Docker:
73+
74+
```
75+
docker run --name minio -p 9000:9000 -p 9001:9001 \
76+
-e MINIO_ROOT_USER=your_access_key -e MINIO_ROOT_PASSWORD=your_secret_key \
77+
-d minio/minio server /data --console-address ":9001"
78+
```
79+
80+
---
81+
2882
## Backend Setup
2983

3084
1. Install **Python 3.14** and **Docker**, then install the project dependencies:
@@ -62,10 +116,27 @@ celery -A backend.utils.task worker --loglevel=info && uvicorn backend.main:app
62116
```
63117
cd frontend
64118
npm install
119+
npm install react-router-dom @types/react-router-dom
65120
```
66121

67122
3. Start the frontend development server:
68123

124+
```
125+
npm run dev
126+
```
127+
128+
Or build for production:
129+
69130
```
70131
npm run build
71132
```
133+
134+
### Frontend technology stack
135+
136+
| Package | Purpose |
137+
|---|---|
138+
| `react-router-dom` | Client-side routing between pages |
139+
| `@types/react-router-dom` | TypeScript types for react-router-dom |
140+
| `antd` | UI component library (forms, tables, buttons) |
141+
| `tailwindcss` | Utility-first CSS framework |
142+
| `vite` | Build tool and dev server |

0 commit comments

Comments
 (0)