From cf4f491f03d74ca7f49de695f94e9883bd1e3be7 Mon Sep 17 00:00:00 2001 From: limcaaarl <42115432+limcaaarl@users.noreply.github.com> Date: Sun, 3 Nov 2024 19:34:23 +0800 Subject: [PATCH] Collab enhancement + Chat + Homepage (#76) * Fix css issues After the change, the content of the components spill over when it's too long. Now, it should be containted within the boxes even if the content of each component is long (cherry picked from commit 6aa266b1ba0efd43ac928420038de3e3fad98054) * Add line wrapping for editor (cherry picked from commit fbb31e7038c0c01b323bc5590f9688d1a2c35e84) * Backbone of Chat Service: - Basic HTML and CSS for Chat - Basic Functionality for Chat (cherry picked from commit 8e153cfa592a7fd5c9c0a303200a3d1f5dfeaf20) * Add more languages to codemirror (cherry picked from commit a5a23c85b2a7f084905a5f27e124fb911bcbec0c) * Add highlight to splitter on hover (cherry picked from commit 849c37fd9e65dc7815e4f4c4026d9af738aa9337) * Fix bug for language selection Previously, the language selected would disappear if you refresh the page. Now, it's able to pick up the last language selected. (cherry picked from commit e639b214a4b7acd87bb72467ddcaf4b7dccd3663) * Update CSS and HTML for Chat Service (cherry picked from commit 951077c058b482e08df1f2a4f5fbb476a38c926d) * Update Chat Service - Update HTML and CSS for Chat - Update functionality to include timestamp (cherry picked from commit 014b85b93484c7ef7d4056beb542ba76cc0fcf24) * Update warning message for unsupported language (cherry picked from commit df9690aba9094615b4f332edbb228da1c86689b9) * Fix bug and refactor codes The previous commit introduced a bug where the editor's content is duplicated upon refresh. (cherry picked from commit d482a6595c9020227a2a615623b4745f905d299e) * Initialise chat component (cherry picked from commit 82143f3d52ea8ccad520893dd983cd09e578be32) * Refactor codes Moved websocket and ydoc init to collab component. This lets the ydoc to be shared to chat component without affecting the layout. Plus, it makes more sense that collab handles all this instead of the editor component (cherry picked from commit 03299719d3f5eaef8c9a7a83f6ce1db109a8e19b) * Remove redundant imports (cherry picked from commit 2da56a96211e6e4eabfdca301aa4ba79970301bd) * Fix styling issues Fixed the styling issues introduced by chatbox component (cherry picked from commit 05d47996853e8e50e18cde0418baf0b2c9d2619e) * Fix css issues After the change, the content of the components spill over when it's too long. Now, it should be containted within the boxes even if the content of each component is long (cherry picked from commit f959fecece90fbf1b5b60ce28a95d0a1439bbece) * Add line wrapping for editor (cherry picked from commit e4dfed2f3633c94a806a0acf2fc0efd7fa0ddb32) * Add more languages to codemirror (cherry picked from commit db98a1d1bc2daf1cf01e8af0ded7d790420c5bfb) * Add highlight to splitter on hover (cherry picked from commit 8672b34eefda45311306f4b2fa105dcb8a150543) * Fix bug for language selection Previously, the language selected would disappear if you refresh the page. Now, it's able to pick up the last language selected. (cherry picked from commit 49c6dd21acdb60eab25823ada94ba65893f46648) * Update warning message for unsupported language (cherry picked from commit 25349607e93bba447b1eaedf77ea42c2596832de) * Fix bug and refactor codes The previous commit introduced a bug where the editor's content is duplicated upon refresh. (cherry picked from commit 5aec692cc62f6bef99f43ab8d32add894d4fee13) * Fix linting (cherry picked from commit 2ff3ac0fdff76d663a093ce2692768ab3013c3a3) * Add indent with tab (cherry picked from commit c6e643292da2e23d65587be344eecf2bb7db789c) * Update Chat Service - Added Mute/Unmute Functionality (cherry picked from commit 807485f65b856084d71d8be92d0b506e0148995e) * Update Chat System - collaboration.component.ts: Change from user_id to access token - chat-box.component.ts: Change functionality such that user can`t see what the other user type during the muted period, even after he/she unmute (cherry picked from commit e43f6bc8713369aec57de7136ed942f3fda0f936) * Add Get Rooms Details By User - roomRoutes: Update routes - roomController: Add method to get room details by user - mongoDbService: Update findRoomsByUserId method (cherry picked from commit c8e5bb8cb785363c4a0a0dafe4dae7da687796a3) * Minor Fix to Method roomController: Add Users In Room Details Retrieved for method getRoomsByUserIdandStatusController (cherry picked from commit 92fdb518415cbb43bdbb5a223d14a3c9d52285f2) * Add layout for homepage (cherry picked from commit e6cddff31a5c993471af1571a5dff05a1815c740) * Integrate api calls and functionalities - Allow retrieval of active room sessions - Add routing for rejoining room - Add routing for going to match page (cherry picked from commit 0d02d286ebf4ee0f60f0c4ae726fd8f291aa17eb) * Update routing to direct to /home (cherry picked from commit bf6dd5e9df5d7f89c24fc7e71165159355e71b5a) * Update Collaboration Service README.md (cherry picked from commit 1228cea29640ece16b3602cf98fcee75156a7d55) * Oops - Uncommented api call for getting active sessions (cherry picked from commit 5095e4ae64b1884c15414ccde8be1908b2a790df) * Fix linting * Fix bugs * Add toast message when user tries to reenter inactive room * Update get active room response * Update api call for getting active sessions Added condition for isForfeited * Update budget * Fix linting * Minor Fix on Collaboration Service * Remove unnecessary console log * Fix typos * Add collab db into compose.dev.yml * Minor Fix Based On Comments - Change the API for getting rooms details using isForfeit and roomStatus - Change the room routes - Change the client way to call the updated API - Update README.md * Readjust chatbox css - Reduce padding to give more content space * Remove some languages and fix editor css - Removed frontend frameworks and data representation languages - Made the button for editor slightly smaller to match chat, and fix the spacing. * Add breakpoints for image size at homepage * Minor Fix to README.md for Collaboration Service --------- Co-authored-by: KhoonSun47 Co-authored-by: Samuel Lim --- compose.dev.yml | 4 + frontend/angular.json | 4 +- frontend/package-lock.json | 476 +++++++++++++++++- frontend/package.json | 12 + frontend/public/pair-programming.png | Bin 0 -> 387364 bytes .../src/_services/collab.guard.service.ts | 22 +- frontend/src/_services/collab.service.ts | 11 +- frontend/src/_services/toast.service.ts | 14 + frontend/src/app/account/login.component.ts | 4 +- .../src/app/account/register.component.ts | 4 +- frontend/src/app/app.routes.ts | 15 + .../chat-box/chat-box.component.css | 143 ++++++ .../chat-box/chat-box.component.html | 41 ++ .../chat-box/chat-box.component.spec.ts | 22 + .../chat-box/chat-box.component.ts | 135 +++++ .../src/app/collaboration/collab.model.ts | 21 +- .../collaboration/collaboration.component.css | 29 +- .../collaboration.component.html | 11 +- .../collaboration/collaboration.component.ts | 58 ++- .../editor/editor.component.html | 41 +- .../collaboration/editor/editor.component.ts | 293 +++++++---- .../src/app/collaboration/editor/languages.ts | 34 ++ .../forfeit-dialog.component.ts | 2 +- .../question-box/question-box.component.html | 16 +- .../submit-dialog/submit-dialog.component.ts | 4 +- .../app/collaboration/websocket-code.enum.ts | 4 + .../src/app/home/active-sessions.model.ts | 7 + frontend/src/app/home/home.component.css | 51 ++ frontend/src/app/home/home.component.html | 104 ++++ frontend/src/app/home/home.component.spec.ts | 22 + frontend/src/app/home/home.component.ts | 87 ++++ .../navigation-bar.component.html | 2 +- .../navigation-bar.component.ts | 10 +- package-lock.json | 2 +- services/collaboration/README.md | 158 +++--- .../src/controllers/roomController.ts | 68 ++- services/collaboration/src/events/broker.ts | 2 +- .../collaboration/src/middleware/request.ts | 1 - .../collaboration/src/routes/roomRoutes.ts | 12 +- .../src/services/mongodbService.ts | 29 +- .../src/services/webSocketService.ts | 2 +- services/match/src/events/broker.ts | 2 +- services/question/src/events/broker.ts | 2 +- 43 files changed, 1732 insertions(+), 249 deletions(-) create mode 100644 frontend/public/pair-programming.png create mode 100644 frontend/src/_services/toast.service.ts create mode 100644 frontend/src/app/collaboration/chat-box/chat-box.component.css create mode 100644 frontend/src/app/collaboration/chat-box/chat-box.component.html create mode 100644 frontend/src/app/collaboration/chat-box/chat-box.component.spec.ts create mode 100644 frontend/src/app/collaboration/chat-box/chat-box.component.ts create mode 100644 frontend/src/app/collaboration/editor/languages.ts create mode 100644 frontend/src/app/collaboration/websocket-code.enum.ts create mode 100644 frontend/src/app/home/active-sessions.model.ts create mode 100644 frontend/src/app/home/home.component.css create mode 100644 frontend/src/app/home/home.component.html create mode 100644 frontend/src/app/home/home.component.spec.ts create mode 100644 frontend/src/app/home/home.component.ts diff --git a/compose.dev.yml b/compose.dev.yml index d0215809ac..9d70909157 100644 --- a/compose.dev.yml +++ b/compose.dev.yml @@ -47,6 +47,10 @@ services: volumes: - /app/node_modules - ./services/collaboration:/app + + collaboration-db: + ports: + - 27020:27017 broker: ports: diff --git a/frontend/angular.json b/frontend/angular.json index 59d981aec0..eeacf89c31 100644 --- a/frontend/angular.json +++ b/frontend/angular.json @@ -37,8 +37,8 @@ "budgets": [ { "type": "initial", - "maximumWarning": "2MB", - "maximumError": "3MB" + "maximumWarning": "7MB", + "maximumError": "10MB" }, { "type": "anyComponentStyle", diff --git a/frontend/package-lock.json b/frontend/package-lock.json index becb841779..9a4f4f3d1b 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -16,7 +16,15 @@ "@angular/platform-browser": "^18.2.0", "@angular/platform-browser-dynamic": "^18.2.0", "@angular/router": "^18.2.0", + "@codemirror/commands": "^6.7.1", + "@codemirror/lang-cpp": "^6.0.2", + "@codemirror/lang-go": "^6.0.1", "@codemirror/lang-java": "^6.0.1", + "@codemirror/lang-javascript": "^6.2.2", + "@codemirror/lang-php": "^6.0.1", + "@codemirror/lang-python": "^6.1.6", + "@codemirror/lang-rust": "^6.0.1", + "@codemirror/lang-sql": "^6.8.0", "@codemirror/theme-one-dark": "^6.1.0", "codemirror": "^6.0.1", "primeflex": "^3.3.1", @@ -34,6 +42,8 @@ "@angular-devkit/build-angular": "^18.2.2", "@angular/cli": "^18.2.2", "@angular/compiler-cli": "^18.2.0", + "@prettier/plugin-php": "^0.22.2", + "@prettier/plugin-xml": "^3.4.1", "@types/jasmine": "~5.1.0", "angular-eslint": "18.3.1", "eslint": "^9.9.1", @@ -48,6 +58,8 @@ "prettier": "3.3.3", "prettier-eslint": "^16.3.0", "prettier-plugin-java": "^2.6.0", + "prettier-plugin-rust": "^0.1.9", + "prettier-plugin-sql": "^0.18.1", "typescript": "~5.5.2", "typescript-eslint": "8.2.0" } @@ -2667,9 +2679,9 @@ } }, "node_modules/@codemirror/commands": { - "version": "6.6.2", - "resolved": "https://registry.npmjs.org/@codemirror/commands/-/commands-6.6.2.tgz", - "integrity": "sha512-Fq7eWOl1Rcbrfn6jD8FPCj9Auaxdm5nIK5RYOeW7ughnd/rY5AmPg6b+CfsG39ZHdwiwe8lde3q8uR7CF5S0yQ==", + "version": "6.7.1", + "resolved": "https://registry.npmjs.org/@codemirror/commands/-/commands-6.7.1.tgz", + "integrity": "sha512-llTrboQYw5H4THfhN4U3qCnSZ1SOJ60ohhz+SzU0ADGtwlc533DtklQP0vSFaQuCPDn3BPpOd1GbbnUtwNjsrw==", "license": "MIT", "dependencies": { "@codemirror/language": "^6.0.0", @@ -2678,6 +2690,58 @@ "@lezer/common": "^1.1.0" } }, + "node_modules/@codemirror/lang-cpp": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/@codemirror/lang-cpp/-/lang-cpp-6.0.2.tgz", + "integrity": "sha512-6oYEYUKHvrnacXxWxYa6t4puTlbN3dgV662BDfSH8+MfjQjVmP697/KYTDOqpxgerkvoNm7q5wlFMBeX8ZMocg==", + "license": "MIT", + "dependencies": { + "@codemirror/language": "^6.0.0", + "@lezer/cpp": "^1.0.0" + } + }, + "node_modules/@codemirror/lang-css": { + "version": "6.3.0", + "resolved": "git+ssh://git@github.com/codemirror/lang-css.git#8bad51270d44d030f6ca45700ad827839358f518", + "license": "MIT", + "dependencies": { + "@codemirror/autocomplete": "^6.0.0", + "@codemirror/language": "^6.0.0", + "@codemirror/state": "^6.0.0", + "@lezer/common": "^1.0.2", + "@lezer/css": "^1.1.7" + } + }, + "node_modules/@codemirror/lang-go": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/@codemirror/lang-go/-/lang-go-6.0.1.tgz", + "integrity": "sha512-7fNvbyNylvqCphW9HD6WFnRpcDjr+KXX/FgqXy5H5ZS0eC5edDljukm/yNgYkwTsgp2busdod50AOTIy6Jikfg==", + "license": "MIT", + "dependencies": { + "@codemirror/autocomplete": "^6.0.0", + "@codemirror/language": "^6.6.0", + "@codemirror/state": "^6.0.0", + "@lezer/common": "^1.0.0", + "@lezer/go": "^1.0.0" + } + }, + "node_modules/@codemirror/lang-html": { + "version": "6.4.9", + "resolved": "https://registry.npmjs.org/@codemirror/lang-html/-/lang-html-6.4.9.tgz", + "integrity": "sha512-aQv37pIMSlueybId/2PVSP6NPnmurFDVmZwzc7jszd2KAF8qd4VBbvNYPXWQq90WIARjsdVkPbw29pszmHws3Q==", + "license": "MIT", + "dependencies": { + "@codemirror/autocomplete": "^6.0.0", + "@codemirror/lang-css": "^6.0.0", + "@codemirror/lang-javascript": "^6.0.0", + "@codemirror/language": "^6.4.0", + "@codemirror/state": "^6.0.0", + "@codemirror/view": "^6.17.0", + "@lezer/common": "^1.0.0", + "@lezer/css": "^1.1.0", + "@lezer/html": "^1.3.0" + } + }, "node_modules/@codemirror/lang-java": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/@codemirror/lang-java/-/lang-java-6.0.1.tgz", @@ -2688,6 +2752,71 @@ "@lezer/java": "^1.0.0" } }, + "node_modules/@codemirror/lang-javascript": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/@codemirror/lang-javascript/-/lang-javascript-6.2.2.tgz", + "integrity": "sha512-VGQfY+FCc285AhWuwjYxQyUQcYurWlxdKYT4bqwr3Twnd5wP5WSeu52t4tvvuWmljT4EmgEgZCqSieokhtY8hg==", + "license": "MIT", + "dependencies": { + "@codemirror/autocomplete": "^6.0.0", + "@codemirror/language": "^6.6.0", + "@codemirror/lint": "^6.0.0", + "@codemirror/state": "^6.0.0", + "@codemirror/view": "^6.17.0", + "@lezer/common": "^1.0.0", + "@lezer/javascript": "^1.0.0" + } + }, + "node_modules/@codemirror/lang-php": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/@codemirror/lang-php/-/lang-php-6.0.1.tgz", + "integrity": "sha512-ublojMdw/PNWa7qdN5TMsjmqkNuTBD3k6ndZ4Z0S25SBAiweFGyY68AS3xNcIOlb6DDFDvKlinLQ40vSLqf8xA==", + "license": "MIT", + "dependencies": { + "@codemirror/lang-html": "^6.0.0", + "@codemirror/language": "^6.0.0", + "@codemirror/state": "^6.0.0", + "@lezer/common": "^1.0.0", + "@lezer/php": "^1.0.0" + } + }, + "node_modules/@codemirror/lang-python": { + "version": "6.1.6", + "resolved": "https://registry.npmjs.org/@codemirror/lang-python/-/lang-python-6.1.6.tgz", + "integrity": "sha512-ai+01WfZhWqM92UqjnvorkxosZ2aq2u28kHvr+N3gu012XqY2CThD67JPMHnGceRfXPDBmn1HnyqowdpF57bNg==", + "license": "MIT", + "dependencies": { + "@codemirror/autocomplete": "^6.3.2", + "@codemirror/language": "^6.8.0", + "@codemirror/state": "^6.0.0", + "@lezer/common": "^1.2.1", + "@lezer/python": "^1.1.4" + } + }, + "node_modules/@codemirror/lang-rust": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/@codemirror/lang-rust/-/lang-rust-6.0.1.tgz", + "integrity": "sha512-344EMWFBzWArHWdZn/NcgkwMvZIWUR1GEBdwG8FEp++6o6vT6KL9V7vGs2ONsKxxFUPXKI0SPcWhyYyl2zPYxQ==", + "license": "MIT", + "dependencies": { + "@codemirror/language": "^6.0.0", + "@lezer/rust": "^1.0.0" + } + }, + "node_modules/@codemirror/lang-sql": { + "version": "6.8.0", + "resolved": "https://registry.npmjs.org/@codemirror/lang-sql/-/lang-sql-6.8.0.tgz", + "integrity": "sha512-aGLmY4OwGqN3TdSx3h6QeA1NrvaYtF7kkoWR/+W7/JzB0gQtJ+VJxewlnE3+VImhA4WVlhmkJr109PefOOhjLg==", + "license": "MIT", + "dependencies": { + "@codemirror/autocomplete": "^6.0.0", + "@codemirror/language": "^6.0.0", + "@codemirror/state": "^6.0.0", + "@lezer/common": "^1.2.0", + "@lezer/highlight": "^1.0.0", + "@lezer/lr": "^1.0.0" + } + }, "node_modules/@codemirror/language": { "version": "6.10.3", "resolved": "https://registry.npmjs.org/@codemirror/language/-/language-6.10.3.tgz", @@ -3944,6 +4073,39 @@ "integrity": "sha512-Z+R3hN6kXbgBWAuejUNPihylAL1Z5CaFqnIe0nTX8Ej+XlIy3EGtXxn6WtLMO+os2hRkQvm2yvaGMYliUzlJaw==", "license": "MIT" }, + "node_modules/@lezer/cpp": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@lezer/cpp/-/cpp-1.1.2.tgz", + "integrity": "sha512-macwKtyeUO0EW86r3xWQCzOV9/CF8imJLpJlPv3sDY57cPGeUZ8gXWOWNlJr52TVByMV3PayFQCA5SHEERDmVQ==", + "license": "MIT", + "dependencies": { + "@lezer/common": "^1.2.0", + "@lezer/highlight": "^1.0.0", + "@lezer/lr": "^1.0.0" + } + }, + "node_modules/@lezer/css": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/@lezer/css/-/css-1.1.9.tgz", + "integrity": "sha512-TYwgljcDv+YrV0MZFFvYFQHCfGgbPMR6nuqLabBdmZoFH3EP1gvw8t0vae326Ne3PszQkbXfVBjCnf3ZVCr0bA==", + "license": "MIT", + "dependencies": { + "@lezer/common": "^1.2.0", + "@lezer/highlight": "^1.0.0", + "@lezer/lr": "^1.0.0" + } + }, + "node_modules/@lezer/go": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@lezer/go/-/go-1.0.0.tgz", + "integrity": "sha512-co9JfT3QqX1YkrMmourYw2Z8meGC50Ko4d54QEcQbEYpvdUvN4yb0NBZdn/9ertgvjsySxHsKzH3lbm3vqJ4Jw==", + "license": "MIT", + "dependencies": { + "@lezer/common": "^1.2.0", + "@lezer/highlight": "^1.0.0", + "@lezer/lr": "^1.0.0" + } + }, "node_modules/@lezer/highlight": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/@lezer/highlight/-/highlight-1.2.1.tgz", @@ -3953,6 +4115,17 @@ "@lezer/common": "^1.0.0" } }, + "node_modules/@lezer/html": { + "version": "1.3.10", + "resolved": "https://registry.npmjs.org/@lezer/html/-/html-1.3.10.tgz", + "integrity": "sha512-dqpT8nISx/p9Do3AchvYGV3qYc4/rKr3IBZxlHmpIKam56P47RSHkSF5f13Vu9hebS1jM0HmtJIwLbWz1VIY6w==", + "license": "MIT", + "dependencies": { + "@lezer/common": "^1.2.0", + "@lezer/highlight": "^1.0.0", + "@lezer/lr": "^1.0.0" + } + }, "node_modules/@lezer/java": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/@lezer/java/-/java-1.1.3.tgz", @@ -3964,6 +4137,17 @@ "@lezer/lr": "^1.0.0" } }, + "node_modules/@lezer/javascript": { + "version": "1.4.19", + "resolved": "https://registry.npmjs.org/@lezer/javascript/-/javascript-1.4.19.tgz", + "integrity": "sha512-j44kbR1QL26l6dMunZ1uhKBFteVGLVCBGNUD2sUaMnic+rbTviVuoK0CD1l9FTW31EueWvFFswCKMH7Z+M3JRA==", + "license": "MIT", + "dependencies": { + "@lezer/common": "^1.2.0", + "@lezer/highlight": "^1.1.3", + "@lezer/lr": "^1.3.0" + } + }, "node_modules/@lezer/lr": { "version": "1.4.2", "resolved": "https://registry.npmjs.org/@lezer/lr/-/lr-1.4.2.tgz", @@ -3973,6 +4157,39 @@ "@lezer/common": "^1.0.0" } }, + "node_modules/@lezer/php": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@lezer/php/-/php-1.0.2.tgz", + "integrity": "sha512-GN7BnqtGRpFyeoKSEqxvGvhJQiI4zkgmYnDk/JIyc7H7Ifc1tkPnUn/R2R8meH3h/aBf5rzjvU8ZQoyiNDtDrA==", + "license": "MIT", + "dependencies": { + "@lezer/common": "^1.2.0", + "@lezer/highlight": "^1.0.0", + "@lezer/lr": "^1.1.0" + } + }, + "node_modules/@lezer/python": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/@lezer/python/-/python-1.1.14.tgz", + "integrity": "sha512-ykDOb2Ti24n76PJsSa4ZoDF0zH12BSw1LGfQXCYJhJyOGiFTfGaX0Du66Ze72R+u/P35U+O6I9m8TFXov1JzsA==", + "license": "MIT", + "dependencies": { + "@lezer/common": "^1.2.0", + "@lezer/highlight": "^1.0.0", + "@lezer/lr": "^1.0.0" + } + }, + "node_modules/@lezer/rust": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@lezer/rust/-/rust-1.0.2.tgz", + "integrity": "sha512-Lz5sIPBdF2FUXcWeCu1//ojFAZqzTQNRga0aYv6dYXqJqPfMdCAI0NzajWUd4Xijj1IKJLtjoXRPMvTKWBcqKg==", + "license": "MIT", + "dependencies": { + "@lezer/common": "^1.2.0", + "@lezer/highlight": "^1.0.0", + "@lezer/lr": "^1.0.0" + } + }, "node_modules/@listr2/prompt-adapter-inquirer": { "version": "2.0.15", "resolved": "https://registry.npmjs.org/@listr2/prompt-adapter-inquirer/-/prompt-adapter-inquirer-2.0.15.tgz", @@ -4487,6 +4704,33 @@ "url": "https://opencollective.com/unts" } }, + "node_modules/@prettier/plugin-php": { + "version": "0.22.2", + "resolved": "https://registry.npmjs.org/@prettier/plugin-php/-/plugin-php-0.22.2.tgz", + "integrity": "sha512-md0+7tNbsP0oy+wIP3KZZc6fzx1k1jtWaMjOy/gM8yU9f2BDYEi+iHOc/UNPihYvPI28zFTbjvlhH4QXQjQwNg==", + "dev": true, + "license": "MIT", + "dependencies": { + "linguist-languages": "^7.27.0", + "php-parser": "^3.1.5" + }, + "peerDependencies": { + "prettier": "^3.0.0" + } + }, + "node_modules/@prettier/plugin-xml": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/@prettier/plugin-xml/-/plugin-xml-3.4.1.tgz", + "integrity": "sha512-Uf/6/+9ez6z/IvZErgobZ2G9n1ybxF5BhCd7eMcKqfoWuOzzNUxBipNo3QAP8kRC1VD18TIo84no7LhqtyDcTg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@xml-tools/parser": "^1.0.11" + }, + "peerDependencies": { + "prettier": "^3.0.0" + } + }, "node_modules/@rollup/rollup-android-arm-eabi": { "version": "4.22.4", "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.22.4.tgz", @@ -5912,6 +6156,26 @@ "@xtuc/long": "4.2.2" } }, + "node_modules/@xml-tools/parser": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@xml-tools/parser/-/parser-1.0.11.tgz", + "integrity": "sha512-aKqQ077XnR+oQtHJlrAflaZaL7qZsulWc/i/ZEooar5JiWj1eLt0+Wg28cpa+XLney107wXqneC+oG1IZvxkTA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "chevrotain": "7.1.1" + } + }, + "node_modules/@xml-tools/parser/node_modules/chevrotain": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/chevrotain/-/chevrotain-7.1.1.tgz", + "integrity": "sha512-wy3mC1x4ye+O+QkEinVJkPf5u2vsrDIYW9G7ZuwFl6v/Yu0LwUuT2POsb+NUWApebyxfkQq6+yDfRExbnI5rcw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "regexp-to-ast": "0.5.0" + } + }, "node_modules/@xtuc/ieee754": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", @@ -6423,6 +6687,16 @@ "dev": true, "license": "MIT" }, + "node_modules/big-integer": { + "version": "1.6.52", + "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.52.tgz", + "integrity": "sha512-QxD8cf2eVqJOOz63z6JIN9BzvVs/dlySa5HGSBH5xtR8dPteIRQnBxxKqkNTiT6jbDTF6jAfrd4oMcND9RGbQg==", + "dev": true, + "license": "Unlicense", + "engines": { + "node": ">=0.6" + } + }, "node_modules/big.js": { "version": "5.2.2", "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", @@ -7774,6 +8048,13 @@ "node": ">=8" } }, + "node_modules/discontinuous-range": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/discontinuous-range/-/discontinuous-range-1.0.0.tgz", + "integrity": "sha512-c68LpLbO+7kP/b1Hr1qs8/BJ09F5khZGTxqxZuhzxpmwJKOgRFHJWIb9/KmqnqHhLdO55aOxFH/EGBvUQbL/RQ==", + "dev": true, + "license": "MIT" + }, "node_modules/dlv": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", @@ -9192,6 +9473,19 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/get-stdin": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-8.0.0.tgz", + "integrity": "sha512-sY22aA6xchAzprjyqmSEQv4UbAAzRN0L2dQB0NlN5acTTK9Don6nhoc3eAbUnpZiCANAMfd/+40kVdKfFygohg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/get-stream": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", @@ -10307,6 +10601,13 @@ "url": "https://github.com/chalk/supports-color?sponsor=1" } }, + "node_modules/jinx-rust": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/jinx-rust/-/jinx-rust-0.1.6.tgz", + "integrity": "sha512-qP+wtQL1PrDDFwtPKhNGtjWOmijCrKdfUHWTV2G/ikxfjrh+cjdvkQTmny9RAsVF0jiui9m+F0INWu4cuRcZeQ==", + "dev": true, + "license": "MIT" + }, "node_modules/jiti": { "version": "1.21.6", "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.6.tgz", @@ -10428,6 +10729,16 @@ ], "license": "MIT" }, + "node_modules/jsox": { + "version": "1.2.121", + "resolved": "https://registry.npmjs.org/jsox/-/jsox-1.2.121.tgz", + "integrity": "sha512-9Ag50tKhpTwS6r5wh3MJSAvpSof0UBr39Pto8OnzFT32Z/pAbxAsKHzyvsyMEHVslELvHyO/4/jaQELHk8wDcw==", + "dev": true, + "license": "MIT", + "bin": { + "jsox": "lib/cli.js" + } + }, "node_modules/karma": { "version": "6.4.4", "resolved": "https://registry.npmjs.org/karma/-/karma-6.4.4.tgz", @@ -11126,6 +11437,13 @@ "dev": true, "license": "MIT" }, + "node_modules/linguist-languages": { + "version": "7.27.0", + "resolved": "https://registry.npmjs.org/linguist-languages/-/linguist-languages-7.27.0.tgz", + "integrity": "sha512-Wzx/22c5Jsv2ag+uKy+ITanGA5hzvBZngrNGDXLTC7ZjGM6FLCYGgomauTkxNJeP9of353OM0pWqngYA180xgw==", + "dev": true, + "license": "MIT" + }, "node_modules/listr2": { "version": "8.2.4", "resolved": "https://registry.npmjs.org/listr2/-/listr2-8.2.4.tgz", @@ -12085,6 +12403,13 @@ "mkdirp": "bin/cmd.js" } }, + "node_modules/moo": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/moo/-/moo-0.5.2.tgz", + "integrity": "sha512-iSAJLHYKnX41mKcJKjqvnAN9sf0LMDTXDEvFv+ffuRR9a1MIuXLjMNL6EsnDHSkKLTWNqQQ5uo61P4EbU4NU+Q==", + "dev": true, + "license": "BSD-3-Clause" + }, "node_modules/mrmime": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-2.0.0.tgz", @@ -12192,6 +12517,29 @@ "dev": true, "license": "MIT" }, + "node_modules/nearley": { + "version": "2.20.1", + "resolved": "https://registry.npmjs.org/nearley/-/nearley-2.20.1.tgz", + "integrity": "sha512-+Mc8UaAebFzgV+KpI5n7DasuuQCHA89dmwm7JXw3TV43ukfNQ9DnBH3Mdb2g/I4Fdxc26pwimBWvjIw0UAILSQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "commander": "^2.19.0", + "moo": "^0.5.0", + "railroad-diagrams": "^1.0.0", + "randexp": "0.4.6" + }, + "bin": { + "nearley-railroad": "bin/nearley-railroad.js", + "nearley-test": "bin/nearley-test.js", + "nearley-unparse": "bin/nearley-unparse.js", + "nearleyc": "bin/nearleyc.js" + }, + "funding": { + "type": "individual", + "url": "https://nearley.js.org/#give-to-nearley" + } + }, "node_modules/needle": { "version": "3.3.1", "resolved": "https://registry.npmjs.org/needle/-/needle-3.3.1.tgz", @@ -12389,6 +12737,19 @@ "dev": true, "license": "MIT" }, + "node_modules/node-sql-parser": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/node-sql-parser/-/node-sql-parser-4.18.0.tgz", + "integrity": "sha512-2YEOR5qlI1zUFbGMLKNfsrR5JUvFg9LxIRVE+xJe962pfVLH0rnItqLzv96XVs1Y1UIR8FxsXAuvX/lYAWZ2BQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "big-integer": "^1.6.48" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/nopt": { "version": "7.2.1", "resolved": "https://registry.npmjs.org/nopt/-/nopt-7.2.1.tgz", @@ -13146,6 +13507,13 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/php-parser": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/php-parser/-/php-parser-3.1.5.tgz", + "integrity": "sha512-jEY2DcbgCm5aclzBdfW86GM6VEIWcSlhTBSHN1qhJguVePlYe28GhwS0yoeLYXpM2K8y6wzLwrbq814n2PHSoQ==", + "dev": true, + "license": "BSD-3-Clause" + }, "node_modules/picocolors": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.0.tgz", @@ -14057,6 +14425,55 @@ "url": "https://github.com/prettier/prettier?sponsor=1" } }, + "node_modules/prettier-plugin-rust": { + "version": "0.1.9", + "resolved": "https://registry.npmjs.org/prettier-plugin-rust/-/prettier-plugin-rust-0.1.9.tgz", + "integrity": "sha512-n1DTTJQaHMdnoG/+nKUvBm3EKsMVWsYES2UPCiOPiZdBrmuAO/pX++m7L3+Hz3uuhtddpH0HRKHB2F3jbtJBOQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "jinx-rust": "0.1.6", + "prettier": "^2.7.1" + } + }, + "node_modules/prettier-plugin-rust/node_modules/prettier": { + "version": "2.8.8", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", + "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", + "dev": true, + "license": "MIT", + "bin": { + "prettier": "bin-prettier.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/prettier-plugin-sql": { + "version": "0.18.1", + "resolved": "https://registry.npmjs.org/prettier-plugin-sql/-/prettier-plugin-sql-0.18.1.tgz", + "integrity": "sha512-2+Nob2sg7hzLAKJoE6sfgtkhBZCqOzrWHZPvE4Kee/e80oOyI4qwy9vypeltqNBJwTtq3uiKPrCxlT03bBpOaw==", + "dev": true, + "license": "MIT", + "dependencies": { + "jsox": "^1.2.119", + "node-sql-parser": "^4.12.0", + "sql-formatter": "^15.0.2", + "tslib": "^2.6.2" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/unts" + }, + "peerDependencies": { + "prettier": "^3.0.3" + } + }, "node_modules/pretty-format": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", @@ -14236,6 +14653,27 @@ ], "license": "MIT" }, + "node_modules/railroad-diagrams": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/railroad-diagrams/-/railroad-diagrams-1.0.0.tgz", + "integrity": "sha512-cz93DjNeLY0idrCNOH6PviZGRN9GJhsdm9hpn1YCS879fj4W+x5IFJhhkRZcwVgMmFF7R82UA/7Oh+R8lLZg6A==", + "dev": true, + "license": "CC0-1.0" + }, + "node_modules/randexp": { + "version": "0.4.6", + "resolved": "https://registry.npmjs.org/randexp/-/randexp-0.4.6.tgz", + "integrity": "sha512-80WNmd9DA0tmZrw9qQa62GPPWfuXJknrmVmLcxvq4uZBdYqb1wYoKTmnlGUchvVWe0XiLupYkBoXVOxz3C8DYQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "discontinuous-range": "1.0.0", + "ret": "~0.1.10" + }, + "engines": { + "node": ">=0.12" + } + }, "node_modules/randombytes": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", @@ -14371,6 +14809,13 @@ "dev": true, "license": "MIT" }, + "node_modules/regexp-to-ast": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/regexp-to-ast/-/regexp-to-ast-0.5.0.tgz", + "integrity": "sha512-tlbJqcMHnPKI9zSrystikWKwHkBqu2a/Sgw01h3zFjvYrMxEDYHzzoMZnUrbIfpTFEsoRnnviOXNCzFiSc54Qw==", + "dev": true, + "license": "MIT" + }, "node_modules/regexpu-core": { "version": "5.3.2", "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz", @@ -14532,6 +14977,16 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/ret": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.12" + } + }, "node_modules/retry": { "version": "0.12.0", "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", @@ -15421,6 +15876,21 @@ "dev": true, "license": "BSD-3-Clause" }, + "node_modules/sql-formatter": { + "version": "15.4.5", + "resolved": "https://registry.npmjs.org/sql-formatter/-/sql-formatter-15.4.5.tgz", + "integrity": "sha512-dxYn0OzEmB19/9Y+yh8bqD8kJx2S/4pOTM4QLKxQDh7K6lp1Sx9MhmiF9RUJHSVjfV72KihW5R1h6Kecy6O5qA==", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1", + "get-stdin": "=8.0.0", + "nearley": "^2.20.1" + }, + "bin": { + "sql-formatter": "bin/sql-formatter-cli.cjs" + } + }, "node_modules/ssri": { "version": "10.0.6", "resolved": "https://registry.npmjs.org/ssri/-/ssri-10.0.6.tgz", diff --git a/frontend/package.json b/frontend/package.json index 5d310e53ca..a940aa91c3 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -20,7 +20,15 @@ "@angular/platform-browser": "^18.2.0", "@angular/platform-browser-dynamic": "^18.2.0", "@angular/router": "^18.2.0", + "@codemirror/commands": "^6.7.1", + "@codemirror/lang-cpp": "^6.0.2", + "@codemirror/lang-go": "^6.0.1", "@codemirror/lang-java": "^6.0.1", + "@codemirror/lang-javascript": "^6.2.2", + "@codemirror/lang-php": "^6.0.1", + "@codemirror/lang-python": "^6.1.6", + "@codemirror/lang-rust": "^6.0.1", + "@codemirror/lang-sql": "^6.8.0", "@codemirror/theme-one-dark": "^6.1.0", "codemirror": "^6.0.1", "primeflex": "^3.3.1", @@ -38,6 +46,8 @@ "@angular-devkit/build-angular": "^18.2.2", "@angular/cli": "^18.2.2", "@angular/compiler-cli": "^18.2.0", + "@prettier/plugin-php": "^0.22.2", + "@prettier/plugin-xml": "^3.4.1", "@types/jasmine": "~5.1.0", "angular-eslint": "18.3.1", "eslint": "^9.9.1", @@ -52,6 +62,8 @@ "prettier": "3.3.3", "prettier-eslint": "^16.3.0", "prettier-plugin-java": "^2.6.0", + "prettier-plugin-rust": "^0.1.9", + "prettier-plugin-sql": "^0.18.1", "typescript": "~5.5.2", "typescript-eslint": "8.2.0" } diff --git a/frontend/public/pair-programming.png b/frontend/public/pair-programming.png new file mode 100644 index 0000000000000000000000000000000000000000..940dbe915bc78f3b5ac29b235b0df0d877338132 GIT binary patch literal 387364 zcmeFZc|6o>8$T|oq)6Gyl9UjkvSyD;b|GXNT9Bo&kDWP%)S*SlGGoggV`nf!NwSW8 zXDr$Gow5DyL8ZRm=llHqd%d1N&N=Fs&*!?Y^?kjs>mGk~Re4GZMhX%V5=wuj@=2Zd2Z?IeP<% zTNsT@Ur$@{(D>{}a)6YKocf%M_ka3<{LM-&j-}6%h z@_NL76X~3dTq(_{D(QdwJs{P=|0Y$RuQz8sg6zL2;oLbH*x~=Dnt=GFln2zJ#gG2C zH_CWVAOC+ToTvym6Dd*#cIv;q(VL{_%ul`j$482gNx-Ms|KtDuDei$nf&c6TdoOuP z?o8UF@L%6Z>R|R?&D>2rOI8^4U*AYJTKAtE^OqO}Y{0QN;s5RT{^wZ#bF81vPD=Ja z#{%*5zl^n)7XO#AfFk}^3is;m|4JcH#Q%RV)*CK3LR?KceC9hw1aWkx_Tv}KU0TC{ zfoAjf=^GH~wG+KA!gtHLeg6Uo=9dl}a8Mw`~?>a_a4~2d_wEsEe%{Pok>fU0fkGBhdeiHdH}fdjX%VtWN$=}ux z4jS(m{Zanlu@zcn-ZqDu-<66;+7XRwi)l6M%TwaP??Uyq+MN@4KUa z7&4Dk9CmheavVLF@8)K=Es9VbvJ@v!#KnKv*f4N06U&{gmfk3vxg>05M04^NmfZb8 zh4-8cbbLxvV!svM@nnp2ynVgAJiIkxAnY+>dhh<_d+E3DuCB2XKCiD>X;Thg{9878 z8Sh>Rw|I^H?S-IE>9kqh))IEQMw5jlj78y+C?aqL@20kn!)|ZFSnnvRjQ=GM**ng2 zGHSiZq!;_mt8!^}v8fCSovE4}pQ_ucrPlCY_Ygo(RioVr_Tp#9H+4=(wR@m1y`@w6 z%bLyi&e=lDn;mlx?>8q2ypUXC{mbmk@=BfuJDtXqV_3BBvthgBWM#3(IF_oF6`lGp1))zbbrsw0E*aG0i7T6XHxTwPta+l178N{$z?=B{=YCa$JW zuL?;+zSr`<7whWk%rZovA4o-oMM9D`TKTs(@+FO)B_IDY0LaJ%GrdVL{vv8)`(JOK zQ#$zi1azk40w%SHXFFdb`OVYC4NC<7%d*8;G*2il64`TdAaGJ~Gc>N!-={oVdVK)t zwLG9V((rfOnNxz~VmTRi?+>4xCdEm)ElV#g4|(zhDL6KJWKpV8SIjk9hMM{vIbzn! za<4J0g^Hm(*anj^($9b>p7OV{o2gaMaNo6fN{TrgFt=b0K{&D-SOD3 zmUeb{Pmv!sKA%57HCtdkEkf%{cmi)oTukVS;dlf>6$;U;h!Et{O6QYY_v(IRc0$szmw7Z`OiGYIyyD0^zI7ukIxK_mHI$yV{SPtSvYxL%@IrCpW? zK5dGxTeEz}zPvT_+)nl)(Bv{V>FyVf=zUp-$VMxBSzGq&DH={{JKiyZ^T!v=QcSedV zKx(QaU-o^+kvX+nTk@q>Zt6?fd!3qCFAUdULn3%7r@N$=mu1p!%*lYHHIcKT-Crl~TKl*n;hP-46xyC76C) zXn2M$QqS3SWW@>U#4`LxiUfyeyzpj~UzM@Un0|lwCSdHBL1|`9~$bV zZeN)EUNSyaySZ*4jM!*gPoqFA=aKshy^o!DEBi|@iiy>mj{K?{!0|~K?OV(=l7WcJa!3$LL092 z`+m1F|4`bbcA^9m$FrcN23sx)nkOs-(?huB2jw9w{03NN>Gmrh9hKQ-AVuM)Z+`qrkVt$+sA5gzegG9OW2NnUy`pX zcUTwmd*Uo|z_qMW<<6f4QW&5)Z1M)jAL4Z$LUsx)vS19+JuEC8Fcbzh=tdh-omf%` zby)vmV5&c8hHw9ubTMFU?5}zot^#0ym3V^DJ_++am1^=E6rgwvU1C#tRy>lm?r^dI zNSDqm>FMHWB}hp4*yfr_ARDbMv>*Q~eM|srpl~Yu`yNLwsNARHIi!{?-s`fx-Pski z9@RLeWmd*vw0-l~2qc2>jKuZr+Pm)+-RnyluN@klkS23I^#{s;o6>@GH<+Fr_S=o% zyccE{k=fFDY5WTjXoF!Shpxk8yDXc5(te&3450!nD(W-VO0?1VkUIzW3qyUbUIS!{ zkWSTCY`+~T`W_k5V|in}OYF;ZUEpNCU|Bdtxw$hQ-q71I*1T+*1j`kosMq0%XZbTO z{%^Ik{ygbxNvHWbYgq2oM(P3o%Plw6r z&1cG8y81`?V>~}Q@X9tpoq6pM6uJd56&OqRRW5`p42T*PUJ(;;*jTM`8{i6BjrPJQ z(M6+lRHgqqawItNaJR@kn%{b@mnA*uChwV%&$+IvFSQWDp{p$@seigVe|!E}`HV$7?uv;y-8RC0EuT zzu~2F=g_E-i6Hr3k75LmYO)HJ-Tx>$&@ssq3f-DY+JLL{YjHmc!lrY*5_7VemkhS!n7iR6DRF3YNnMEJPx8HFDUI5{ z65U?%PB0j3_!*n();dmUXtZ(b*~76)e;dfeo26kSdoU|PQ@qeiH__g9Wj zO7n)^viK`mJvT$LY>8}Q)*yAJO=FpmcuT?QTDeTgt(40gPOvAwNh2OD6 z%vTYhzTpkLvj6nAqNp=#^?BHC8tb*iz#sfPRIikRKkFEsDT10@?TOlO6-ksmKo~BF z2;Of#(BOr5lXztRs8#x%31zCuj~|b8kB&=yr~}g(mSg*PYTHfw(#vlrSkLenVVI|( zVJb;YvSg!<{|H_F%cw~*110SWNfBB5i!Zg*=2%RgH7r58r7d*3(t*1r#NnOj*KD~9 zGz_>%BUc#6@CviE(VQj>&3_)1j1e?I(8%1deUAh2V75%PX#jzCp?=tn6}`iLA|`kv z{nHZ8tAq=L>$PB6 z7De??6QoC^(8Gi;JMGN4ibjCaP<20HfajUl#w4nQQ^7I$&q58LOca1Jo_V+TIZU(< z8Pc`?iw9zCv~qfSawS3b4yVVHV7sBJw=_ER-{j-`-Wgdoj`PUdxAaL|eqX1fB)+=6 z0WB)weIk_d_k1qtHF&;M`tAKS{T7*#``k^e`qS+IEOG<)s4+S4D?bk%eH|h~Ox)RS zI$}_C3WgQ3(xnY8)9SzT;l8KPSKGzgY6l36$A$Jih-mp*zP{@BruZ96`MB>`%{!x&2DYRc?bxo zoLqz&$LG!z8er)`_j3KRPCDMg=78%|N5EfY`xFQWwaHele}B6+{PwZQZWls&@76|8 zPY;^)j?bGX#Fh?4tQ1Ve5*}j@9#`nCKV4c5HfK}5Jms}nxzOcKHkwZ}Z@dCJ20XK7Bi@m+zE2fYm93$Jp<-qUja^I8os32uRAKl_H=lrROna_7?(>=qKDZiXVaH`&CWd1#ign-`9D!D16r#GSx(8 z;;9nvK4tp5Fahh&p+NH zhPJjf<=O$)H1>cUv-4JY9VGj?3&43L1GZY$gXmDpfjv6wu`ocP6s*~DZj*DXArKEm z`{+~eTC=_ps5+$A=+*CHkdb@Hi7L{~K_6zJV`jE|u=d>D%eO<9SYcxj zk;%M9m(CAjCzv0FZ5r1DFl*!^9r1})Y;eOORSe2Yf87j9A6XJ+Vi)UNTwp*rg1n8F zJ@Qp!$6Nky1W&05h5N7oXW{zH=tfU3vPSw&d?WfJ(=A&G4~x;xRrK2-Sa~L-sWl4{ zTtJ-=LggDaq{)OHagV=rXw%eu>HdDK-*NXXotE6MV4nSAAppF^YK)Q8FYhS)Ku_dCNOsiIh z3-KJ`fuIXl{5i3M?oF4CVs@=x8UiQ`X!2B^?r+ym1B~F>+nH$#oJ2=2(&Nfn>c3^O zG4Auhp%wVTf)CRwo|wuMn`8+_V%mDoEmQ;!4^T@`?q&)xiNFsZ`{aOIb5*jHCb$kQ z?irMk4P?mYS=aX;H-Z?Ypt%%7j*r)E1yK8a-44_Qjh5f*z>st!1x(yiE?zO4OW{;) z3=pbU@k#*(F(jC`ox{W~4*r$=(-3lDiQbU1F)@)sdLVatg0A`XZi-Cu19jRUr6M*! z;divjED&>Mbav`U9e#YOa_goTqKebwmMt@m5`ieN8D4BGlDo5JXhq4S?H^jU*w}wX zQ{p5*$#S@GLAvO+=MCqGDyvr}#YswEt8a_ip1a-RK4jOw{cl_qKY1h5#iwU?b!dF? z0HjltbyvYV0tq5Ykt20m3%$rmPP>jpgg?I&T~#QmE=tVq(Ewt%q-RMCUMX_tR;HzT z&ZXD;sgZ0n;v#gXwK6Y|Swb#M_jb$MqnlX*knT@1Pk}H}1JP`B>Z6Dr-hI!OZJ=XB z9QkcXvhdr+#(k4Viq;#8c51&|gOU=l_Dj3s2HX=$e%5|3C)`@IY3M~6{3Oej9mw8n z7=3mn5|wYh68F0!h}H%%s;9uXuXw`?k50PGE$Vm0ZltFpyS<_)*bMXiEd*`i4bXP0 ztE-JenX@thzTMZ#-p6)a$t>UpK!EdcEofgRpNkP)A$pk9mU+c%>ouRJRIsW?^zbvN zjm%0Mlv*9Or_3JkQpcvTeKk=Ab7%({=uWPxNqTfd)qQN5T0%n01{1%0`Hrr%PgJcd z;S6j7^!Y(^WerWA;s3;M@4$>vupD`n-W3Hfc__YRP1HOG4yF$7cZpXM&(1rDl1!k_7 z^mNKsB%~uHgzVew*j5~&%-r$|{o`MBwklbtH&>hTnaXfK3mg+22w5$4uYHEL;Jz~3 z{XHL+Z-yKj{f;e4IN0_iLpJl;#ynODR)aI0PHLj%6`!-kjaUDq%`)XV4ur;vwy|1skXpn2u5yg-;n8SP3 zfw{`Wb*$yeJyFI1^(P@hN9!XVCpPaS3;elRbg0q#k^$f5D}|5OB_+g!-8s7RLpq0F znR!j14ZXG@sQA};dtLy~1u@sgogld<8!_Do(X?lqt;)Nu&qq}aHA0g+qL-Ms!Xx#> zT>9#R{a#jg1QJx5!Y}AV36~gQMkMsi^Fa2Du&!v{X;NYch08@V7TdX^fiU)fhl}%z zL!UoaPL<1cg>O^aT8y=XO06%dZTEakQ;^&hLdKFB^P;nJkXp) z;@SAt}R{A*g!jxrKur-UxM^wUtCGTug(8KHfRCaW-y6$(x?L(F zlX|!D_wh;KloVf+F*w9#Ft&H2;u=6uhmWLstpEg7EGpnWxmr^c%Y|5tF4;Pl8pRgK zW8%8z{DGVKsI7sXN5zjk(5k_pTDOTuV0(^nlb6Cy)opMFy|^mqK2#MZFyv-&FM&OyFC$I@k}7WM^0Fq^v~Zl!v-3 zv)V-{&�vQm*diA%GDBT7z#%vej|bbE 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

O$X(f)*Q&yh?sy)cS{@ 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%0DTLh@78oPN>Iin^YE@lU<|dULxGZ-BiON#uaW> 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ǹsZ` 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 b-!4(R5QoTD_7iyo;D0I#n(_s*H}3y09O(M$ literal 0 HcmV?d00001 diff --git a/frontend/src/_services/collab.guard.service.ts b/frontend/src/_services/collab.guard.service.ts index a4a9b0690b..84d135c47b 100644 --- a/frontend/src/_services/collab.guard.service.ts +++ b/frontend/src/_services/collab.guard.service.ts @@ -4,6 +4,7 @@ import { Observable, of, combineLatest } from 'rxjs'; import { catchError, map, switchMap } from 'rxjs/operators'; import { CollabService } from './collab.service'; import { AuthenticationService } from './authentication.service'; +import { ToastService } from './toast.service'; @Injectable({ providedIn: 'root', @@ -13,6 +14,7 @@ export class CollabGuardService implements CanActivate { private collabService: CollabService, private router: Router, private authService: AuthenticationService, + private toastService: ToastService, ) {} canActivate(route: ActivatedRouteSnapshot): Observable { @@ -22,7 +24,7 @@ export class CollabGuardService implements CanActivate { return combineLatest([roomId$, user$]).pipe( switchMap(([roomId, user]) => { if (!roomId || !user) { - this.router.navigate(['/matching']); + this.router.navigate(['/home']); return of(false); } @@ -32,14 +34,26 @@ export class CollabGuardService implements CanActivate { const isOpen = response.data.room_status; const isForfeit = response.data.users.find(roomUser => roomUser?.id === user.id)?.isForfeit; - if (!isFound || !isOpen || isForfeit) { - this.router.navigate(['/matching']); + if (!isOpen) { + this.toastService.showToast('You cannot enter this session as it already had ended.'); + this.router.navigate(['/home']); return false; } + if (isForfeit) { + this.toastService.showToast('You have already forfeited in this session.'); + this.router.navigate(['/home']); + return false; + } + if (!isFound) { + this.toastService.showToast('Are you sure you are in the right session room?'); + this.router.navigate(['/home']); + return false; + } + return true; }), catchError(() => { - this.router.navigate(['/matching']); + this.router.navigate(['/home']); return of(false); }), ); diff --git a/frontend/src/_services/collab.service.ts b/frontend/src/_services/collab.service.ts index ec8c961cd5..fde85853f5 100644 --- a/frontend/src/_services/collab.service.ts +++ b/frontend/src/_services/collab.service.ts @@ -19,13 +19,22 @@ export class CollabService extends ApiService { super(); } + getRoomsWithQuery(isActive: boolean, isForfeit: boolean) { + const params = new URLSearchParams({ + roomStatus: isActive.toString(), + isForfeit: isForfeit.toString(), + }).toString(); + + return this.http.get(`${this.apiUrl}/?${params}`); + } + /** * Retrieves all room IDs for a given user, but only if the room is still * active (room_status is true). One user can have multiple rooms, * and each room is identified by a unique room_id. */ getRooms() { - return this.http.get(this.apiUrl + 'user/rooms'); + return this.http.get(this.apiUrl + '/user/rooms'); } /** diff --git a/frontend/src/_services/toast.service.ts b/frontend/src/_services/toast.service.ts new file mode 100644 index 0000000000..cbc23d8e02 --- /dev/null +++ b/frontend/src/_services/toast.service.ts @@ -0,0 +1,14 @@ +import { Injectable } from '@angular/core'; +import { Subject } from 'rxjs'; + +@Injectable({ + providedIn: 'root', +}) +export class ToastService { + private toastSubject = new Subject(); + toast$ = this.toastSubject.asObservable(); + + showToast(message: string) { + this.toastSubject.next(message); + } +} diff --git a/frontend/src/app/account/login.component.ts b/frontend/src/app/account/login.component.ts index 8733b14b6c..45faf09541 100644 --- a/frontend/src/app/account/login.component.ts +++ b/frontend/src/app/account/login.component.ts @@ -26,7 +26,7 @@ export class LoginComponent { ) { //redirect to home if already logged in if (this.authenticationService.userValue) { - this.router.navigate(['/matching']); + this.router.navigate(['/home']); } } @@ -44,7 +44,7 @@ export class LoginComponent { // authenticationService returns an observable that we can subscribe to this.authenticationService.login(this.userForm.username, this.userForm.password).subscribe({ next: () => { - this.router.navigate(['/matching']); + this.router.navigate(['/home']); }, error: error => { this.isProcessingLogin = false; diff --git a/frontend/src/app/account/register.component.ts b/frontend/src/app/account/register.component.ts index 3324e4957e..01d73883f6 100644 --- a/frontend/src/app/account/register.component.ts +++ b/frontend/src/app/account/register.component.ts @@ -48,7 +48,7 @@ export class RegisterComponent { ) { // redirect to home if already logged in if (this.authenticationService.userValue) { - this.router.navigate(['/matching']); + this.router.navigate(['/home']); } } @@ -151,7 +151,7 @@ export class RegisterComponent { .pipe() .subscribe({ next: () => { - this.router.navigate(['/matching']); + this.router.navigate(['/home']); }, // error handling for registration because we assume there will be no errors with auto login error: error => { diff --git a/frontend/src/app/app.routes.ts b/frontend/src/app/app.routes.ts index 9b50f97036..59b77f39aa 100644 --- a/frontend/src/app/app.routes.ts +++ b/frontend/src/app/app.routes.ts @@ -2,6 +2,7 @@ import { Routes } from '@angular/router'; import { QuestionsComponent } from './questions/questions.component'; import { CollaborationComponent } from './collaboration/collaboration.component'; import { MatchingComponent } from './matching/matching.component'; +import { HomeComponent } from './home/home.component'; import { AuthGuardService } from '../_services/auth.guard.service'; import { CollabGuardService } from '../_services/collab.guard.service'; @@ -27,4 +28,18 @@ export const routes: Routes = [ component: MatchingComponent, canActivate: [AuthGuardService], }, + { + path: 'home', + component: HomeComponent, + canActivate: [AuthGuardService], + }, + { + path: '**', + redirectTo: '/home', + }, + { + path: '', + redirectTo: '/home', + pathMatch: 'full', + }, ]; diff --git a/frontend/src/app/collaboration/chat-box/chat-box.component.css b/frontend/src/app/collaboration/chat-box/chat-box.component.css new file mode 100644 index 0000000000..f98f01caf9 --- /dev/null +++ b/frontend/src/app/collaboration/chat-box/chat-box.component.css @@ -0,0 +1,143 @@ +.card { + display: flex; + flex-direction: column; + height: 100%; +} + +.container { + display: flex; + flex-direction: column; + flex: 1; + overflow: hidden; +} + +:host ::ng-deep .messages { + flex: 1; + overflow-y: auto; + padding: 10px; + background-color: var(--surface-section); + color: #ffffff; + border-radius: 5px; + margin-top: 5px; + width: 100%; + scrollbar-width: none; +} + +.input-container { + display: flex; + align-items: center; + padding: 10px 0; + background-color: var(--surface-section); + width: 100%; +} + +input[type='text'] { + flex: 1; + padding: 8px; + margin-right: 10px; + background-color: #333; + color: #fff; + border-radius: 5px; + border: none; + outline: none; +} + +button { + padding: 8px 15px; + background-color: #3d3d3d; + color: #fff; + border: none; + cursor: pointer; + border-radius: 5px; +} + +button:hover { + background-color: #555; +} + +.username-left { + font-weight: bold; + color: #e0e0e0; + font-size: 0.9em; + text-align: left; + margin-bottom: 2px; + align-self: flex-start; +} + +.username-right { + font-weight: bold; + color: #e0e0e0; + font-size: 0.9em; + text-align: right; + margin-bottom: 2px; + align-self: flex-end; +} + +.username-system-left { + color: #ff4c4c; + text-align: left; + font-style: italic; + width: 100%; +} + +.username-system-right { + color: #ff4c4c; + text-align: left; + font-style: italic; + width: 100%; +} + +.message-container { + margin-bottom: 10px; +} + +.message-left, .message-right { + display: flex; + flex-direction: column; +} + +.message-left { + align-items: flex-start; +} + +.message-right { + align-items: flex-end; +} + +.message-system { + text-align: left; + color: #ff4c4c; + font-style: italic; +} + +.message-box { + min-width: 100px; + max-width: 300px; + padding: 8px 12px; + background-color: #222; + border-radius: 4px; + color: #ffffff; + word-wrap: break-word; + white-space: pre-wrap; +} + +.timestamp { + font-size: 0.75em; + color: rgba(255, 255, 255, 0.6); + margin-top: 3px; + align-self: flex-start; +} + +.message-right .timestamp { + align-self: flex-end; +} + +button + button { + margin-left: 8px; +} + +input[disabled], button[disabled] { + background-color: #555; + cursor: not-allowed; + opacity: 0.6; +} diff --git a/frontend/src/app/collaboration/chat-box/chat-box.component.html b/frontend/src/app/collaboration/chat-box/chat-box.component.html new file mode 100644 index 0000000000..0182804dc3 --- /dev/null +++ b/frontend/src/app/collaboration/chat-box/chat-box.component.html @@ -0,0 +1,41 @@ +

diff --git a/frontend/src/app/collaboration/chat-box/chat-box.component.spec.ts b/frontend/src/app/collaboration/chat-box/chat-box.component.spec.ts new file mode 100644 index 0000000000..a7763cc079 --- /dev/null +++ b/frontend/src/app/collaboration/chat-box/chat-box.component.spec.ts @@ -0,0 +1,22 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { ChatBoxComponent } from './chat-box.component'; + +describe('ChatBoxComponent', () => { + let component: ChatBoxComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + imports: [ChatBoxComponent], + }).compileComponents(); + + fixture = TestBed.createComponent(ChatBoxComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/frontend/src/app/collaboration/chat-box/chat-box.component.ts b/frontend/src/app/collaboration/chat-box/chat-box.component.ts new file mode 100644 index 0000000000..0acd62ec40 --- /dev/null +++ b/frontend/src/app/collaboration/chat-box/chat-box.component.ts @@ -0,0 +1,135 @@ +import { AfterViewInit, Component, ElementRef, Input, ViewChild } from '@angular/core'; +import * as Y from 'yjs'; +import { AuthenticationService } from '../../../_services/authentication.service'; +import { WebsocketProvider } from 'y-websocket'; +import { NgClass, NgForOf } from '@angular/common'; +import { ScrollPanelModule } from 'primeng/scrollpanel'; + +@Component({ + selector: 'app-chat-box', + standalone: true, + imports: [NgForOf, NgClass, ScrollPanelModule], + templateUrl: './chat-box.component.html', + styleUrls: ['./chat-box.component.css'], +}) +export class ChatBoxComponent implements AfterViewInit { + @Input() ydoc!: Y.Doc; + @Input() wsProvider!: WebsocketProvider; + @Input() roomId!: string; + + @ViewChild('chatInput') chatInput!: ElementRef; + @ViewChild('messagesContainer') messagesContainer!: ElementRef; + + messages: { text: string; sender: string; timestamp: string; visibleTo: boolean }[] = []; + yChatArray!: Y.Array<{ text: string; sender: string; timestamp: string; visibleTo: boolean }>; + yMute!: Y.Map; + username!: string; + isMuted = false; + + constructor(private authService: AuthenticationService) {} + + ngAfterViewInit() { + this.getUsername(); + this.initYdoc(); + this.initYMap(); + this.initArrayListener(); + } + + getUsername() { + this.username = this.authService.userValue?.username || 'Guest'; + } + + initYdoc() { + this.yChatArray = this.ydoc.getArray('chatMessages'); + } + + initYMap() { + this.yMute = this.ydoc.getMap('muteStatus'); + + if (!this.yMute.has(this.username)) { + this.yMute.set(this.username, false); + } + + this.yMute.observe(() => { + this.isMuted = this.yMute.get(this.username) ?? false; + }); + } + + initArrayListener() { + this.yChatArray.observe(() => { + const allMessages = this.yChatArray.toArray(); + this.messages = allMessages.filter(message => { + return message.sender === this.username || message.visibleTo || message.sender === 'System'; + }); + this.scrollToBottom(); + }); + } + + sendMessage() { + if (this.isMuted) return; + const message = this.chatInput.nativeElement.value.trim(); + if (message) { + const timestamp = new Date().toLocaleString('en-SG', { + day: 'numeric', + month: 'numeric', + year: '2-digit', + hour: 'numeric', + minute: '2-digit', + hour12: true, + }); + + const otherUserMuted = this.yMute.get(this.getOtherUsername()) ?? false; + + const newMessage = { + text: message, + sender: this.username, + timestamp, + visibleTo: !otherUserMuted, + }; + + this.yChatArray.push([newMessage]); + this.chatInput.nativeElement.value = ''; + this.scrollToBottom(); + } + } + + toggleMute() { + const timestamp = new Date().toLocaleString('en-SG', { + day: 'numeric', + month: 'numeric', + year: '2-digit', + hour: 'numeric', + minute: '2-digit', + hour12: true, + }); + this.isMuted = !this.isMuted; + this.yMute.set(this.username, this.isMuted); + + if (this.isMuted) { + this.sendSystemMessage(`${this.username} has muted the conversation.`, timestamp); + } else { + this.sendSystemMessage(`${this.username} has un-muted the conversation.`, timestamp); + } + } + + sendSystemMessage(text: string, timestamp: string) { + const systemMessage = { + text, + sender: 'System', + timestamp, + visibleTo: true, + }; + this.yChatArray.push([systemMessage]); + } + + getOtherUsername(): string { + const allUsers = Array.from(this.yMute.keys()); + return allUsers.find(user => user !== this.username) || 'Guest'; + } + + scrollToBottom() { + setTimeout(() => { + this.messagesContainer.nativeElement.scrollTop = this.messagesContainer.nativeElement.scrollHeight; + }, 100); + } +} diff --git a/frontend/src/app/collaboration/collab.model.ts b/frontend/src/app/collaboration/collab.model.ts index 72f41328db..6b1fb3a9aa 100644 --- a/frontend/src/app/collaboration/collab.model.ts +++ b/frontend/src/app/collaboration/collab.model.ts @@ -12,7 +12,7 @@ export interface CloseRoomResponse { export interface RoomsResponse { status: string; - data: string[]; + data: RoomData[]; } export interface CollabUser { @@ -22,7 +22,7 @@ export interface CollabUser { isForfeit: boolean; } -interface RoomData { +export interface RoomData { room_id: string; users: CollabUser[]; question: Question; @@ -38,3 +38,20 @@ export interface awarenessData { colorLight: string; }; } + +// export interface Question { +// _id: string; +// id: number; +// description: string; +// difficulty: string; +// title: string; +// topics: string[]; +// } + +// export interface Question { +// id: number; +// description: string; +// difficulty: string; +// title: string; +// topics?: string[]; +// } diff --git a/frontend/src/app/collaboration/collaboration.component.css b/frontend/src/app/collaboration/collaboration.component.css index 035bef9897..5bb7706768 100644 --- a/frontend/src/app/collaboration/collaboration.component.css +++ b/frontend/src/app/collaboration/collaboration.component.css @@ -17,9 +17,36 @@ display: flex; flex-direction: column; align-items: center; - margin-top: 1rem; +} + +:host ::ng-deep .p-splitter { + border: 0px; } ::ng-deep .b1 { height: calc(100% - 80px); } + +:host .grid { + margin-right: 0rem; + margin-left: 0rem; + margin-top: 0rem; +} + +:host ::ng-deep .p-splitter-gutter:hover { + background-color: #bbbbbb; + cursor: pointer; +} + +:host ::ng-deep .p-splitter-gutter { + transition: background-color 0.3s ease; +} + +:host ::ng-deep .p-splitter-gutter-handle { + background-color: #bbbbbb; + cursor: pointer; +} + +:host ::ng-deep .p-splitter-gutter-handle { + transition: background-color 0.3s ease; +} diff --git a/frontend/src/app/collaboration/collaboration.component.html b/frontend/src/app/collaboration/collaboration.component.html index bcfb99efb4..d11092dca3 100644 --- a/frontend/src/app/collaboration/collaboration.component.html +++ b/frontend/src/app/collaboration/collaboration.component.html @@ -1,8 +1,13 @@ - + - +
+ + +
- +
+ +
diff --git a/frontend/src/app/collaboration/collaboration.component.ts b/frontend/src/app/collaboration/collaboration.component.ts index f2ba127e52..a718cfc0dc 100644 --- a/frontend/src/app/collaboration/collaboration.component.ts +++ b/frontend/src/app/collaboration/collaboration.component.ts @@ -1,13 +1,65 @@ -import { Component } from '@angular/core'; +import { Component, OnInit, OnDestroy } from '@angular/core'; import { QuestionBoxComponent } from './question-box/question-box.component'; import { EditorComponent } from './editor/editor.component'; import { SplitterModule } from 'primeng/splitter'; +import { ChatBoxComponent } from './chat-box/chat-box.component'; +import * as Y from 'yjs'; +import { WebsocketProvider } from 'y-websocket'; +import { RoomService } from './room.service'; +import { AuthenticationService } from '../../_services/authentication.service'; +import { WebSocketCode } from './websocket-code.enum'; +import { Router } from '@angular/router'; +import { environment } from '../../environments/environment'; @Component({ selector: 'app-collaboration', standalone: true, - imports: [QuestionBoxComponent, EditorComponent, SplitterModule], + imports: [QuestionBoxComponent, EditorComponent, SplitterModule, ChatBoxComponent], templateUrl: './collaboration.component.html', styleUrl: './collaboration.component.css', }) -export class CollaborationComponent {} +export class CollaborationComponent implements OnInit, OnDestroy { + ydoc!: Y.Doc; + roomId!: string; + wsProvider!: WebsocketProvider; + + constructor( + private roomService: RoomService, + private authService: AuthenticationService, + private router: Router, + ) {} + + ngOnDestroy() { + // This lets the client to disconnect from the websocket on re-route to another page. + this.wsProvider.destroy(); + } + + ngOnInit() { + this.initRoomId(); + this.initConnection(); + } + + initRoomId() { + this.roomService.getRoomId().subscribe(id => { + this.roomId = id!; + }); + } + + initConnection() { + this.ydoc = new Y.Doc(); + + const websocketUrl = environment.wsUrl + 'collaboration/'; + this.wsProvider = new WebsocketProvider(websocketUrl, this.roomId, this.ydoc, { + params: { + accessToken: this.authService.userValue?.accessToken || '', + }, + }); + + this.wsProvider.ws!.onclose = (event: { code: number; reason: string }) => { + if (event.code === WebSocketCode.AUTH_FAILED || event.code === WebSocketCode.ROOM_CLOSED) { + console.error('WebSocket authorization failed:', event.reason); + this.router.navigate(['/home']); + } + }; + } +} diff --git a/frontend/src/app/collaboration/editor/editor.component.html b/frontend/src/app/collaboration/editor/editor.component.html index 278d5b49e2..16c6f00a89 100644 --- a/frontend/src/app/collaboration/editor/editor.component.html +++ b/frontend/src/app/collaboration/editor/editor.component.html @@ -1,18 +1,45 @@ -
-
-
+
+
+

Editor

- +
+ +
+
- +
- - + +
diff --git a/frontend/src/app/collaboration/editor/editor.component.ts b/frontend/src/app/collaboration/editor/editor.component.ts index d4de6f8786..e459d3944c 100644 --- a/frontend/src/app/collaboration/editor/editor.component.ts +++ b/frontend/src/app/collaboration/editor/editor.component.ts @@ -1,38 +1,50 @@ -import { AfterViewInit, Component, ElementRef, ViewChild, OnInit, OnDestroy, ChangeDetectorRef } from '@angular/core'; -import { oneDark } from '@codemirror/theme-one-dark'; -import { EditorState, Extension } from '@codemirror/state'; -import { basicSetup } from 'codemirror'; -import { EditorView } from 'codemirror'; -import { java } from '@codemirror/lang-java'; +import { + AfterViewInit, + Component, + ElementRef, + Inject, + ViewChild, + OnInit, + ChangeDetectorRef, + Input, +} from '@angular/core'; +import { DOCUMENT } from '@angular/common'; +import { FormsModule } from '@angular/forms'; +import { DropdownModule } from 'primeng/dropdown'; import { ScrollPanelModule } from 'primeng/scrollpanel'; import { ButtonModule } from 'primeng/button'; -import { ConfirmationService, MessageService } from 'primeng/api'; import { ConfirmDialogModule } from 'primeng/confirmdialog'; import { ToastModule } from 'primeng/toast'; -import * as Y from 'yjs'; -import { WebsocketProvider } from 'y-websocket'; -import { yCollab } from 'y-codemirror.next'; -import * as prettier from 'prettier'; -import * as prettierPluginEstree from 'prettier/plugins/estree'; -import { usercolors } from './user-colors'; +import { MessageService } from 'primeng/api'; import { AuthenticationService } from '../../../_services/authentication.service'; -import { RoomService } from '../room.service'; // The 'prettier-plugin-java' package does not provide TypeScript declaration files. // We are using '@ts-ignore' to bypass TypeScript's missing type declaration error. // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore import prettierPluginJava from 'prettier-plugin-java'; +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore +import prettierPluginPhp from '@prettier/plugin-php'; +import prettierPluginXml from '@prettier/plugin-xml'; +import * as prettierPluginRust from 'prettier-plugin-rust'; +import prettierPluginSql from 'prettier-plugin-sql'; +import parserBabel from 'prettier/plugins/babel'; +import * as prettier from 'prettier'; +import * as prettierPluginEstree from 'prettier/plugins/estree'; +import { oneDark } from '@codemirror/theme-one-dark'; +import { EditorState, Extension, StateEffect } from '@codemirror/state'; +import { EditorView, basicSetup } from 'codemirror'; +import { keymap } from '@codemirror/view'; +import { indentWithTab } from '@codemirror/commands'; +import { yCollab } from 'y-codemirror.next'; +import * as Y from 'yjs'; +import { WebsocketProvider } from 'y-websocket'; import { SubmitDialogComponent } from '../submit-dialog/submit-dialog.component'; import { ForfeitDialogComponent } from '../forfeit-dialog/forfeit-dialog.component'; -import { Router } from '@angular/router'; +import { languageMap, parserMap, LanguageOption } from './languages'; import { awarenessData } from '../collab.model'; -import { environment } from '../../../environments/environment'; - -enum WebSocketCode { - AUTH_FAILED = 4000, - ROOM_CLOSED = 4001, -} +import { usercolors } from './user-colors'; @Component({ selector: 'app-editor', @@ -44,128 +56,113 @@ enum WebSocketCode { ToastModule, SubmitDialogComponent, ForfeitDialogComponent, + DropdownModule, + FormsModule, ], - providers: [ConfirmationService, MessageService], + providers: [MessageService], templateUrl: './editor.component.html', styleUrl: './editor.component.css', }) -export class EditorComponent implements AfterViewInit, OnInit, OnDestroy { +export class EditorComponent implements AfterViewInit, OnInit { @ViewChild('editor') editor!: ElementRef; @ViewChild(ForfeitDialogComponent) forfeitChild!: ForfeitDialogComponent; + @Input() ydoc!: Y.Doc; + @Input() wsProvider!: WebsocketProvider; + @Input() roomId!: string; + state!: EditorState; view!: EditorView; - ydoc!: Y.Doc; yeditorText = new Y.Text(''); ysubmit = new Y.Map(); yforfeit = new Y.Map(); + ylanguage = new Y.Map(); undoManager!: Y.UndoManager; customTheme!: Extension; - wsProvider!: WebsocketProvider; isSubmit = false; isInitiator = false; isForfeitClick = false; - roomId!: string; numUniqueUsers = 0; + selectedLanguage!: string; + languages: LanguageOption[] = []; constructor( + @Inject(DOCUMENT) private document: Document, private messageService: MessageService, private authService: AuthenticationService, - private roomService: RoomService, - private router: Router, private changeDetector: ChangeDetectorRef, ) {} - ngOnDestroy() { - // This lets the client to disconnect from the websocket on re-route to another page. - this.wsProvider.destroy(); - } - ngOnInit() { - this.initRoomId(); - this.initConnection(); + this.initYdoc(); + this.initDoctListener(); this.getNumOfConnectedUsers(); + this.populateLanguages(); } ngAfterViewInit() { this.setTheme(); this.setProvider(); - this.setEditorState(); + this.setEditorState(this.selectedLanguage); this.setEditorView(); this.setCursorPosition(); } - initConnection() { - this.ydoc = new Y.Doc(); - const websocketUrl = environment.wsUrl + 'collaboration/'; - this.wsProvider = new WebsocketProvider(websocketUrl, this.roomId, this.ydoc, { - params: { - accessToken: this.authService.userValue?.accessToken || '', - }, - }); - - this.wsProvider.ws!.onclose = (event: { code: number; reason: string }) => { - if (event.code === WebSocketCode.AUTH_FAILED || event.code === WebSocketCode.ROOM_CLOSED) { - console.error('WebSocket authorization failed:', event.reason); - this.router.navigate(['/matching']); - } - }; - - this.yeditorText = this.ydoc.getText('editorText'); - this.ysubmit = this.ydoc.getMap('submit'); - this.yforfeit = this.ydoc.getMap('forfeit'); - this.undoManager = new Y.UndoManager(this.yeditorText); + populateLanguages() { + this.languages = Object.keys(languageMap).map(lang => ({ + label: lang.charAt(0).toUpperCase() + lang.slice(1), + value: lang, + })); } - getNumOfConnectedUsers() { - this.wsProvider.awareness.on('change', () => { - const data = Array.from(this.wsProvider.awareness.getStates().values()); - const uniqueIds = new Set( - data - .map(x => (x as awarenessData).user?.userId) - .filter((userId): userId is string => userId !== undefined), - ); - - this.numUniqueUsers = uniqueIds.size; - - this.changeDetector.detectChanges(); - }); + changeLanguage(language: string) { + this.selectedLanguage = language.toLowerCase(); + this.ylanguage.set('selected', language); } - showSubmitDialog() { - this.isSubmit = true; - this.isInitiator = true; + updateEditor(language: string) { + this.setEditorState(language); + this.view.setState(this.state); } - initRoomId() { - this.roomService.getRoomId().subscribe(id => { - this.roomId = id!; - }); + updateLanguageExtension(language: string) { + if (languageMap[language]) { + this.view.dispatch({ + effects: StateEffect.reconfigure.of([this.getEditorExtensions(language)]), + }); + } } - async format() { - try { - const currentCode = this.view.state.doc.toString(); + initYdoc() { + this.yeditorText = this.ydoc.getText('editorText'); + this.ysubmit = this.ydoc.getMap('submit'); + this.yforfeit = this.ydoc.getMap('forfeit'); + this.ylanguage = this.ydoc.getMap('language'); + this.undoManager = new Y.UndoManager(this.yeditorText); - const formattedCode = prettier.format(currentCode, { - parser: 'java', - plugins: [prettierPluginJava, prettierPluginEstree], // Add necessary plugins - }); + const language = this.ylanguage.get('selection'); + if (language == undefined) { + this.ylanguage.set('selected', 'java'); + this.selectedLanguage = 'java'; + } else { + this.selectedLanguage = language!; + } + } - this.view.dispatch({ - changes: { - from: 0, - to: this.view.state.doc.length, - insert: await formattedCode, - }, + initDoctListener() { + this.ylanguage.observe(ymapEvent => { + ymapEvent.changes.keys.forEach((change, key) => { + if (change.action === 'update') { + this.selectedLanguage = this.ylanguage.get(key)!; + const languageExtension = languageMap[this.selectedLanguage]; + + if (languageExtension) { + this.updateLanguageExtension(this.selectedLanguage); + } + } }); - - this.view.focus(); - } catch (e) { - console.error('Error formatting code:', e); - this.messageService.add({ severity: 'error', summary: 'Formatting Error' }); - } + }); } setProvider() { @@ -179,20 +176,23 @@ export class EditorComponent implements AfterViewInit, OnInit, OnDestroy { }); } - setEditorState() { - const undoManager = this.undoManager; - const myExt: Extension = [ + setEditorState(language: string) { + this.state = EditorState.create({ + doc: this.yeditorText.toString(), + extensions: this.getEditorExtensions(language), + }); + } + + getEditorExtensions(language: string): Extension[] { + return [ + EditorView.lineWrapping, basicSetup, - java(), + keymap.of([indentWithTab]), + languageMap[language], this.customTheme, oneDark, - yCollab(this.yeditorText, this.wsProvider.awareness, { undoManager }), + yCollab(this.yeditorText, this.wsProvider.awareness, { undoManager: this.undoManager }), ]; - - this.state = EditorState.create({ - doc: this.yeditorText.toString(), - extensions: myExt, - }); } setEditorView() { @@ -232,6 +232,89 @@ export class EditorComponent implements AfterViewInit, OnInit, OnDestroy { this.view.focus(); } + getNumOfConnectedUsers() { + this.wsProvider.awareness.on('change', () => { + const data = Array.from(this.wsProvider.awareness.getStates().values()); + const uniqueIds = new Set( + data + .map(x => (x as awarenessData).user?.userId) + .filter((userId): userId is string => userId !== undefined), + ); + + this.numUniqueUsers = uniqueIds.size; + + this.changeDetector.detectChanges(); + }); + } + + async format() { + try { + const selectedParser = parserMap[this.selectedLanguage.toLowerCase()]; + + if (selectedParser === undefined) { + this.notifyUnsupported(); + return; + } + + const currentCode = this.view.state.doc.toString(); + const formattedCode = this.prettierFormat(currentCode, selectedParser); + + this.view.dispatch({ + changes: { + from: 0, + to: this.view.state.doc.length, + insert: await formattedCode, + }, + }); + + this.view.focus(); + } catch (error) { + if (error instanceof SyntaxError || error instanceof Error) { + this.notifyFormattingErr( + "There's a syntax error in your code. Please fix it and try formatting again.", + ); + } else { + this.notifyFormattingErr('An error occurred while formatting. Please check your code and try again.'); + } + } + } + + prettierFormat(currentCode: string, selectedParser: string): Promise { + return prettier.format(currentCode, { + parser: selectedParser, + plugins: [ + parserBabel, + prettierPluginJava, + prettierPluginEstree, + prettierPluginPhp, + prettierPluginXml, + prettierPluginRust, + prettierPluginSql, + ], + }); + } + + notifyFormattingErr(message: string) { + this.messageService.add({ + severity: 'warn', + summary: 'Formatting Error', + detail: message, + }); + } + + notifyUnsupported() { + this.messageService.add({ + severity: 'info', + summary: 'Info Message', + detail: `The selected language ${this.selectedLanguage.toLowerCase()} is currently not supported for auto formatting.`, + }); + } + + showSubmitDialog() { + this.isSubmit = true; + this.isInitiator = true; + } + onSubmitDialogClose(numForfeit: number) { if (numForfeit == 0 && this.ysubmit.size > 0) { this.messageService.add({ diff --git a/frontend/src/app/collaboration/editor/languages.ts b/frontend/src/app/collaboration/editor/languages.ts new file mode 100644 index 0000000000..d6d4d971e9 --- /dev/null +++ b/frontend/src/app/collaboration/editor/languages.ts @@ -0,0 +1,34 @@ +import { java } from '@codemirror/lang-java'; +import { javascript } from '@codemirror/lang-javascript'; +import { Extension } from '@codemirror/state'; +import { php } from '@codemirror/lang-php'; +import { rust } from '@codemirror/lang-rust'; +import { sql } from '@codemirror/lang-sql'; +import { python } from '@codemirror/lang-python'; +import { cpp } from '@codemirror/lang-cpp'; +import { go } from '@codemirror/lang-go'; + +export const languageMap: Record = { + java: java(), + javascript: javascript(), + PHP: php(), + rust: rust(), + SQL: sql(), + python: python(), + 'C++': cpp(), + go: go(), +}; + +export const parserMap: Record = { + java: 'java', + javascript: 'babel', + php: 'php', + xml: 'xml', + rust: 'rust', + sql: 'sql', +}; + +export interface LanguageOption { + label: string; + value: string; +} diff --git a/frontend/src/app/collaboration/forfeit-dialog/forfeit-dialog.component.ts b/frontend/src/app/collaboration/forfeit-dialog/forfeit-dialog.component.ts index 74bf3d014b..ab7d8bf645 100644 --- a/frontend/src/app/collaboration/forfeit-dialog/forfeit-dialog.component.ts +++ b/frontend/src/app/collaboration/forfeit-dialog/forfeit-dialog.component.ts @@ -69,7 +69,7 @@ export class ForfeitDialogComponent implements OnInit { this.isForfeit = true; this.hideButtons = true; setTimeout(() => { - this.router.navigate(['/matching']); + this.router.navigate(['/home']); }, 1500); }, }); diff --git a/frontend/src/app/collaboration/question-box/question-box.component.html b/frontend/src/app/collaboration/question-box/question-box.component.html index 1fae6f816a..5d857f17c4 100644 --- a/frontend/src/app/collaboration/question-box/question-box.component.html +++ b/frontend/src/app/collaboration/question-box/question-box.component.html @@ -1,7 +1,7 @@ -
-
-
- +
+
+
+

{{ question.title }}

@switch (question.difficulty) { @@ -9,7 +9,7 @@

{{ question.title }}

{{ question.difficulty }} } @case (difficultyLevels.MEDIUM) { - {{ question.difficulty }} + {{ question.difficulty }} } @case (difficultyLevels.HARD) { {{ question.difficulty }} @@ -23,8 +23,10 @@

{{ question.title }}

{{ topic }} }
-

{{ question.description }}

-
+

+ {{ question.description }} +

diff --git a/frontend/src/app/collaboration/submit-dialog/submit-dialog.component.ts b/frontend/src/app/collaboration/submit-dialog/submit-dialog.component.ts index 324799f1b1..fe572e8222 100644 --- a/frontend/src/app/collaboration/submit-dialog/submit-dialog.component.ts +++ b/frontend/src/app/collaboration/submit-dialog/submit-dialog.component.ts @@ -125,14 +125,14 @@ export class SubmitDialogComponent implements AfterViewInit { next: () => { this.message = 'Successfully submitted. \n\n Redirecting you to homepage...'; setTimeout(() => { - this.router.navigate(['/matching']); + this.router.navigate(['/home']); }, 1500); }, }); } setTimeout(() => { - this.router.navigate(['/matching']); + this.router.navigate(['/home']); }, 1500); } diff --git a/frontend/src/app/collaboration/websocket-code.enum.ts b/frontend/src/app/collaboration/websocket-code.enum.ts new file mode 100644 index 0000000000..9424a6b9bd --- /dev/null +++ b/frontend/src/app/collaboration/websocket-code.enum.ts @@ -0,0 +1,4 @@ +export enum WebSocketCode { + AUTH_FAILED = 4000, + ROOM_CLOSED = 4001, +} diff --git a/frontend/src/app/home/active-sessions.model.ts b/frontend/src/app/home/active-sessions.model.ts new file mode 100644 index 0000000000..f3f7cb9f29 --- /dev/null +++ b/frontend/src/app/home/active-sessions.model.ts @@ -0,0 +1,7 @@ +import { DifficultyLevels } from '../questions/difficulty-levels.enum'; + +export interface ActiveSession { + questionTitle: string; + difficulty: DifficultyLevels; // Assuming DifficultyLevel is an enum + peer: string; +} diff --git a/frontend/src/app/home/home.component.css b/frontend/src/app/home/home.component.css new file mode 100644 index 0000000000..159f9e9d24 --- /dev/null +++ b/frontend/src/app/home/home.component.css @@ -0,0 +1,51 @@ +@import '../collaboration/question-box/question-box.component.css'; + +:host .grid { + margin-right: 0rem; + margin-left: 0rem; + margin-top: 0rem; +} + +:host ::ng-deep .container { + background-color: var(--surface-section); + border-radius: 0.75rem; + display: flex; + flex-direction: column; + align-items: center; +} + +:host ::ng-deep .round { + background-color: var(--surface-section); + border-radius: 0.75rem; +} + +:host ::ng-deep .full-width-button { + width: 100%; + display: flex; + justify-content: center; +} + +:host ::ng-deep h1.title { + font-family: "Poppins", sans-serif; + font-weight: 700; + font-style: normal; + font-size: 3rem; + color: white; +} + +:host ::ng-deep .start-matching-button { + width: 100%; + padding: 13px; + border-radius: 19px; + /* color: white; */ + font-size: 1.1rem; + font-family: "Poppins", sans-serif; + font-weight: 700; + font-style: normal; +} + +@media (min-width: 992px) { + .custom-height-lg { + height: calc(100% - 34px); + } +} \ No newline at end of file diff --git a/frontend/src/app/home/home.component.html b/frontend/src/app/home/home.component.html new file mode 100644 index 0000000000..63cb90b26f --- /dev/null +++ b/frontend/src/app/home/home.component.html @@ -0,0 +1,104 @@ +
+ @if (loading) { + + } @else { +
+
+ Web illustrations by Storyset + +
+
+
+
+
+

Welcome to PeerPrep!

+
+
+ + +
+

Active Sessions

+
+
+ @if (activeSessions.length > 0) { + + + Question + Difficulty + Peer + + + + + + {{ session.question.title }} + + @switch (session.question.difficulty) { + @case (difficultyLevels.EASY) { + {{ session.question.difficulty }} + } + @case (difficultyLevels.MEDIUM) { + {{ session.question.difficulty }} + } + @case (difficultyLevels.HARD) { + {{ session.question.difficulty }} + } + @default { + {{ session.question.difficulty }} + } + } + + {{ getPeer(session.users) }} + + + + + + } @else { + +
+
+

You currently have no active sessions.

+
+
+
+ } +
+
+
+ +
+
+
+ } + + +
diff --git a/frontend/src/app/home/home.component.spec.ts b/frontend/src/app/home/home.component.spec.ts new file mode 100644 index 0000000000..55b08fbefc --- /dev/null +++ b/frontend/src/app/home/home.component.spec.ts @@ -0,0 +1,22 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { HomeComponent } from './home.component'; + +describe('HomeComponent', () => { + let component: HomeComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + imports: [HomeComponent], + }).compileComponents(); + + fixture = TestBed.createComponent(HomeComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/frontend/src/app/home/home.component.ts b/frontend/src/app/home/home.component.ts new file mode 100644 index 0000000000..46708e29ff --- /dev/null +++ b/frontend/src/app/home/home.component.ts @@ -0,0 +1,87 @@ +import { Component, OnInit, OnDestroy } from '@angular/core'; +import { TableModule } from 'primeng/table'; +import { ButtonModule } from 'primeng/button'; +import { DifficultyLevels } from '../questions/difficulty-levels.enum'; +import { ChipModule } from 'primeng/chip'; +import { Router } from '@angular/router'; +import { MessageService } from 'primeng/api'; +import { CollabService } from '../../_services/collab.service'; +import { RoomData, CollabUser } from '../collaboration/collab.model'; +import { ToastModule } from 'primeng/toast'; +import { AuthenticationService } from '../../_services/authentication.service'; +import { ProgressSpinnerModule } from 'primeng/progressspinner'; +import { ToastService } from '../../_services/toast.service'; + +@Component({ + selector: 'app-home', + standalone: true, + imports: [TableModule, ButtonModule, ChipModule, ToastModule, ProgressSpinnerModule], + providers: [CollabService, MessageService], + templateUrl: './home.component.html', + styleUrl: './home.component.css', +}) +export class HomeComponent implements OnInit, OnDestroy { + loading = true; + activeSessions: RoomData[] = []; + difficultyLevels = DifficultyLevels; + userId!: string; + + constructor( + private collabService: CollabService, + private messageService: MessageService, + private authService: AuthenticationService, + private router: Router, + private toastService: ToastService, + ) {} + + ngOnDestroy() { + this.activeSessions = []; + } + + ngOnInit() { + this.getActiveSessions(); + this.getUserId(); + this.initToastService(); + } + + initToastService() { + this.toastService.toast$.subscribe(message => { + this.messageService.add({ severity: 'warn', summary: 'Warning', detail: message }); + }); + } + + getUserId() { + this.userId = this.authService.userValue!.id; + } + + goToCollab(roomId: string) { + this.router.navigate(['/collab'], { queryParams: { roomId } }); + } + + goToMatch() { + this.router.navigate(['/matching']); + } + + getPeer(users: CollabUser[]) { + return users.find(user => user.id !== this.userId)?.username; + } + + getActiveSessions() { + this.collabService.getRoomsWithQuery(true, false).subscribe({ + next: response => { + this.activeSessions = Array.isArray(response.data) ? response.data : []; + }, + error: () => { + this.messageService.add({ + severity: 'error', + summary: 'Error', + detail: 'Failed to retrieve room data', + life: 3000, + }); + }, + complete: () => { + this.loading = false; + }, + }); + } +} diff --git a/frontend/src/app/navigation-bar/navigation-bar.component.html b/frontend/src/app/navigation-bar/navigation-bar.component.html index c4ccb399d1..feeeaacca8 100644 --- a/frontend/src/app/navigation-bar/navigation-bar.component.html +++ b/frontend/src/app/navigation-bar/navigation-bar.component.html @@ -1,6 +1,6 @@ -
+
logo

PeerPrep

diff --git a/frontend/src/app/navigation-bar/navigation-bar.component.ts b/frontend/src/app/navigation-bar/navigation-bar.component.ts index ba9a58a137..1955769aed 100644 --- a/frontend/src/app/navigation-bar/navigation-bar.component.ts +++ b/frontend/src/app/navigation-bar/navigation-bar.component.ts @@ -1,6 +1,6 @@ import { Component, OnInit, ViewChild, HostListener, Renderer2 } from '@angular/core'; import { MenuItem } from 'primeng/api'; -import { CommonModule, NgFor } from '@angular/common'; +import { CommonModule } from '@angular/common'; import { MenubarModule } from 'primeng/menubar'; import { AuthenticationService } from '../../_services/authentication.service'; import { User } from '../../_models/user.model'; @@ -10,7 +10,7 @@ import { ButtonModule } from 'primeng/button'; @Component({ selector: 'app-navigation-bar', standalone: true, - imports: [MenubarModule, CommonModule, NgFor, MenuModule, ButtonModule], + imports: [MenubarModule, CommonModule, MenuModule, ButtonModule], templateUrl: './navigation-bar.component.html', styleUrl: './navigation-bar.component.css', }) @@ -44,6 +44,12 @@ export class NavigationBarComponent implements OnInit { setMenuItems() { if (this.authService.isLoggedIn) { this.items = [ + { + label: 'Home', + icon: 'pi pi-home', + routerLink: '/home', + class: 'p-submenu-list', + }, { label: 'Find Match', icon: 'pi pi-users', diff --git a/package-lock.json b/package-lock.json index e7f5318afc..e97f7809da 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,5 +1,5 @@ { - "name": "PeerPrep", + "name": "cs3219-ay2425s1-project-g03", "lockfileVersion": 3, "requires": true, "packages": {} diff --git a/services/collaboration/README.md b/services/collaboration/README.md index 477a2749cb..75a5c911e4 100644 --- a/services/collaboration/README.md +++ b/services/collaboration/README.md @@ -26,9 +26,9 @@ docker compose down -v ## Overview The `Collaboration Service` manages the lifecycle of collaboration sessions, including room creation, retrieval, and -closure. When -a room is created, it is assigned to two users, a Yjs document is initialized for real-time collaboration, and the -room’s status is set to `open`. Rooms are used to group users working together on a shared task, such as collaborative +closure. When a room is created, it is assigned to two users, a Yjs document is initialized for real-time collaboration, +and the room’s status is set to `open`. Rooms are used to group users working together on a shared task, such as +collaborative coding, and are identified by a unique `room_id`. The room’s status can be updated to `closed` when users leave or forfeit the session, which also removes the Yjs document and its data from MongoDB to free resources. @@ -105,7 +105,8 @@ not provided directly. ```bash curl -X GET http://localhost:8080/api/collaboration/room/user/rooms \ - -H "Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MjFhNWZiZWFlNjBjOGViMWU1ZWYzNCIsInVzZXJuYW1lIjoiVGVzdGluZyIsInJvbGUiOiJ1c2VyIiwiaWF0IjoxNzMwMjU4NDI4LCJleHAiOjE3MzAzNDQ4Mjh9.DF9CaChoG3-UmeZgZG9SlpjtTknVzeVSBAJDJRdqGk0 + -H "Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MjRlOTZlNDNjMmNjNWQ5ODA5NmM2OSIsInVzZXJuYW1lIjoiVGVzdGluZzEiLCJyb2xlIjoidXNlciIsImlhdCI6MTczMDQ3MjMwMywiZXhwIjoxNzMwNTU4NzAzfQ.x92l-NIgWj_dpM-EC-xOKAGB8zrgGAdKbDpAu3UD5vE" \ + -H "Content-Type: application/json" ``` ### Example of Response Body for Success: @@ -114,19 +115,20 @@ curl -X GET http://localhost:8080/api/collaboration/room/user/rooms \ { "status": "Success", "data": [ - "6721a64b0c4d990bc0feee4c" + "6724e9d892fb3e9f04c2e280" ] } ``` --- -## Get Room by Room ID +## Get Rooms by User ID, Room Status, and User's isForfeit status -This endpoint retrieves the details of a room by its room ID. +This endpoint retrieves the details of rooms associated with the authenticated user, filtered by the specified room +status and isForfeit status using query parameters. - **HTTP Method**: `GET` -- **Endpoint**: `/api/collaboration/room/{roomId}` +- **Endpoint**: `/api/collaboration/room/` ### Authorization @@ -134,21 +136,23 @@ This endpoint requires a valid JWT token in the Authorization header. ### Parameters: -- `roomId` (Required) - The ID of the room to retrieve. +- `roomStatus` (Required) - The status of the room to filter by (`true` for open rooms, `false` for closed rooms). +- `isForfeit` (Required) - The status of the user in a room to filter by (`true` for rooms forfeited by the + user, `false` for rooms not forfeited by the user). ### Responses: -| Response Code | Explanation | -|-----------------------------|---------------------------------------------| -| 200 (OK) | Success, room details returned. | -| 404 (Not Found) | Room not found. | -| 500 (Internal Server Error) | Unexpected error in the server or database. | +| Response Code | Explanation | +|-----------------------------|-------------------------------------------------------------------------------------------| +| 200 (OK) | Success, room details returned. If no rooms are found, success message is still returned. | +| 500 (Internal Server Error) | Unexpected error in the server or database. | ### Command Line Example: ```bash -curl -X GET http://localhost:8080/api/collaboration/room/6721a64b0c4d990bc0feee4c \ - -H "Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MjFhNWZiZWFlNjBjOGViMWU1ZWYzNCIsInVzZXJuYW1lIjoiVGVzdGluZyIsInJvbGUiOiJ1c2VyIiwiaWF0IjoxNzMwMjU4NDI4LCJleHAiOjE3MzAzNDQ4Mjh9.DF9CaChoG3-UmeZgZG9SlpjtTknVzeVSBAJDJRdqGk0 +curl -X GET "http://localhost:8080/api/collaboration/room/?roomStatus=true&isForfeit=false" \ + -H "Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MjFhNWZiZWFlNjBjOGViMWU1ZWYzNCIsInVzZXJuYW1lIjoiVGVzdGluZzEiLCJyb2xlIjoidXNlciIsImlhdCI6MTczMDQ3MjY2NCwiZXhwIjoxNzMwNTYxMDY0fQ.DF9CaChoG3-UmeZgZG9SlpjtTknVzeVSBAJDJRdqGk0" \ + -H "Content-Type: application/json" ``` ### Example of Response Body for Success: @@ -156,26 +160,38 @@ curl -X GET http://localhost:8080/api/collaboration/room/6721a64b0c4d990bc0feee4 ```json { "status": "Success", - "data": { - "room_id": "6721a64b0c4d990bc0feee4c", - "users": [ - { - "id": "6718b0050e24954ac125e5dd", - "username": "Testing", - "requestId": "6718b027a8144e99bbee17ce", - "isForfeit": false + "data": [ + { + "room_id": "6724e9d892fb3e9f04c2e280", + "users": [ + { + "id": "6724e96e43c2cc5d98096c69", + "username": "Testing1", + "requestId": "6724e9d7a752183798494a85", + "isForfeit": false + }, + { + "id": "6724e94843c2cc5d98096c63", + "username": "Testing", + "requestId": "6724e9d6a752183798494a80", + "isForfeit": false + } + ], + "question": { + "_id": "6724e8b47cdb78e50482a119", + "id": 4, + "description": "Given two binary strings a and b, return their sum as a binary string.", + "difficulty": "Easy", + "title": "Add Binary", + "topics": [ + "Bit Manipulation", + "Algorithms" + ] }, - { - "id": "6718b0070e24954ac125e5e1", - "username": "Testing1", - "requestId": "6718b026a8144e99bbee17c8", - "isForfeit": false - } - ], - "question_id": 2, - "createdAt": "2024-10-23T08:13:27.886Z", - "room_status": true - } + "createdAt": "2024-11-01T14:46:48.085Z", + "room_status": true + } + ] } ``` @@ -210,8 +226,8 @@ This endpoint requires a valid JWT token in the Authorization header. The userId ### Command Line Example: ```bash -curl -X PATCH http://localhost:8080/api/collaboration/room/6721a64b0c4d990bc0feee4c/user/isForfeit \ - -H "Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MjFhNWZiZWFlNjBjOGViMWU1ZWYzNCIsInVzZXJuYW1lIjoiVGVzdGluZyIsInJvbGUiOiJ1c2VyIiwiaWF0IjoxNzMwMjU4NDI4LCJleHAiOjE3MzAzNDQ4Mjh9.DF9CaChoG3-UmeZgZG9SlpjtTknVzeVSBAJDJRdqGk0" \ + curl -X PATCH http://localhost:8080/api/collaboration/room/6724e9d892fb3e9f04c2e280/user/isForfeit \ + -H "Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MjRlOTZlNDNjMmNjNWQ5ODA5NmM2OSIsInVzZXJuYW1lIjoiVGVzdGluZzEiLCJyb2xlIjoidXNlciIsImlhdCI6MTczMDQ3MjMwMywiZXhwIjoxNzMwNTU4NzAzfQ.x92l-NIgWj_dpM-EC-xOKAGB8zrgGAdKbDpAu3UD5vE" \ -H "Content-Type: application/json" \ -d '{"isForfeit": true}' ``` @@ -222,25 +238,35 @@ curl -X PATCH http://localhost:8080/api/collaboration/room/6721a64b0c4d990bc0fee { "status": "Success", "data": { - "message": "User status updated successfully", + "message": "User isForfeit status updated successfully", "room": { - "room_id": "6721a64b0c4d990bc0feee4c", + "_id": "6724e9d892fb3e9f04c2e280", "users": [ { - "id": "6718b0050e24954ac125e5dd", - "username": "Testing", - "requestId": "6718b027a8144e99bbee17ce", - "isForfeit": false - }, - { - "id": "6718b0070e24954ac125e5e1", + "id": "6724e96e43c2cc5d98096c69", "username": "Testing1", - "requestId": "6718b026a8144e99bbee17c8", + "requestId": "6724e9d7a752183798494a85", "isForfeit": true + }, + { + "id": "6724e94843c2cc5d98096c63", + "username": "Testing", + "requestId": "6724e9d6a752183798494a80", + "isForfeit": false } ], - "question_id": 2, - "createdAt": "2024-10-23T08:13:27.886Z", + "question": { + "_id": "6724e8b47cdb78e50482a119", + "id": 4, + "description": "Given two binary strings a and b, return their sum as a binary string.", + "difficulty": "Easy", + "title": "Add Binary", + "topics": [ + "Bit Manipulation", + "Algorithms" + ] + }, + "createdAt": "2024-11-01T14:46:48.085Z", "room_status": true } } @@ -275,8 +301,9 @@ This endpoint requires a valid JWT token in the Authorization header. ### Command Line Example: ```bash -curl -X PATCH http://localhost:8080/api/collaboration/room/6721a64b0c4d990bc0feee4c/close \ - -H "Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MjFhNWZiZWFlNjBjOGViMWU1ZWYzNCIsInVzZXJuYW1lIjoiVGVzdGluZyIsInJvbGUiOiJ1c2VyIiwiaWF0IjoxNzMwMjU4NDI4LCJleHAiOjE3MzAzNDQ4Mjh9.DF9CaChoG3-UmeZgZG9SlpjtTknVzeVSBAJDJRdqGk0" +curl -X PATCH http://localhost:8080/api/collaboration/room/6724e9d892fb3e9f04c2e280/close \ + -H "Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MjRlOTZlNDNjMmNjNWQ5ODA5NmM2OSIsInVzZXJuYW1lIjoiVGVzdGluZzEiLCJyb2xlIjoidXNlciIsImlhdCI6MTczMDQ3MjMwMywiZXhwIjoxNzMwNTU4NzAzfQ.x92l-NIgWj_dpM-EC-xOKAGB8zrgGAdKbDpAu3UD5vE" \ + -H "Content-Type: application/json" ``` ### Example of Response Body for Success: @@ -284,7 +311,7 @@ curl -X PATCH http://localhost:8080/api/collaboration/room/6721a64b0c4d990bc0fee ```json { "status": "Success", - "data": "Room 6721a64b0c4d990bc0feee4c successfully closed" + "data": "Room 6724e9d892fb3e9f04c2e280 successfully closed" } ``` @@ -326,23 +353,24 @@ The producer will send a message to the `MATCH_FAILED` queue when a collaboratio - **Queue**: `MATCH_FAILED` - **Data Produced** - - `requestId1` (Required) - The first request ID associated with the match failure. - - `requestId2` (Required) - The second request ID associated with the match failure. - - `reason` (Required) - The error encountered. + - `requestId1` (Required) - The first request ID associated with the match failure. + - `requestId2` (Required) - The second request ID associated with the match failure. + - `reason` (Required) - The error encountered. - ```json - { - "requestId1": "6714d1806da8e6d033ac2be1", - "requestId2": "67144180cda8e610333e4b12", - "reason": "Failed to create room", - } - ``` +```json +{ + "requestId1": "6714d1806da8e6d033ac2be1", + "requestId2": "67144180cda8e610333e4b12", + "reason": "Failed to create room" +} + ``` --- ## Consumer -The consumer will listen for messages on the `QUESTION_FOUND` queue and create a collaboration room when two users are matched. +The consumer will listen for messages on the `QUESTION_FOUND` queue and create a collaboration room when two users are +matched. - **Queue**: `QUESTION_FOUND` - **Data in the Message**: @@ -367,7 +395,9 @@ The consumer will listen for messages on the `QUESTION_FOUND` queue and create a "id": 21, "title": "Reverse Integer", "description": "Given a signed 32-bit integer x, return x with its digits reversed.", - "topics": ["Math"], + "topics": [ + "Math" + ], "difficulty": "Medium" } } diff --git a/services/collaboration/src/controllers/roomController.ts b/services/collaboration/src/controllers/roomController.ts index c80f134327..9e1a7a0a55 100644 --- a/services/collaboration/src/controllers/roomController.ts +++ b/services/collaboration/src/controllers/roomController.ts @@ -43,24 +43,6 @@ export const createRoomWithQuestion = async (user1: any, user2: any, question: Q } }; -export const getRoomIdsByUserIdController = async (req: Request, res: Response) => { - const userId = req.user.id; - - console.log('Received request for user ID:', userId); - try { - const rooms = await findRoomsByUserId(userId); - if (!rooms || rooms.length === 0) { - return handleHttpNotFound(res, 'No rooms found for the given user'); - } - - const roomIds = rooms.map(room => (room as Room)._id); - return handleHttpSuccess(res, roomIds); - } catch (error) { - console.error('Error fetching rooms by user ID:', error); - return handleHttpServerError(res, 'Failed to retrieve room IDs by user ID'); - } -}; - /** * Controller function to get room details by room ID * @param req @@ -157,3 +139,53 @@ export const updateUserStatusInRoomController = async (req: Request, res: Respon return handleHttpServerError(res, 'Failed to update user isForfeit status in room'); } }; + +/** + * Controller function to get room details (including question details) by authenticated user, filtered by room status + * @param req + * @param res + */ +export const getRoomsByUserIdAndStatusController = async (req: Request, res: Response) => { + const userId = req.user.id; + const roomStatusParam = req.query.roomStatus as string; + const isForfeitParam = req.query.isForfeit as string; + + if (roomStatusParam !== 'true' && roomStatusParam !== 'false') { + return handleHttpBadRequest(res, 'Invalid roomStatus value. Must be "true" or "false".'); + } + + if (isForfeitParam !== 'true' && isForfeitParam !== 'false') { + return handleHttpBadRequest(res, 'Invalid isForfeit value. Must be "true" or "false".'); + } + + const roomStatus = roomStatusParam === 'true'; + const isForfeit = isForfeitParam === 'true'; + + console.log( + 'Received request for user ID:', + userId, + 'with room status:', + roomStatus, + 'with forfeit status:', + isForfeit, + ); + + try { + const rooms = await findRoomsByUserId(userId, roomStatus, isForfeit); + if (!rooms || rooms.length === 0) { + return handleHttpSuccess(res, 'No rooms found for the given user and status'); + } + + const roomDetails = rooms.map(room => ({ + room_id: room._id, + users: room.users, + question: room.question, + createdAt: room.createdAt, + room_status: room.room_status, + })); + return handleHttpSuccess(res, roomDetails); + } catch (error) { + console.error('Error fetching rooms by user ID and status:', error); + return handleHttpServerError(res, 'Failed to retrieve rooms by user ID and status'); + } +}; diff --git a/services/collaboration/src/events/broker.ts b/services/collaboration/src/events/broker.ts index 095201dc5d..01ccc4fc1f 100644 --- a/services/collaboration/src/events/broker.ts +++ b/services/collaboration/src/events/broker.ts @@ -2,7 +2,7 @@ import client, { Channel, Connection } from 'amqplib'; import config from '../config'; /** - * Adapated from + * Adapted from * https://hassanfouad.medium.com/using-rabbitmq-with-nodejs-and-typescript-8b33d56a62cc */ class MessageBroker { diff --git a/services/collaboration/src/middleware/request.ts b/services/collaboration/src/middleware/request.ts index d60cad964e..175c1cc4e4 100644 --- a/services/collaboration/src/middleware/request.ts +++ b/services/collaboration/src/middleware/request.ts @@ -1,4 +1,3 @@ -import { Types } from 'mongoose'; import { z } from 'zod'; export enum Role { diff --git a/services/collaboration/src/routes/roomRoutes.ts b/services/collaboration/src/routes/roomRoutes.ts index e5239c45ec..3e927ca559 100644 --- a/services/collaboration/src/routes/roomRoutes.ts +++ b/services/collaboration/src/routes/roomRoutes.ts @@ -1,9 +1,9 @@ import { Router } from 'express'; import { - getRoomIdsByUserIdController, getRoomByRoomIdController, closeRoomController, updateUserStatusInRoomController, + getRoomsByUserIdAndStatusController, } from '../controllers/roomController'; /** @@ -11,11 +11,6 @@ import { */ const router = Router(); -/** - * Get room IDs by user ID (userId is now obtained from the JWT token) - */ -router.get('/user/rooms', getRoomIdsByUserIdController); - /** * Get room by room ID */ @@ -31,4 +26,9 @@ router.patch('/:roomId/close', closeRoomController); */ router.patch('/:roomId/user/isForfeit', updateUserStatusInRoomController); +/** + * Get rooms by room status and isForfeit status for the authenticated user + */ +router.get('/', getRoomsByUserIdAndStatusController); + export default router; diff --git a/services/collaboration/src/services/mongodbService.ts b/services/collaboration/src/services/mongodbService.ts index 41da9a08f1..480c02806d 100644 --- a/services/collaboration/src/services/mongodbService.ts +++ b/services/collaboration/src/services/mongodbService.ts @@ -67,8 +67,10 @@ export const startMongoDB = async (): Promise => { /** * Save room data in the MongoDB rooms database and create a Yjs document - * @param roomData * @returns roomId + * @param user1 + * @param user2 + * @param question */ export const createRoomInDB = async (user1: any, user2: any, question: Question): Promise => { try { @@ -140,24 +142,37 @@ export const deleteYjsDocument = async (roomId: string) => { }; /** - * Find rooms by user ID where room_status is true + * Find rooms by user ID and room status * @param userId + * @param roomStatus + * @returns */ -export const findRoomsByUserId = async (userId: string): Promise[]> => { +export const findRoomsByUserId = async ( + userId: string, + roomStatus: boolean, + isForfeit: boolean, +): Promise[]> => { try { const db = await connectToRoomDB(); - console.log(`Querying for rooms with user ID: ${userId}`); + console.log( + `Querying for rooms with user ID: ${userId}, room status: ${roomStatus} and isForfeit status; ${isForfeit}`, + ); + const rooms = await db .collection('rooms') .find({ - users: { $elemMatch: { id: userId } }, - room_status: true, + users: { $elemMatch: { id: userId, isForfeit: isForfeit } }, + room_status: roomStatus, }) .toArray(); + console.log('Rooms found:', rooms); return rooms; } catch (error) { - console.error(`Error querying rooms for user ID ${userId}:`, error); + console.error( + `Error querying rooms for user ID ${userId} with room status ${roomStatus} and isForfeit status; ${isForfeit}:`, + error, + ); throw error; } }; diff --git a/services/collaboration/src/services/webSocketService.ts b/services/collaboration/src/services/webSocketService.ts index 547b5e9084..b79ce42777 100644 --- a/services/collaboration/src/services/webSocketService.ts +++ b/services/collaboration/src/services/webSocketService.ts @@ -12,7 +12,7 @@ const { setPersistence, setupWSConnection } = require('../utils/utility.js'); const URL_REGEX = /^.*\/([0-9a-f]{24})\?accessToken=([a-zA-Z0-9\-._~%]{1,})$/; const authorize = async (ws: WebSocket, request: IncomingMessage): Promise => { - const url = request.url; + const url = request.url ?? ''; const match = url?.match(URL_REGEX); if (!match) { handleAuthFailed(ws, 'Authorization failed: Invalid format'); diff --git a/services/match/src/events/broker.ts b/services/match/src/events/broker.ts index a1078e2a6c..9a85daa78a 100644 --- a/services/match/src/events/broker.ts +++ b/services/match/src/events/broker.ts @@ -2,7 +2,7 @@ import client, { Channel, Connection } from 'amqplib'; import config from '../config'; /** - * Adapated from + * Adapted from * https://hassanfouad.medium.com/using-rabbitmq-with-nodejs-and-typescript-8b33d56a62cc */ class MessageBroker { diff --git a/services/question/src/events/broker.ts b/services/question/src/events/broker.ts index a1078e2a6c..9a85daa78a 100644 --- a/services/question/src/events/broker.ts +++ b/services/question/src/events/broker.ts @@ -2,7 +2,7 @@ import client, { Channel, Connection } from 'amqplib'; import config from '../config'; /** - * Adapated from + * Adapted from * https://hassanfouad.medium.com/using-rabbitmq-with-nodejs-and-typescript-8b33d56a62cc */ class MessageBroker {