Skip to content

Conversation

@ncduy0303
Copy link

@ncduy0303 ncduy0303 commented Oct 23, 2025

Description

This PR continues from #8 and replaces #7 to integrate the collaboration service into our frontend.

Screenshots or videos if applicable

Room page (/practice/:room_id)

Add placeholders for Question, Communication, and Code Execution panels. Future PRs should integrate those backend services into the frontend.
collab-full

Two users collborating in an active room

Integrate collaboration service backend into Code Editor panel:

  • Monaco editor (vscode dark theme)
  • 4 programming languages: c++, java, javascript, python
  • Yjs for document syncing and persistence support
  • Cursor presence of other users
  • Notify users on basic events
collab-demo.mp4

Note: "Leave Room" would redirect users back to the home page, and they can rejoin the room again. The backend will automatically close the room after 10 minutes of inactivity (i.e., no connected clients).
TODO: We should have a new home page for users to see their active/inactive rooms (so that they can rejoin the room, or view their past collaboration sessions)

Users viewing a read-only display of a closed room

  • Do not establish a Websocket connection if the room is closed.
  • Only show Question panel and Code Editor panel.
  • Display the last Yjs document in a read-only editor.
inactive-room

Error page template (e.g., users accessing an invalid room)

TODO: Will extend to other errors in the next PR together with BE authentication such as:

  • Unauthenticated (users not logged in)
  • Unauthorized (users not belong to this room)
invalid-room

Type of change

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • This change requires a documentation update

Checklist:

  • I have run pnpm lint and pnpm format
  • My code follows the style guidelines of this project
  • I have performed a self-review of my code
  • My changes generate no new warnings
  • Any dependent changes have been merged and published in downstream modules

@ncduy0303 ncduy0303 force-pushed the ncduy0303/collaboration-service-frontend branch from 4251476 to 0374254 Compare October 23, 2025 08:41
Copy link

@songgthu songgthu left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM!

Copy link

@DanielJames0302 DanielJames0302 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM ! In the next PR, it should add a function to get the details of the question from the question id along with room details

- Integrate collaboration service backend with into Code Editor panel
on /practice/:id pages.
- Add placeholder panels for Question, Communication, Code Execution.
@ncduy0303 ncduy0303 force-pushed the ncduy0303/collaboration-service-frontend branch from fce97c5 to 02aaf62 Compare October 28, 2025 14:36
@ncduy0303 ncduy0303 merged commit 9631281 into dev Oct 28, 2025
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants