diff --git a/package-lock.json b/package-lock.json
index 2b50f9510..701f2f74b 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -33,6 +33,7 @@
"react-dom": "^17.0.1",
"react-ga4": "^1.4.1",
"react-i18next": "^12.0.0",
+ "react-qr-code": "^2.0.11",
"react-router-dom": "^5.2.0",
"recoil": "^0.7.5",
"socket.io-client": "^4.3.2",
@@ -20408,6 +20409,11 @@
"teleport": ">=0.2.0"
}
},
+ "node_modules/qr.js": {
+ "version": "0.0.0",
+ "resolved": "https://registry.npmjs.org/qr.js/-/qr.js-0.0.0.tgz",
+ "integrity": "sha512-c4iYnWb+k2E+vYpRimHqSu575b1/wKl4XFeJGpFmrJQz5I88v9aY2czh7s0w36srfCM1sXgC/xpoJz5dJfq+OQ=="
+ },
"node_modules/qs": {
"version": "6.11.1",
"resolved": "https://registry.npmjs.org/qs/-/qs-6.11.1.tgz",
@@ -20760,6 +20766,24 @@
"integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==",
"peer": true
},
+ "node_modules/react-qr-code": {
+ "version": "2.0.11",
+ "resolved": "https://registry.npmjs.org/react-qr-code/-/react-qr-code-2.0.11.tgz",
+ "integrity": "sha512-P7mvVM5vk9NjGdHMt4Z0KWeeJYwRAtonHTghZT2r+AASinLUUKQ9wfsGH2lPKsT++gps7hXmaiMGRvwTDEL9OA==",
+ "dependencies": {
+ "prop-types": "^15.8.1",
+ "qr.js": "0.0.0"
+ },
+ "peerDependencies": {
+ "react": "^16.x || ^17.x || ^18.x",
+ "react-native-svg": "*"
+ },
+ "peerDependenciesMeta": {
+ "react-native-svg": {
+ "optional": true
+ }
+ }
+ },
"node_modules/react-refresh": {
"version": "0.8.3",
"resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.8.3.tgz",
@@ -43116,6 +43140,11 @@
"integrity": "sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==",
"peer": true
},
+ "qr.js": {
+ "version": "0.0.0",
+ "resolved": "https://registry.npmjs.org/qr.js/-/qr.js-0.0.0.tgz",
+ "integrity": "sha512-c4iYnWb+k2E+vYpRimHqSu575b1/wKl4XFeJGpFmrJQz5I88v9aY2czh7s0w36srfCM1sXgC/xpoJz5dJfq+OQ=="
+ },
"qs": {
"version": "6.11.1",
"resolved": "https://registry.npmjs.org/qs/-/qs-6.11.1.tgz",
@@ -43381,6 +43410,15 @@
"integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==",
"peer": true
},
+ "react-qr-code": {
+ "version": "2.0.11",
+ "resolved": "https://registry.npmjs.org/react-qr-code/-/react-qr-code-2.0.11.tgz",
+ "integrity": "sha512-P7mvVM5vk9NjGdHMt4Z0KWeeJYwRAtonHTghZT2r+AASinLUUKQ9wfsGH2lPKsT++gps7hXmaiMGRvwTDEL9OA==",
+ "requires": {
+ "prop-types": "^15.8.1",
+ "qr.js": "0.0.0"
+ }
+ },
"react-refresh": {
"version": "0.8.3",
"resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.8.3.tgz",
diff --git a/package.json b/package.json
index 33519711c..1edcda604 100644
--- a/package.json
+++ b/package.json
@@ -28,6 +28,7 @@
"react-dom": "^17.0.1",
"react-ga4": "^1.4.1",
"react-i18next": "^12.0.0",
+ "react-qr-code": "^2.0.11",
"react-router-dom": "^5.2.0",
"recoil": "^0.7.5",
"socket.io-client": "^4.3.2",
diff --git a/public/graph.png b/public/graph.png
new file mode 100644
index 000000000..23a7ed284
Binary files /dev/null and b/public/graph.png differ
diff --git a/public/index.html b/public/index.html
index 37045b15f..25d39a181 100644
--- a/public/index.html
+++ b/public/index.html
@@ -33,7 +33,32 @@
/>
+
+
+
+
+
+
+
+
+
+
+
+
+
+