How srinuk9570/nexa-message works
Nexa Message is a full-stack communications app. Users authenticate, enter a routed client, and use messaging, community, social, calling, and assistant features; the client communicates with Express over HTTP and with Socket.io for live events. The README documents additional media and document capabilities whose backend wiring is not shown in the sampled source. The graph reflects documented capabilities and sampled entry points; unsampled route internals are represented at their exact tree paths.
Main entry points: index.js API and socket host · api.js HTTP client · Message.js Domain models · SocketContext.js Socket client
Components 33
Client experience
- App routes
client/src/App.js - AI assistant
client/src/pages/AIPage.js - Documents media
client/src/pages/DocumentsPage.js - Global search
client/src/components/Search/GlobalSearch.js - HTTP client
client/src/utils/api.js
Identity and people
- Auth state
client/src/context/AuthContext.js - Profiles settings
client/src/pages/ProfilePage.js - Authentication routes
server/routes/auth.js - User routes
server/routes/users.js
Messaging and calls
- Direct chat
client/src/pages/ChatPage.js - Group chat
client/src/pages/GroupsPage.js - Voice video calls
client/src/pages/CallsPage.js - Socket client
client/src/context/SocketContext.js - Message routes
server/routes/messages.js - Call history routes
server/routes/calls.js - Realtime signaling
server/socket/socketHandler.js
Social spaces
- Communities
client/src/pages/CommunitiesPage.js - Explore communities
client/src/pages/ExploreCommunitiesPage.js - Public feed
client/src/pages/FeedPage.js - Stories
client/src/pages/StoriesPage.js - Social routes
server/routes/communities.js - Feed routes
server/routes/posts.js - Story routes
server/routes/stories.js
Server platform
- API and socket host
server/index.js - Search routes
server/routes/search.js - AI routes
server/routes/ai.js - Translation routes
server/routes/translate.js - Domain models
server/models/Message.js - MongoDB connection
server/config/database.js
Other components
- App user
- Fast2SMS
- Google Gemini
- Browser
Connections 44
- App user → Browser: uses
- Browser → App routes: loads
- App routes → Auth state: provides auth
- App user → Auth state: signs in
- Auth state → HTTP client: requests auth
- HTTP client → API and socket host: HTTP requests
- API and socket host → Authentication routes: dispatches
- API and socket host → User routes: dispatches
- API and socket host → Message routes: dispatches
- API and socket host → Social routes: dispatches
- API and socket host → Feed routes: dispatches
- API and socket host → Story routes: dispatches
- API and socket host → Search routes: dispatches
- API and socket host → AI routes: dispatches
- API and socket host → Translation routes: dispatches
- API and socket host → Call history routes: dispatches
- Authentication routes → Fast2SMS: sends OTP
- AI routes → Google Gemini: prompts
- Direct chat → HTTP client: loads history
- Direct chat → Socket client: live messaging
- Group chat → HTTP client: group actions
- Group chat → Socket client: live messages
- Communities → HTTP client: community actions
- Communities → Socket client: channel messages
- Explore communities → HTTP client: browses joins
- Public feed → HTTP client: feed actions
- Stories → HTTP client: story actions
- Voice video calls → HTTP client: call history
- Voice video calls → Socket client: call signaling
- AI assistant → HTTP client: assistant requests
- Documents media → HTTP client: file actions
- Profiles settings → HTTP client: profile actions
- Global search → HTTP client: searches
- Socket client → API and socket host: socket connection
- API and socket host → Realtime signaling: initializes
- Realtime signaling → Message routes: creates messages
- Authentication routes → Domain models: reads writes
- User routes → Domain models: reads writes
- Message routes → Domain models: reads writes
- Social routes → Domain models: reads writes
- Feed routes → Domain models: reads writes
- Story routes → Domain models: reads writes
- API and socket host → MongoDB connection: connects
- Domain models → MongoDB connection: persists data