Skip to content

feat: add repository-based collaboration rooms with GitHub user invites#885

Open
Ishta-P-Jain wants to merge 2 commits into
Priyanshu-byte-coder:mainfrom
Ishta-P-Jain:feat/collab-rooms-459
Open

feat: add repository-based collaboration rooms with GitHub user invites#885
Ishta-P-Jain wants to merge 2 commits into
Priyanshu-byte-coder:mainfrom
Ishta-P-Jain:feat/collab-rooms-459

Conversation

@Ishta-P-Jain
Copy link
Copy Markdown

Summary

Introduces collaborative project rooms where users can create repository-linked discussion spaces and invite collaborators using GitHub usernames.

Closes #459

Type of Change

  • New feature

Changes Made

  • Added collaboration_rooms, room_members, and room_messages tables to supabase/schema.sql
  • Added Supabase Realtime on room_messages and room_members tables
  • Added DB helper functions to src/lib/supabase.ts for all room operations
  • Created src/types/rooms.ts with TypeScript interfaces for all room entities
  • Created API routes:
    • GET/POST /api/rooms — list and create rooms
    • GET/DELETE /api/rooms/[roomId] — room details and delete
    • GET/POST /api/rooms/[roomId]/messages — message history and send
    • POST /api/rooms/[roomId]/invite — invite by GitHub username (validated against GitHub API)
  • Created UI components in src/components/rooms/:
    • CreateRoomModal.tsx — form to create a new room
    • InviteModal.tsx — invite collaborator by GitHub username
    • MembersPanel.tsx — sidebar showing room members
    • MessageFeed.tsx — real-time message list via Supabase Realtime
    • MessageInput.tsx — compose and send messages
  • Created pages:
    • /rooms — list all rooms the user is a member of
    • /rooms/[roomId] — full chat UI with members panel
  • Added "Rooms" link to the dashboard navigation in src/app/dashboard/page.tsx

How to Test

  1. Log in with GitHub OAuth
  2. Click "Rooms" button on the dashboard
  3. Click "+ New Room", fill in room name, GitHub repo owner, and repo name, then click "Create Room"
  4. Verify the room appears in the list
  5. Click the room — you should see the chat UI
  6. Type a message and press Enter — message should appear instantly
  7. Click "+ Invite" in the members panel, enter a valid GitHub username, click "Send Invite"
  8. Verify invalid GitHub usernames show an error
  9. As owner, click "Delete Room" — confirm the room is deleted and you are redirected back

Screenshots (if UI change)

Screenshot 2026-05-23 232516 Screenshot 2026-05-23 232649 Screenshot 2026-05-23 232706

Checklist

  • Linked issue in summary
  • npm run lint passes locally
  • No TypeScript errors (npm run type-check)
  • Self-reviewed the diff
  • Added/updated tests if applicable

@vercel
Copy link
Copy Markdown

vercel Bot commented May 23, 2026

@Ishta-P-Jain is attempting to deploy a commit to the PRIYANSHU DOSHI's projects Team on Vercel.

A member of the Team first needs to authorize it.

@github-actions github-actions Bot added gssoc26 GSSoC 2026 contribution type:feature GSSoC type bonus: new feature labels May 23, 2026
@github-actions
Copy link
Copy Markdown

GSSoC Label Checklist 🏷️

@Priyanshu-byte-coder — please apply the appropriate labels before merging:

Difficulty (pick one):

  • level:beginner — 20 pts
  • level:intermediate — 35 pts
  • level:advanced — 55 pts
  • level:critical — 80 pts

Quality (optional):

  • quality:clean — ×1.2 multiplier
  • quality:exceptional — ×1.5 multiplier

Validation (required to score):

  • gssoc:approved — counts for points
  • gssoc:invalid / gssoc:spam / gssoc:ai-slop — does not score

Type labels (type:*) are auto-detected from files and title. Review and adjust if needed.
Points formula: (difficulty × quality_multiplier) + type_bonus

Copy link
Copy Markdown

@github-actions github-actions Bot left a comment

Choose a reason for hiding this comment

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

Thanks for your first PR on DevTrack! 🎉

A maintainer will review it within 48 hours. While you wait:

  • Make sure CI is passing (type-check + lint)
  • Double-check the PR description is filled out and the issue is linked
  • Feel free to ask questions in Discussions if you need help

If you find DevTrack useful, a ⭐ star on the repo is always appreciated — it helps the project grow and attract more contributors!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

gssoc26 GSSoC 2026 contribution type:feature GSSoC type bonus: new feature

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[FEAT] Add repository-based collaboration rooms with GitHub user invites

1 participant