How sunnybhagure/codecall works
CodeCall is a web application for account-based technical interviews and video meetings. Users register or sign in, reach a dashboard and meeting history, then enter an interview or a video room. The backend provides user, interview, and question APIs backed by MongoDB; its Socket.IO service relays room membership, chat, and WebRTC signaling. The sampled frontend shows the authentication and meeting flows, while interview-question UI/API details are only partly evidenced, so those connections are left unverified rather than inferred.
Main entry points: App.jsx App routing · server.js HTTP server · videoMeet.jsx Meeting entry · userController.js Account and history
Components 25
Frontend experience
- App routing
Frontend/src/App.jsx - Sign-in form
Frontend/src/pages/authentication.jsx - Dashboard
Frontend/src/pages/home.jsx - Meeting history
Frontend/src/pages/history.jsx
Accounts and history
- Auth context
Frontend/src/contexts/AuthContext.jsx - Auth guard
Frontend/src/utils/withAuth.jsx - HTTP server
Backend/server.js - User routes
Backend/routes/userRoutes.js - Account and history
Backend/controller/userController.js - User records
Backend/models/user.js - Meeting history records
Backend/models/meeting.js
Interview domain
- Interview room UI
Frontend/src/pages/interviewRoom.jsx - Interview routes
Backend/routes/interview.js - Interview services
Backend/controller/interview.js - Question routes
Backend/routes/question.js - Question services
Backend/controller/question.js - Question bank
Backend/models/questions.js
Live meetings
- Meeting entry
Frontend/src/pages/videoMeet.jsx - Media lobby
Frontend/src/pages/LobbyPage.jsx - Meeting room
Frontend/src/pages/MeetingRoomPage.jsx - Meeting controls
Frontend/src/Components/ControlsBar.jsx - Chat drawer
Frontend/src/Components/ChatDrawer.jsx - WebRTC session
Frontend/src/hooks/useWebRTC.js - Room signaling
Backend/controller/socketManager.js
Other components
- Visitor
Connections 30
- Visitor → App routing: opens
Frontend/src/App.jsx - App routing → Sign-in form: routes to
Frontend/src/App.jsx - App routing → Dashboard: routes to
Frontend/src/App.jsx - App routing → Meeting history: routes to
Frontend/src/App.jsx - App routing → Interview room UI: routes to
Frontend/src/App.jsx - App routing → Meeting entry: routes to
Frontend/src/App.jsx - App routing → Auth context: provides
Frontend/src/App.jsx - Sign-in form → Auth context: calls
Frontend/src/pages/authentication.jsx - Auth context → User routes: requests
Frontend/src/contexts/AuthContext.jsx - Dashboard → Auth guard: guards
Frontend/src/pages/home.jsx - Meeting history → Auth guard: guards
Frontend/src/pages/history.jsx - HTTP server → User routes: mounts
Backend/server.js - HTTP server → Interview routes: mounts
Backend/server.js - HTTP server → Question routes: mounts
Backend/server.js - User routes → Account and history: dispatches
Backend/routes/userRoutes.js - Account and history → User records: reads and writes
Backend/controller/userController.js - Account and history → Meeting history records: reads and writes
Backend/controller/userController.js - Interview routes → Interview services: dispatches
Backend/routes/interview.js - Interview services → User records: uses
Backend/controller/interview.js - Interview services → Question bank: uses
Backend/controller/interview.js - Question routes → Question services: dispatches
Backend/routes/question.js - Question services → Question bank: uses
Backend/controller/question.js - Meeting entry → Media lobby: renders
Frontend/src/pages/videoMeet.jsx - Meeting entry → Meeting room: renders
Frontend/src/pages/videoMeet.jsx - Meeting entry → WebRTC session: uses
Frontend/src/pages/videoMeet.jsx - Meeting room → Meeting controls: renders
Frontend/src/pages/MeetingRoomPage.jsx - Meeting room → Chat drawer: renders
Frontend/src/pages/MeetingRoomPage.jsx - HTTP server → Room signaling: starts
Backend/server.js - WebRTC session → Room signaling: signals and chats
Frontend/src/hooks/useWebRTC.js - Interview room UI → Interview routes: may request