diff --git a/docs/30-quick-start.mdx b/docs/30-quick-start.mdx
index 4c9dcd9..62c0488 100644
--- a/docs/30-quick-start.mdx
+++ b/docs/30-quick-start.mdx
@@ -12,7 +12,46 @@ In this lab, we will be using Jupyter Notebooks, which is an interactive Python
Instruqt is a lab platform that provides cloud-based sandboxes which come pre-configured with all the tools you need to run this lab.
-**Navigate to the Instruqt lab using [this link](http://mdb.link/instruqt-jedee).** Fill out the form that appears and click **Submit and access**.
+Select your language below and navigate to the corresponding Instruqt lab. Fill out the form that appears and click **Submit and access**.
+
+
+
+
+:::info Java Lab
+You are setting up the **Java** version of this lab.
+:::
+
+**Navigate to the Instruqt lab using [this link](https://mdb.link/devrel-java-crud).** Fill out the form that appears and click **Submit and access**.
+
+
+
+
+:::info Python Lab
+You are setting up the **Python** version of this lab.
+:::
+
+**Navigate to the Instruqt lab using [this link](https://mdb.link/devrel-python-crud).** Fill out the form that appears and click **Submit and access**.
+
+
+
+
+:::info JavaScript Lab
+You are setting up the **JavaScript** version of this lab.
+:::
+
+**Navigate to the Instruqt lab using [this link](https://mdb.link/devrel-js-crud).** Fill out the form that appears and click **Submit and access**.
+
+
+
+
+:::info C# Lab
+You are setting up the **C#** version of this lab.
+:::
+
+**Navigate to the Instruqt lab using [this link](https://mdb.link/devrel-csharp-crud).** Fill out the form that appears and click **Submit and access**.
+
+
+
diff --git a/package-lock.json b/package-lock.json
index 8f3d469..6316a42 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -152,6 +152,7 @@
"version": "5.20.0",
"resolved": "https://registry.npmjs.org/@algolia/client-search/-/client-search-5.20.0.tgz",
"integrity": "sha512-KL1zWTzrlN4MSiaK1ea560iCA/UewMbS4ZsLQRPoDTWyrbDKVbztkPwwv764LAqgXk0fvkNZvJ3IelcK7DqhjQ==",
+ "peer": true,
"dependencies": {
"@algolia/client-common": "5.20.0",
"@algolia/requester-browser-xhr": "5.20.0",
@@ -299,6 +300,7 @@
"version": "7.26.7",
"resolved": "https://registry.npmjs.org/@babel/core/-/core-7.26.7.tgz",
"integrity": "sha512-SRijHmF0PSPgLIBYlWnG0hyeJLwXE2CgpsXaMOrtt2yp9/86ALw6oUlj9KYuZ0JN07T4eBMVIW4li/9S1j2BGA==",
+ "peer": true,
"dependencies": {
"@ampproject/remapping": "^2.2.0",
"@babel/code-frame": "^7.26.2",
@@ -1993,6 +1995,7 @@
"url": "https://opencollective.com/csstools"
}
],
+ "peer": true,
"engines": {
"node": ">=18"
},
@@ -2014,6 +2017,7 @@
"url": "https://opencollective.com/csstools"
}
],
+ "peer": true,
"engines": {
"node": ">=18"
}
@@ -2090,6 +2094,7 @@
"version": "7.0.0",
"resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.0.0.tgz",
"integrity": "sha512-9RbEr1Y7FFfptd/1eEdntyjMwLeghW1bHX9GWjXo19vx4ytPQhANltvVxDggzJl7mnWM+dX28kb6cyS/4iQjlQ==",
+ "peer": true,
"dependencies": {
"cssesc": "^3.0.0",
"util-deprecate": "^1.0.2"
@@ -2411,6 +2416,7 @@
"version": "7.0.0",
"resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.0.0.tgz",
"integrity": "sha512-9RbEr1Y7FFfptd/1eEdntyjMwLeghW1bHX9GWjXo19vx4ytPQhANltvVxDggzJl7mnWM+dX28kb6cyS/4iQjlQ==",
+ "peer": true,
"dependencies": {
"cssesc": "^3.0.0",
"util-deprecate": "^1.0.2"
@@ -3032,6 +3038,7 @@
"version": "3.7.0",
"resolved": "https://registry.npmjs.org/@docusaurus/core/-/core-3.7.0.tgz",
"integrity": "sha512-b0fUmaL+JbzDIQaamzpAFpTviiaU4cX3Qz8cuo14+HGBCwa0evEK0UYCBFY3n4cLzL8Op1BueeroUD2LYAIHbQ==",
+ "peer": true,
"dependencies": {
"@docusaurus/babel": "3.7.0",
"@docusaurus/bundler": "3.7.0",
@@ -3410,6 +3417,7 @@
"version": "3.7.0",
"resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-docs/-/plugin-content-docs-3.7.0.tgz",
"integrity": "sha512-GXg5V7kC9FZE4FkUZA8oo/NrlRb06UwuICzI6tcbzj0+TVgjq/mpUXXzSgKzMS82YByi4dY2Q808njcBCyy6tQ==",
+ "peer": true,
"dependencies": {
"@docusaurus/core": "3.7.0",
"@docusaurus/logger": "3.7.0",
@@ -4051,6 +4059,7 @@
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/@mdx-js/react/-/react-3.0.1.tgz",
"integrity": "sha512-9ZrPIU4MGf6et1m1ov3zKf+q9+deetI51zprKB1D/z3NOb+rUxxtEl3mCjW5wTGh6VhRdwPueh1oRzi6ezkA8A==",
+ "peer": true,
"dependencies": {
"@types/mdx": "^2.0.0"
},
@@ -4081,7 +4090,6 @@
"resolved": "https://registry.npmjs.org/@module-federation/runtime/-/runtime-0.5.1.tgz",
"integrity": "sha512-xgiMUWwGLWDrvZc9JibuEbXIbhXg6z2oUkemogSvQ4LKvrl/n0kbqP1Blk669mXzyWbqtSp6PpvNdwaE1aN5xQ==",
"optional": true,
- "peer": true,
"dependencies": {
"@module-federation/sdk": "0.5.1"
}
@@ -4091,7 +4099,6 @@
"resolved": "https://registry.npmjs.org/@module-federation/runtime-tools/-/runtime-tools-0.5.1.tgz",
"integrity": "sha512-nfBedkoZ3/SWyO0hnmaxuz0R0iGPSikHZOAZ0N/dVSQaIzlffUo35B5nlC2wgWIc0JdMZfkwkjZRrnuuDIJbzg==",
"optional": true,
- "peer": true,
"dependencies": {
"@module-federation/runtime": "0.5.1",
"@module-federation/webpack-bundler-runtime": "0.5.1"
@@ -4101,15 +4108,13 @@
"version": "0.5.1",
"resolved": "https://registry.npmjs.org/@module-federation/sdk/-/sdk-0.5.1.tgz",
"integrity": "sha512-exvchtjNURJJkpqjQ3/opdbfeT2wPKvrbnGnyRkrwW5o3FH1LaST1tkiNviT6OXTexGaVc2DahbdniQHVtQ7pA==",
- "optional": true,
- "peer": true
+ "optional": true
},
"node_modules/@module-federation/webpack-bundler-runtime": {
"version": "0.5.1",
"resolved": "https://registry.npmjs.org/@module-federation/webpack-bundler-runtime/-/webpack-bundler-runtime-0.5.1.tgz",
"integrity": "sha512-mMhRFH0k2VjwHt3Jol9JkUsmI/4XlrAoBG3E0o7HoyoPYv1UFOWyqAflfANcUPgbYpvqmyLzDcO+3IT36LXnrA==",
"optional": true,
- "peer": true,
"dependencies": {
"@module-federation/runtime": "0.5.1",
"@module-federation/sdk": "0.5.1"
@@ -4194,7 +4199,6 @@
"resolved": "https://registry.npmjs.org/@rspack/binding/-/binding-1.1.1.tgz",
"integrity": "sha512-BRFliHbErqWrUo9X9bdik9WTRi6EgrJSQbbUiVeIYgW4gzYdfHUohgTkWo2Byu36LZolKrEjq/Uq2A8q/tc0YA==",
"optional": true,
- "peer": true,
"optionalDependencies": {
"@rspack/binding-darwin-arm64": "1.1.1",
"@rspack/binding-darwin-x64": "1.1.1",
@@ -4217,8 +4221,7 @@
"optional": true,
"os": [
"darwin"
- ],
- "peer": true
+ ]
},
"node_modules/@rspack/binding-darwin-x64": {
"version": "1.1.1",
@@ -4230,8 +4233,7 @@
"optional": true,
"os": [
"darwin"
- ],
- "peer": true
+ ]
},
"node_modules/@rspack/binding-linux-arm64-gnu": {
"version": "1.1.1",
@@ -4243,8 +4245,7 @@
"optional": true,
"os": [
"linux"
- ],
- "peer": true
+ ]
},
"node_modules/@rspack/binding-linux-arm64-musl": {
"version": "1.1.1",
@@ -4256,8 +4257,7 @@
"optional": true,
"os": [
"linux"
- ],
- "peer": true
+ ]
},
"node_modules/@rspack/binding-linux-x64-gnu": {
"version": "1.1.1",
@@ -4269,8 +4269,7 @@
"optional": true,
"os": [
"linux"
- ],
- "peer": true
+ ]
},
"node_modules/@rspack/binding-linux-x64-musl": {
"version": "1.1.1",
@@ -4282,8 +4281,7 @@
"optional": true,
"os": [
"linux"
- ],
- "peer": true
+ ]
},
"node_modules/@rspack/binding-win32-arm64-msvc": {
"version": "1.1.1",
@@ -4295,8 +4293,7 @@
"optional": true,
"os": [
"win32"
- ],
- "peer": true
+ ]
},
"node_modules/@rspack/binding-win32-ia32-msvc": {
"version": "1.1.1",
@@ -4308,8 +4305,7 @@
"optional": true,
"os": [
"win32"
- ],
- "peer": true
+ ]
},
"node_modules/@rspack/binding-win32-x64-msvc": {
"version": "1.1.1",
@@ -4321,32 +4317,7 @@
"optional": true,
"os": [
"win32"
- ],
- "peer": true
- },
- "node_modules/@rspack/core": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/@rspack/core/-/core-1.1.1.tgz",
- "integrity": "sha512-khYNAho2evyc7N5mYk4K6B587ou/dN1CDCqWrSDeZZNFFQHtuEp5T3kL1ntsKY7agObQhI60osCYaxFUPs0yww==",
- "optional": true,
- "peer": true,
- "dependencies": {
- "@module-federation/runtime-tools": "0.5.1",
- "@rspack/binding": "1.1.1",
- "@rspack/lite-tapable": "1.0.1",
- "caniuse-lite": "^1.0.30001616"
- },
- "engines": {
- "node": ">=16.0.0"
- },
- "peerDependencies": {
- "@swc/helpers": ">=0.5.1"
- },
- "peerDependenciesMeta": {
- "@swc/helpers": {
- "optional": true
- }
- }
+ ]
},
"node_modules/@rspack/lite-tapable": {
"version": "1.0.1",
@@ -4549,6 +4520,7 @@
"version": "8.1.0",
"resolved": "https://registry.npmjs.org/@svgr/core/-/core-8.1.0.tgz",
"integrity": "sha512-8QqtOQT5ACVlmsvKOJNEaWmRPmcojMOzCz4Hs2BGG/toAp/K38LcsMRyLp349glq5AzJbCEeimEoxaX6v/fLrA==",
+ "peer": true,
"dependencies": {
"@babel/core": "^7.21.3",
"@svgr/babel-preset": "8.1.0",
@@ -4648,6 +4620,7 @@
"resolved": "https://registry.npmjs.org/@swc/core/-/core-1.10.12.tgz",
"integrity": "sha512-+iUL0PYpPm6N9AdV1wvafakvCqFegQus1aoEDxgFsv3/uNVNIyRaupf/v/Zkp5hbep2EzhtoJR0aiJIzDbXWHg==",
"hasInstallScript": true,
+ "peer": true,
"dependencies": {
"@swc/counter": "^0.1.3",
"@swc/types": "^0.1.17"
@@ -5524,6 +5497,7 @@
"version": "18.3.7",
"resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.7.tgz",
"integrity": "sha512-KUnDCJF5+AiZd8owLIeVHqmW9yM4sqmDVf2JRJiBMFkGvkoZ4/WyV2lL4zVsoinmRS/W3FeEdZLEWFRofnT2FQ==",
+ "peer": true,
"dependencies": {
"@types/prop-types": "*",
"csstype": "^3.0.2"
@@ -5831,6 +5805,7 @@
"version": "8.14.0",
"resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz",
"integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==",
+ "peer": true,
"bin": {
"acorn": "bin/acorn"
},
@@ -5881,6 +5856,7 @@
"version": "8.17.1",
"resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz",
"integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==",
+ "peer": true,
"dependencies": {
"fast-deep-equal": "^3.1.3",
"fast-uri": "^3.0.1",
@@ -5923,6 +5899,7 @@
"version": "5.20.0",
"resolved": "https://registry.npmjs.org/algoliasearch/-/algoliasearch-5.20.0.tgz",
"integrity": "sha512-groO71Fvi5SWpxjI9Ia+chy0QBwT61mg6yxJV27f5YFf+Mw+STT75K6SHySpP8Co5LsCrtsbCH5dJZSRtkSKaQ==",
+ "peer": true,
"dependencies": {
"@algolia/client-abtesting": "5.20.0",
"@algolia/client-analytics": "5.20.0",
@@ -6369,6 +6346,7 @@
"url": "https://github.com/sponsors/ai"
}
],
+ "peer": true,
"dependencies": {
"caniuse-lite": "^1.0.30001688",
"electron-to-chromium": "^1.5.73",
@@ -6630,6 +6608,7 @@
"version": "11.0.3",
"resolved": "https://registry.npmjs.org/chevrotain/-/chevrotain-11.0.3.tgz",
"integrity": "sha512-ci2iJH6LeIkvP9eJW6gpueU8cnZhv85ELY8w8WiFtNjMHA5ad6pQLaJo9mEly/9qUyCpvqX8/POVUTf18/HFdw==",
+ "peer": true,
"dependencies": {
"@chevrotain/cst-dts-gen": "11.0.3",
"@chevrotain/gast": "11.0.3",
@@ -7288,6 +7267,7 @@
"version": "7.0.0",
"resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.0.0.tgz",
"integrity": "sha512-9RbEr1Y7FFfptd/1eEdntyjMwLeghW1bHX9GWjXo19vx4ytPQhANltvVxDggzJl7mnWM+dX28kb6cyS/4iQjlQ==",
+ "peer": true,
"dependencies": {
"cssesc": "^3.0.0",
"util-deprecate": "^1.0.2"
@@ -7595,6 +7575,7 @@
"version": "3.30.3",
"resolved": "https://registry.npmjs.org/cytoscape/-/cytoscape-3.30.3.tgz",
"integrity": "sha512-HncJ9gGJbVtw7YXtIs3+6YAFSSiKsom0amWc33Z7QbylbY2JGMrA0yz4EwrdTScZxnwclXeEZHzO5pxoy0ZE4g==",
+ "peer": true,
"engines": {
"node": ">=0.10"
}
@@ -7980,6 +7961,7 @@
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/d3-selection/-/d3-selection-3.0.0.tgz",
"integrity": "sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ==",
+ "peer": true,
"engines": {
"node": ">=12"
}
@@ -9227,6 +9209,7 @@
"version": "6.12.6",
"resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
"integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
+ "peer": true,
"dependencies": {
"fast-deep-equal": "^3.1.1",
"fast-json-stable-stringify": "^2.0.0",
@@ -9416,6 +9399,7 @@
"version": "6.12.6",
"resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
"integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
+ "peer": true,
"dependencies": {
"fast-deep-equal": "^3.1.1",
"fast-json-stable-stringify": "^2.0.0",
@@ -14474,6 +14458,7 @@
"version": "6.12.6",
"resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
"integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
+ "peer": true,
"dependencies": {
"fast-deep-equal": "^3.1.1",
"fast-json-stable-stringify": "^2.0.0",
@@ -15027,6 +15012,7 @@
"url": "https://github.com/sponsors/ai"
}
],
+ "peer": true,
"dependencies": {
"nanoid": "^3.3.8",
"picocolors": "^1.1.1",
@@ -15882,6 +15868,7 @@
"version": "7.0.0",
"resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.0.0.tgz",
"integrity": "sha512-9RbEr1Y7FFfptd/1eEdntyjMwLeghW1bHX9GWjXo19vx4ytPQhANltvVxDggzJl7mnWM+dX28kb6cyS/4iQjlQ==",
+ "peer": true,
"dependencies": {
"cssesc": "^3.0.0",
"util-deprecate": "^1.0.2"
@@ -16625,6 +16612,7 @@
"version": "19.0.0",
"resolved": "https://registry.npmjs.org/react/-/react-19.0.0.tgz",
"integrity": "sha512-V8AVnmPIICiWpGfm6GLzCR/W5FXLchHop40W4nXBmdlEceh16rCN8O8LNWm5bh5XUX91fh7KpA+W0TgMKmgTpQ==",
+ "peer": true,
"engines": {
"node": ">=0.10.0"
}
@@ -16751,6 +16739,7 @@
"version": "19.0.0",
"resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.0.0.tgz",
"integrity": "sha512-4GV5sHFG0e/0AD4X+ySy6UJd3jVl1iNsNHdpad0qhABJ11twS3TTBnseqsKurKcsNqCEFeGL3uLpVChpIO3QfQ==",
+ "peer": true,
"dependencies": {
"scheduler": "^0.25.0"
},
@@ -16795,6 +16784,7 @@
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/@docusaurus/react-loadable/-/react-loadable-6.0.0.tgz",
"integrity": "sha512-YMMxTUQV/QFSnbgrP3tjDzLHRg7vsbMn8e9HAa8o/1iXoiomo48b7sk/kkmWEuWNDPJVlKSJRB6Y2fHqdJk+SQ==",
+ "peer": true,
"dependencies": {
"@types/react": "*"
},
@@ -16821,6 +16811,7 @@
"version": "5.3.4",
"resolved": "https://registry.npmjs.org/react-router/-/react-router-5.3.4.tgz",
"integrity": "sha512-Ys9K+ppnJah3QuaRiLxk+jDWOR1MekYQrlytiXxC1RyfbdsZkS5pvKAzCCr031xHixZwpnsYNT5xysdFHQaYsA==",
+ "peer": true,
"dependencies": {
"@babel/runtime": "^7.12.13",
"history": "^4.9.0",
@@ -18403,6 +18394,7 @@
"version": "6.12.6",
"resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
"integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
+ "peer": true,
"dependencies": {
"fast-deep-equal": "^3.1.1",
"fast-json-stable-stringify": "^2.0.0",
@@ -19035,6 +19027,7 @@
"version": "6.12.6",
"resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
"integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
+ "peer": true,
"dependencies": {
"fast-deep-equal": "^3.1.1",
"fast-json-stable-stringify": "^2.0.0",
@@ -19253,6 +19246,7 @@
"version": "5.96.1",
"resolved": "https://registry.npmjs.org/webpack/-/webpack-5.96.1.tgz",
"integrity": "sha512-l2LlBSvVZGhL4ZrPwyr8+37AunkcYj5qh8o6u2/2rzoPc8gxFJkLj1WxNgooi9pnoc06jh0BjuXnamM4qlujZA==",
+ "peer": true,
"dependencies": {
"@types/eslint-scope": "^3.7.7",
"@types/estree": "^1.0.6",
@@ -19479,6 +19473,7 @@
"version": "6.12.6",
"resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
"integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
+ "peer": true,
"dependencies": {
"fast-deep-equal": "^3.1.1",
"fast-json-stable-stringify": "^2.0.0",