How duc-hust-et1/lan_media works
LAN-Media is a LAN-priority multimedia messaging app: users register or log in, then chat in direct or group conversations, transfer files, and make voice/video calls. The graph separates frontend interaction, backend API and realtime handling, domain services, persistence, and LAN discovery. README capabilities are included where source excerpts are incomplete; dashed links mark documented or plausible integration points whose runtime wiring was not shown.
Main entry points: main.ts HTTP entrypoint · App.tsx App routing · FileController.ts File controller · repositories Data repositories
Components 32
Frontend experience
- App routing
frontend/src/App.tsx - Auth UI
frontend/src/hooks/useAuth.ts - Auth client
frontend/src/api/AuthApi.ts - Chat workspace
frontend/src/pages/ChatPage/ChatPage.tsx - Chat client
frontend/src/api/ChatApi.ts - File UI
frontend/src/components/chat/FileMessage.tsx - Call interface
frontend/src/components/call/CallDialog.tsx - WebRTC calls
frontend/src/hooks/useCall.ts - Realtime client
frontend/src/api/RealtimeClient.ts - Network settings
frontend/src/components/NetworkManagement.tsx
Backend API
- HTTP entrypoint
backend/src/main.ts - Auth routes
backend/src/routes/AuthRoutes.ts - Chat routes
backend/src/routes/ChatRoutes.ts - File routes
backend/src/routes/FileRoutes.ts - Auth controller
backend/src/controllers/AuthController.ts - Chat controller
backend/src/controllers/ChatController.ts - File controller
backend/src/controllers/FileController.ts
Realtime and calls
- Call signaling
backend/src/websocket/handlers/CallHandler.ts - WebSocket server
backend/src/websocket/WebSocketServer.ts - Connections
backend/src/websocket/ConnectionManager.ts
Domain services
- Authentication
backend/src/services/AuthService.ts - Conversations
backend/src/services/ChatService.ts - File transfer
backend/src/services/FileService.ts - Call lifecycle
backend/src/services/CallService.ts
Persistence and files
- Data repositories
backend/src/repositories - Database access
backend/src/core/database/Database.ts - MySQL
- Server file storage
LAN discovery
- Network discovery
backend/src/services/NetworkDiscoveryService.ts - Network status
backend/src/services/NetworkStatusService.ts - LAN discovery
backend/src/core/network/LanDiscovery.ts
Other components
- User
Connections 40
- User → App routing: uses
README.md - App routing → Auth UI: uses
frontend/src/App.tsx - Auth UI → Auth client: calls
frontend/src/hooks/useAuth.ts - App routing → Chat workspace: renders
frontend/src/App.tsx - Chat workspace → Chat client: calls
frontend/src/pages/ChatPage/ChatPage.tsx - Chat workspace → File UI: renders
frontend/src/pages/ChatPage/ChatPage.tsx - App routing → WebRTC calls: uses
frontend/src/App.tsx - App routing → Call interface: renders
frontend/src/App.tsx - Call interface → WebRTC calls: uses
frontend/src/components/call/CallDialog.tsx - WebRTC calls → Realtime client: signals through
frontend/src/hooks/useCall.ts - App routing → Realtime client: connects via
frontend/src/App.tsx - User → Network settings: manages network
README.md - Auth client → HTTP entrypoint: HTTP requests
- Chat client → HTTP entrypoint: HTTP requests
- Realtime client → WebSocket server: WebSocket events
- HTTP entrypoint → Auth routes: registers
backend/src/main.ts - HTTP entrypoint → Chat routes: registers
backend/src/main.ts - HTTP entrypoint → File routes: registers
backend/src/main.ts - Auth routes → Auth controller: routes to
backend/src/routes/AuthRoutes.ts - Chat routes → Chat controller: routes to
backend/src/routes/ChatRoutes.ts - File routes → File controller: routes to
backend/src/routes/FileRoutes.ts - Auth controller → Authentication: calls
backend/src/controllers/AuthController.ts - Chat controller → Conversations: calls
backend/src/controllers/ChatController.ts - Chat controller → Connections: dispatches messages
backend/src/controllers/ChatController.ts - File controller → File transfer: calls
backend/src/controllers/FileController.ts - File controller → Conversations: gets conversation
backend/src/controllers/FileController.ts - File controller → Connections: dispatches file message
backend/src/controllers/FileController.ts - Authentication → Data repositories: uses
backend/src/services/AuthService.ts - Conversations → Data repositories: uses
backend/src/controllers/ChatController.ts - File transfer → Data repositories: uses
backend/src/services/FileService.ts - Data repositories → Database access: queries
backend/src/repositories/SessionRepository.ts - Database access → MySQL: executes SQL
backend/src/core/database/Database.ts - File controller → Server file storage: streams downloads
backend/src/controllers/FileController.ts - HTTP entrypoint → WebSocket server: starts
backend/src/main.ts - WebSocket server → Call signaling: dispatches calls
- Call signaling → Call lifecycle: calls
backend/src/websocket/handlers/CallHandler.ts - Call signaling → Connections: sends events
backend/src/websocket/handlers/CallHandler.ts - HTTP entrypoint → Network discovery: starts
backend/src/main.ts - Network discovery → LAN discovery: uses
- Network settings → Network discovery: configures discovery