# ujjwal-singh32/mindora-new architecture

> Architecture diagram of the GitHub repository ujjwal-singh32/mindora-new, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-10). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/ujjwal-singh32/mindora-new
- Repository: https://github.com/ujjwal-singh32/mindora-new

## Overview

Brainbridge is a real-time collaborative study platform organized around study rooms. The principal workflow is entering a room and using its member, resource, communication, and assessment features. The room page is documented as the collaboration hub, with its feature components rendered from a component map. The graph preserves those documented capabilities; source excerpts do not show how the room features call API routes or how the socket and voice services are wired, so those relationships are omitted.

Main entry points: [`src/app/rooms/[id]/page.jsx`](https://github.com/ujjwal-singh32/mindora-new/blob/main/src/app/rooms/%5Bid%5D/page.jsx) (Room hub), [`src/components/roomFeatures/Members.jsx`](https://github.com/ujjwal-singh32/mindora-new/blob/main/src/components/roomFeatures/Members.jsx) (Members), [`src/components/roomFeatures/InviteMembers.jsx`](https://github.com/ujjwal-singh32/mindora-new/blob/main/src/components/roomFeatures/InviteMembers.jsx) (Invite members), [`src/components/roomFeatures/UploadNotes.jsx`](https://github.com/ujjwal-singh32/mindora-new/blob/main/src/components/roomFeatures/UploadNotes.jsx) (Upload notes)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_rooms["Room collaboration"]
  node_room_hub["Room hub<br/>[page.jsx]"]
  node_members["Members<br/>[Members.jsx]"]
  node_invites["Invite members<br/>[InviteMembers.jsx]"]
end

subgraph group_resources["Shared resources"]
  node_upload_notes["Upload notes<br/>[UploadNotes.jsx]"]
  node_uploaded_notes["Uploaded notes<br/>[UploadedNotes.jsx]"]
  node_upload_images["Upload images<br/>[UploadImages.jsx]"]
  node_uploaded_images["Browse images<br/>[UploadedImages.jsx]"]
  node_add_links["Add links"]
  node_links["Browse links<br/>[YoutubeLinks.jsx]"]
  node_short_notes["Short notes<br/>[ShortNotes.jsx]"]
end

subgraph group_interaction["Live interaction"]
  node_voice["Voice channel<br/>[VoiceChannel.jsx]"]
  node_whiteboard["Whiteboard<br/>[Whiteboard.jsx]"]
  node_announcements["View announcements<br/>[Announcements.jsx]"]
  node_announce["Post announcements<br/>[AnnounceToRoom.jsx]"]
  node_chat["Room chat<br/>[Chats.jsx]"]
end

subgraph group_assessment["Learning assessment"]
  node_generate_quiz["Generate quiz<br/>[GenerateQuiz.jsx]"]
  node_attempt_quiz["Attempt quiz<br/>[AttemptQuiz.jsx]"]
  node_leaderboard["Leaderboard"]
end

node_student(("Student"))

node_student -->|"collaborates in"| node_room_hub
node_room_hub -->|"renders"| node_members
node_room_hub -->|"renders"| node_invites
node_room_hub -->|"renders"| node_upload_notes
node_room_hub -->|"renders"| node_uploaded_notes
node_room_hub -->|"renders"| node_upload_images
node_room_hub -->|"renders"| node_uploaded_images
node_room_hub -->|"renders"| node_add_links
node_room_hub -->|"renders"| node_links
node_room_hub -->|"renders"| node_short_notes
node_room_hub -->|"renders"| node_voice
node_room_hub -->|"renders"| node_whiteboard
node_room_hub -->|"renders"| node_announcements
node_room_hub -->|"renders"| node_announce
node_room_hub -.->|"renders"| node_chat
node_room_hub -->|"renders"| node_generate_quiz
node_room_hub -->|"renders"| node_attempt_quiz
node_room_hub -->|"renders"| node_leaderboard

click node_room_hub "https://github.com/ujjwal-singh32/mindora-new/blob/main/src/app/rooms/%5Bid%5D/page.jsx"
click node_members "https://github.com/ujjwal-singh32/mindora-new/blob/main/src/components/roomFeatures/Members.jsx"
click node_invites "https://github.com/ujjwal-singh32/mindora-new/blob/main/src/components/roomFeatures/InviteMembers.jsx"
click node_upload_notes "https://github.com/ujjwal-singh32/mindora-new/blob/main/src/components/roomFeatures/UploadNotes.jsx"
click node_uploaded_notes "https://github.com/ujjwal-singh32/mindora-new/blob/main/src/components/roomFeatures/UploadedNotes.jsx"
click node_upload_images "https://github.com/ujjwal-singh32/mindora-new/blob/main/src/components/roomFeatures/UploadImages.jsx"
click node_uploaded_images "https://github.com/ujjwal-singh32/mindora-new/blob/main/src/components/roomFeatures/UploadedImages.jsx"
click node_add_links "https://github.com/ujjwal-singh32/mindora-new/blob/main/src/components/roomFeatures/AddYoutubeLinks.jsx"
click node_links "https://github.com/ujjwal-singh32/mindora-new/blob/main/src/components/roomFeatures/YoutubeLinks.jsx"
click node_short_notes "https://github.com/ujjwal-singh32/mindora-new/blob/main/src/components/roomFeatures/ShortNotes.jsx"
click node_voice "https://github.com/ujjwal-singh32/mindora-new/blob/main/src/components/roomFeatures/VoiceChannel.jsx"
click node_whiteboard "https://github.com/ujjwal-singh32/mindora-new/blob/main/src/components/roomFeatures/Whiteboard.jsx"
click node_announcements "https://github.com/ujjwal-singh32/mindora-new/blob/main/src/components/roomFeatures/Announcements.jsx"
click node_announce "https://github.com/ujjwal-singh32/mindora-new/blob/main/src/components/roomFeatures/AnnounceToRoom.jsx"
click node_chat "https://github.com/ujjwal-singh32/mindora-new/blob/main/src/components/roomFeatures/Chats.jsx"
click node_generate_quiz "https://github.com/ujjwal-singh32/mindora-new/blob/main/src/components/roomFeatures/GenerateQuiz.jsx"
click node_attempt_quiz "https://github.com/ujjwal-singh32/mindora-new/blob/main/src/components/roomFeatures/AttemptQuiz.jsx"
click node_leaderboard "https://github.com/ujjwal-singh32/mindora-new/blob/main/src/components/roomFeatures/ShowLeaderboard.jsx"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_room_hub,node_members,node_invites toneBlue
class node_upload_notes,node_uploaded_notes,node_upload_images,node_uploaded_images,node_add_links,node_links,node_short_notes toneAmber
class node_voice,node_whiteboard,node_announcements,node_announce,node_chat toneMint
class node_generate_quiz,node_attempt_quiz,node_leaderboard toneRose
class node_student toneIndigo
```

## Components

### Room collaboration

- [Room hub](https://github.com/ujjwal-singh32/mindora-new/blob/main/src/app/rooms/%5Bid%5D/page.jsx): `src/app/rooms/[id]/page.jsx`
- [Members](https://github.com/ujjwal-singh32/mindora-new/blob/main/src/components/roomFeatures/Members.jsx): `src/components/roomFeatures/Members.jsx`
- [Invite members](https://github.com/ujjwal-singh32/mindora-new/blob/main/src/components/roomFeatures/InviteMembers.jsx): `src/components/roomFeatures/InviteMembers.jsx`

### Shared resources

- [Upload notes](https://github.com/ujjwal-singh32/mindora-new/blob/main/src/components/roomFeatures/UploadNotes.jsx): `src/components/roomFeatures/UploadNotes.jsx`
- [Uploaded notes](https://github.com/ujjwal-singh32/mindora-new/blob/main/src/components/roomFeatures/UploadedNotes.jsx): `src/components/roomFeatures/UploadedNotes.jsx`
- [Upload images](https://github.com/ujjwal-singh32/mindora-new/blob/main/src/components/roomFeatures/UploadImages.jsx): `src/components/roomFeatures/UploadImages.jsx`
- [Browse images](https://github.com/ujjwal-singh32/mindora-new/blob/main/src/components/roomFeatures/UploadedImages.jsx): `src/components/roomFeatures/UploadedImages.jsx`
- [Add links](https://github.com/ujjwal-singh32/mindora-new/blob/main/src/components/roomFeatures/AddYoutubeLinks.jsx): `src/components/roomFeatures/AddYoutubeLinks.jsx`
- [Browse links](https://github.com/ujjwal-singh32/mindora-new/blob/main/src/components/roomFeatures/YoutubeLinks.jsx): `src/components/roomFeatures/YoutubeLinks.jsx`
- [Short notes](https://github.com/ujjwal-singh32/mindora-new/blob/main/src/components/roomFeatures/ShortNotes.jsx): `src/components/roomFeatures/ShortNotes.jsx`

### Live interaction

- [Voice channel](https://github.com/ujjwal-singh32/mindora-new/blob/main/src/components/roomFeatures/VoiceChannel.jsx): `src/components/roomFeatures/VoiceChannel.jsx`
- [Whiteboard](https://github.com/ujjwal-singh32/mindora-new/blob/main/src/components/roomFeatures/Whiteboard.jsx): `src/components/roomFeatures/Whiteboard.jsx`
- [View announcements](https://github.com/ujjwal-singh32/mindora-new/blob/main/src/components/roomFeatures/Announcements.jsx): `src/components/roomFeatures/Announcements.jsx`
- [Post announcements](https://github.com/ujjwal-singh32/mindora-new/blob/main/src/components/roomFeatures/AnnounceToRoom.jsx): `src/components/roomFeatures/AnnounceToRoom.jsx`
- [Room chat](https://github.com/ujjwal-singh32/mindora-new/blob/main/src/components/roomFeatures/Chats.jsx): `src/components/roomFeatures/Chats.jsx`

### Learning assessment

- [Generate quiz](https://github.com/ujjwal-singh32/mindora-new/blob/main/src/components/roomFeatures/GenerateQuiz.jsx): `src/components/roomFeatures/GenerateQuiz.jsx`
- [Attempt quiz](https://github.com/ujjwal-singh32/mindora-new/blob/main/src/components/roomFeatures/AttemptQuiz.jsx): `src/components/roomFeatures/AttemptQuiz.jsx`
- [Leaderboard](https://github.com/ujjwal-singh32/mindora-new/blob/main/src/components/roomFeatures/ShowLeaderboard.jsx): `src/components/roomFeatures/ShowLeaderboard.jsx`

### Other components

- **Student**

## Connections

- Student → Room hub: collaborates in (evidence: `README.md`)
- Room hub → Members: renders (evidence: `README.md`)
- Room hub → Invite members: renders (evidence: `README.md`)
- Room hub → Upload notes: renders (evidence: `README.md`)
- Room hub → Uploaded notes: renders (evidence: `README.md`)
- Room hub → Upload images: renders (evidence: `README.md`)
- Room hub → Browse images: renders (evidence: `README.md`)
- Room hub → Add links: renders (evidence: `README.md`)
- Room hub → Browse links: renders (evidence: `README.md`)
- Room hub → Short notes: renders (evidence: `README.md`)
- Room hub → Voice channel: renders (evidence: `README.md`)
- Room hub → Whiteboard: renders (evidence: `README.md`)
- Room hub → View announcements: renders (evidence: `README.md`)
- Room hub → Post announcements: renders (evidence: `README.md`)
- Room hub → Room chat: renders
- Room hub → Generate quiz: renders (evidence: `README.md`)
- Room hub → Attempt quiz: renders (evidence: `README.md`)
- Room hub → Leaderboard: renders (evidence: `README.md`)
