How divya0523466/real_time_collaboration works
WorkNest is a real-time team collaboration application. Users sign in, enter or create workspaces, manage channels and members, then collaborate through channel conversations and direct messages, with unread tracking, notifications, and file uploads supporting that work. The graph emphasizes those product stages and the backend’s persistence and real-time dispatch. Source excerpts establish key channel, message, workspace, and notification relationships; other capabilities are represented from the repository tree, with uncertain wiring omitted.
Main entry points: server.js Socket server · App.jsx App routes · SlackShell.jsx Workspace shell · workspaceController.js Workspace management
Components 34
Web client
- App routes
src/App.jsx - Sign-in UI
src/components/auth/AuthModal.jsx - Workspace dashboard
src/components/dashboard/GlobalDashboard.jsx - Workspace shell
src/components/dashboard/SlackShell.jsx - Workspace state
src/context/WorkspaceContext.jsx - Direct messages
src/components/dashboard/DirectMessaging.jsx - Channel threads
src/components/dashboard/ChannelMessageThread.jsx - Member invitations
src/components/dashboard/InviteMemberModal.jsx - Notification panel
src/components/dashboard/NotificationPanel.jsx - File upload UI
src/components/common/FileUpload.jsx
Identity
- Auth routes
backend/routes/authRoutes.js - Auth handlers
backend/controllers/authController.js - Google sign-in
backend/controllers/googleAuthController.js
Workspace collaboration
- Workspace management
backend/controllers/workspaceController.js - Channel management
backend/controllers/channelController.js - Invitation routes
backend/routes/invitationRoutes.js - Channel routes
backend/routes/channelRoutes.js
Messaging
- Message routes
backend/routes/messageRoutes.js - Message queries
backend/controllers/messageController.js - Socket server
backend/server.js
Backend services
- Upload routes
backend/routes/uploadRoutes.js - Upload handler
backend/controllers/uploadController.js - Notification service
backend/utils/notificationService.js - Notification routes
backend/routes/notificationRoutes.js - Cloudinary storage
backend/utils/cloudinary.js - User records
backend/models/User.js - Workspace records
backend/models/Workspace.js - Workspace memberships
backend/models/WorkspaceMembership.js - Channels
backend/models/Channel.js - Direct messages
backend/models/Message.js - Channel messages
backend/models/ChannelMessage.js - Read cursors
backend/models/ChannelReadState.js - Notifications
backend/models/Notification.js
Other components
- Team member
Connections 40
- Team member → App routes: uses
- App routes → Sign-in UI: opens
- App routes → Workspace dashboard: routes
- App routes → Workspace shell: routes
- Sign-in UI → Auth routes: authenticates
- Auth routes → Auth handlers: dispatches
- Auth handlers → User records: reads/writes
- Auth routes → Google sign-in: dispatches
- Workspace dashboard → Workspace state: uses
- Workspace shell → Workspace state: uses
- Workspace dashboard → Workspace management: requests
- Workspace management → Workspace records: reads/writes
- Workspace management → Workspace memberships: reads/writes
- Workspace management → Channels: creates default
- Workspace shell → Channel routes: requests
- Channel routes → Channel management: dispatches
- Channel management → Channels: reads/writes
- Channel management → Workspace memberships: checks roles
- Member invitations → Invitation routes: requests
- Workspace shell → Channel threads: shows
- Channel threads → Socket server: sends events
- Socket server → Channel messages: reads/writes
- Socket server → Read cursors: updates
- Socket server → Workspace memberships: checks access
- Channel threads → Message routes: loads history
- Message routes → Message queries: dispatches
- Message queries → Channel messages: reads
- Message queries → Read cursors: updates
- Message queries → Direct messages: counts unread
- Direct messages → Socket server: sends events
- Socket server → Direct messages: reads/writes
- Notification panel → Notification routes: requests
- Notification routes → Notifications: reads/writes
- Socket server → Notification service: creates alerts
- Channel management → Notification service: creates alerts
- Notification service → Notifications: writes
- Notification service → Socket server: emits alerts
- File upload UI → Upload routes: uploads
- Upload routes → Upload handler: dispatches
- Upload handler → Cloudinary storage: stores files