How brillery/feedback-system works
这是一个面向用户、商家和管理员的反馈与消息系统。主要流程是用户登录后提交反馈,系统保存反馈及初始消息并通知接收方;各角色随后查看反馈、往来消息或更新处理状态,实时通知通过 WebSocket 推送。README 描述了连接与事件机制,采样代码也确认反馈服务会调用实时层。部分服务和前端源码未采样,相关细节仅按 README 与目录能力概括。
Main entry points: main.go HTTP server · handler.go WebSocket endpoint · feedback.go Feedback service · feedback_message.go Message service
Components 26
Web clients
- User interface
static/js/user.js - Merchant interface
static/js/merchant.js - Admin interface
static/js/admin.js - Registration interface
static/js/register.js - Browser WebSocket
static/js/config.js
HTTP API
- HTTP server
cmd/main.go - Authentication
internal/middleware/auth.go - User endpoints
internal/handler/user.go - Feedback endpoints
internal/handler/feedback.go - Message endpoints
internal/handler/feedback_message.go - Image upload
internal/handler/upload.go
Feedback domain
- Feedback service
internal/service/feedback.go - Message service
internal/service/feedback_message.go - User service
internal/service/user.go
Realtime messaging
- WebSocket endpoint
pkg/ws/handler.go - Connection pumps
pkg/ws/client.go - Connection hub
pkg/ws/hub.go - Client connection
pkg/ws/ws_client.go
Persistence
- Feedback repository
internal/repository/feedback.go - Message repository
internal/repository/feedback_message.go - User repository
internal/repository/user.go - MySQL database
pkg/db/db.go
Other components
- User
- Merchant
- Administrator
- Uploaded images
Connections 39
- User → User interface: uses
- Merchant → Merchant interface: uses
- Administrator → Admin interface: uses
- User → Registration interface: registers
- User interface → HTTP server: API requests
- Merchant interface → HTTP server: API requests
- Admin interface → HTTP server: API requests
- Registration interface → HTTP server: API requests
- HTTP server → Authentication: guards routes
- HTTP server → User endpoints: routes requests
- HTTP server → Feedback endpoints: routes requests
- HTTP server → Message endpoints: routes requests
- HTTP server → Image upload: routes requests
- User endpoints → User service: calls
- Authentication → User service: validates token
- Feedback endpoints → Feedback service: calls
- Message endpoints → Message service: calls
- Feedback service → Feedback repository: reads and writes
- Feedback service → Message repository: creates and deletes
- Feedback service → User repository: looks up users
- Message service → Message repository: reads and writes
- Message service → Feedback repository: reads feedback
- Message service → User repository: looks up users
- User service → User repository: reads and writes
- Feedback repository → MySQL database: persists feedback
- Message repository → MySQL database: persists messages
- User repository → MySQL database: persists users
- Image upload → Uploaded images: stores images
- User interface → Browser WebSocket: opens connection
- Merchant interface → Browser WebSocket: opens connection
- Admin interface → Browser WebSocket: opens connection
- Browser WebSocket → WebSocket endpoint: connects
- WebSocket endpoint → Client connection: creates client
- WebSocket endpoint → Connection hub: registers client
- WebSocket endpoint → Connection pumps: starts pumps
- Connection pumps → Connection hub: dispatches events
- Connection hub → Client connection: queues delivery
- Feedback service → WebSocket endpoint: notifies changes
- Message service → WebSocket endpoint: notifies messages