How codeplaygroundhub/pasochat works
PASO is a realtime messaging and communication platform: users authenticate, create or join conversations, exchange persistent messages with realtime delivery, and use media, AI assistance, calling, and temporary statuses. The backend exposes REST workflows alongside Socket.IO, with MongoDB persistence and Redis-based realtime scaling described in the README. Administration and reporting form a separate moderation branch. Several feature modules were not sampled; their paths are supported by the tree, but uncertain call-level wiring is omitted.
Main entry points: index.js Express API · message.controller.js Message workflows · App.jsx React application · socket.js Socket.IO server
Components 34
Client experience
- React application
frontend/src/App.jsx - Auth state
frontend/src/store/useAuthStore.js - Chat experience
frontend/src/pages/HomePage.jsx - Chat state
frontend/src/store/useChatStore.js - Voice/video calls
frontend/src/store/useCallStore.js - Admin console
frontend/src/pages/AdminDashboard.jsx
Application API
- Express API
backend/src/index.js - Authentication
backend/src/controllers/auth.controller.js - Group conversations
backend/src/controllers/group.controller.js - Message workflows
backend/src/controllers/message.controller.js - Temporary statuses
backend/src/controllers/status.controller.js - Polls
backend/src/controllers/poll.controller.js - User features
backend/src/controllers/user.controller.js - MongoDB connection
backend/src/lib/db.js - User records
backend/src/models/user.model.js - Message records
backend/src/models/message.model.js - Group records
backend/src/models/group.model.js - Status records
backend/src/models/status.model.js - Poll records
backend/src/models/poll.model.js
Realtime communication
- Socket.IO server
backend/src/lib/socket.js - Redis Pub/Sub
backend/src/lib/redis.js
AI and media
- AI workflows
backend/src/services/ai.service.js - ML client
backend/src/lib/mlService.js - Moderation inference
ml-service/app.py - GIF search
backend/src/services/gif.service.js - Cloudinary media
backend/src/lib/cloudinary.js
Administration
- Admin and reports
backend/src/controllers/admin.controller.js - Report workflows
backend/src/controllers/report.controller.js - Report records
backend/src/models/report.model.js
Other components
- User
- Groq API
- GIPHY
- Cloudinary service
- ZegoCloud calling
Connections 42
- User → React application: uses
- React application → Auth state: checks identity
- Auth state → Express API: auth requests
- Express API → Authentication: dispatches auth
- Authentication → User records: reads/writes users
- Authentication → Cloudinary media: uploads profile media
- Cloudinary media → Cloudinary service: uploads
- React application → Chat experience: renders chat
- Chat experience → Chat state: uses chat state
- Chat state → Express API: conversation requests
- Express API → Message workflows: dispatches messages
- Express API → Group conversations: dispatches groups
- Express API → Temporary statuses: dispatches statuses
- Express API → Polls: dispatches polls
- Express API → User features: dispatches users
- Message workflows → Message records: reads/writes messages
- Message workflows → Group records: checks membership
- Group conversations → Group records: reads/writes groups
- Group conversations → User records: validates members
- Temporary statuses → Status records: reads/writes statuses
- Polls → Poll records: reads/writes polls
- User features → User records: reads/writes users
- Message workflows → ML client: analyzes text
- ML client → Moderation inference: sends analysis
- Moderation inference → Message workflows: returns scores/replies
- Message workflows → Socket.IO server: emits message events
- Auth state → Socket.IO server: connects socket
- Socket.IO server → Chat state: delivers events
- Socket.IO server → Redis Pub/Sub: synchronizes events
- Message workflows → Cloudinary media: uploads attachments
- Express API → AI workflows: dispatches AI routes
- AI workflows → Groq API: requests generation
- Express API → GIF search: dispatches GIF routes
- GIF search → GIPHY: searches/trends
- React application → Voice/video calls: renders calling
- Voice/video calls → ZegoCloud calling: places calls
- Express API → Admin and reports: dispatches admin
- Express API → Report workflows: dispatches reports
- Report workflows → Report records: reads/writes reports
- Admin console → Express API: admin requests
- Admin and reports → User records: manages accounts
- Express API → MongoDB connection: connects persistence