How anwesha24-code/zoom works
1. This repository is a two-tier Zoom-like meeting app: a React frontend and a Node.js backend. The frontend owns the user experience for auth, meeting entry, live video, and history; the backend owns user/data APIs and real-time socket coordination.
2. The frontend lives under frontend/ and is a standard React single-page app. Its main screens are landing, home, authentication, VideoMeet, and history, which suggests the app flow is: arrive, sign in, join or host a meeting, then review meeting history.
3. Authentication state is centralized in frontend/src/contexts/AuthContext.jsx, with withAuth.jsx acting as a route guard/wrapper. That means protected screens such as meeting and history views are gated on client-side auth state rather than being left completely open.
4. The live meeting experience is isolated in frontend/src/pages/VideoMeet.jsx with supporting UI modules and styles. This is the likely browser-side surface for camera/microphone/video room interactions, while the actual real-time coordination is pushed to the backend socket layer.
5. The backend is a Node service organized around src/app.js, routes, controllers, and models. users.routes.js exposes the user-facing HTTP API, user.controller.js contains the request handling logic, and the user.model.js / meeting.model.js files define persistence boundaries for identity and meeting records.
6. src/controllers/socketManager.js is the key real-time subsystem. Its presence implies a socket-based channel, likely used for signaling, room join/leave events, and meeting coordination that must happen outside normal request/response HTTP flow.
7. The data path is split between two communication styles: HTTP for user/account/meeting metadata, and sockets for live session orchestration. In a typical flow, the frontend authenticates over HTTP, then opens a socket connection for the meeting room once the user enters VideoMeet.
8. Meeting history is a separate domain slice, surfaced in frontend/src/pages/history.jsx and backed by the meeting model on the server. This indicates the app persists meeting events or summaries rather than treating sessions as purely ephemeral.
9. The repo contains duplicated backend structure at both Backend/src/ and root-level src/, with matching controllers, models, and routes. That usually means one copy is a deployment variant or an older mirrored backend; for architecture diagrams, treat them as the same server boundary unless there is evidence they are deployed separately.
10. Styling and UI composition are local to the frontend and do not appear to be split into a design system or external component library. The app uses a small set of reusable UI pieces under pages/components plus CSS modules and context-driven state.
11. The only clearly defined external boundary from the file tree is the browser-to-server interface. No separate queue, microservice, or third-party backend is evident from the tree, so the architecture is best drawn as a client app talking to a single backend service with both REST and socket endpoints.
12. In diagram terms, the core subsystems are: React UI, auth/state context, protected routes, HTTP API controllers, socket manager, and persistence models. The important arrows are browser UI to HTTP API, browser UI to socket channel, and backend controllers/socket manager to the data models.
Main entry points: App.js React App · withAuth.jsx Route Guard · app.js Backend App · user.controller.js User Controller
Components 15
Frontend
React single-page app for auth, meeting entry, live room, and history
- React App · Top-level client app and routing entry
frontend/src/App.js - Landing · Public arrival and entry screen
frontend/src/pages/landing.jsx - Home · Main signed-in meeting hub
frontend/src/pages/home.jsx - Sign In · Authentication and sign-in UI
frontend/src/pages/authentication.jsx - Video Meet · Live meeting experience with media controls
frontend/src/pages/VideoMeet.jsx - History · Meeting history and past session view
frontend/src/pages/history.jsx - Auth Context · Centralized authentication state and session context
frontend/src/contexts/AuthContext.jsx - Route Guard · Wraps protected pages behind auth state
frontend/src/utils/withAuth.jsx - UI Pieces · Reusable sign-in and page composition components
frontend/src/pages/components/SignInCard.js
Backend
Node service exposing HTTP APIs and real-time socket coordination
- Backend App · Server entry and API composition; mirrored under Backend/src
src/app.js - User Routes · User-facing REST endpoints
src/routes/users.routes.js - User Controller · HTTP request handling and business logic
src/controllers/user.controller.js - Socket Manager · Real-time room signaling and meeting coordination
src/controllers/socketManager.js - User Model · User identity and account persistence boundary
src/models/user.model.js - Meeting Model · Meeting records and history persistence boundary
src/models/meeting.model.js
Connections 18
- React App → Landing: routes to · Client navigation starts at landing
- React App → Home: routes to · Signed-in landing area
- React App → Sign In: routes to · Authentication entry
- React App → Video Meet: routes to · Live meeting screen
- React App → History: routes to · Past meetings view
- Auth Context → Route Guard: powers · Auth state gates protected routes
- Route Guard → Video Meet: guards · Protects live meeting room
- Route Guard → History: guards · Protects history view
- Route Guard → Home: guards · Protects signed-in area
- UI Pieces → Sign In: composes · Sign-in UI is assembled from shared pieces
- Video Meet → Backend App: HTTP + socket · Authenticates over HTTP and joins meeting over realtime channel
- History → Backend App: HTTP · Loads meeting history from server
- Backend App → User Routes: mounts · API route registration
- User Routes → User Controller: delegates · Routes dispatch to request handlers
- User Controller → User Model: reads/writes · User data persistence
- User Controller → Meeting Model: reads/writes · Meeting metadata and history persistence
- Backend App → Socket Manager: initializes · Realtime coordination subsystem
- Socket Manager → Meeting Model: updates · Socket-driven meeting events may persist to history