diff --git a/.gitmodules b/.gitmodules
new file mode 100644
index 0000000000000000000000000000000000000000..484fa3150f184a74c4d1bacfc531ce8b84025a14
--- /dev/null
+++ b/.gitmodules
@@ -0,0 +1,3 @@
+[submodule "prace/jk_web"]
+	path = prace/jk_web
+	url = git@gitlab.kam.mff.cuni.cz:jirikalvoda/jk-web.git
diff --git a/prace/jk_web b/prace/jk_web
new file mode 160000
index 0000000000000000000000000000000000000000..0693962e7de332d9f07a842f14246f34ff7cda46
--- /dev/null
+++ b/prace/jk_web
@@ -0,0 +1 @@
+Subproject commit 0693962e7de332d9f07a842f14246f34ff7cda46
diff --git a/prace/pyproject.toml b/prace/pyproject.toml
index 9d882d4dad8fa4e6f7a4a5cc4b18f78adb4cf468..1f4b0e11acf7aed52fac957c417b7c0a25b86d80 100644
--- a/prace/pyproject.toml
+++ b/prace/pyproject.toml
@@ -5,7 +5,7 @@ build-backend = "setuptools.build_meta"
 [project]
 name = "bakalarka"
 # version = "0.0.1"
-dynamic = ["version"]
+dynamic = ["version", "dependencies"]
 authors = [
   { name="Jiří Kalvoda", email="jirikalvoda@kam.mff.cuni.cz" },
 ]
@@ -16,15 +16,6 @@ classifiers = [
     "Operating System :: Linux",
 ]
 
-dependencies = [
-  "jk_web @ git+https://gitlab.kam.mff.cuni.cz/jirikalvoda/jk-web.git#egg=jk-web",
-  "numpy",
-  "kaleido",
-  "mathjax",
-  "scipy",
-  "scikit-learn",
-]
-
 [project.urls]
 "Homepage" = "https://gitlab.kam.mff.cuni.cz/jirikalvoda/binary-paint-shop-problem.git"
 
diff --git a/prace/setup.py b/prace/setup.py
new file mode 100644
index 0000000000000000000000000000000000000000..7d2c15a5e8e1d26908a108f214e88dd53bf58949
--- /dev/null
+++ b/prace/setup.py
@@ -0,0 +1,16 @@
+from pathlib import Path
+from setuptools import setup
+
+# This is where you add any fancy path resolution to the local lib:
+local_path: str = (Path(__file__).parent).as_uri()
+
+setup(
+    install_requires=[
+        f"jk_web @ {local_path}/jk_web",
+        "numpy",
+        "kaleido",
+        "mathjax",
+        "scipy",
+        "scikit-learn",
+    ]
+)