Overview
Add real-time communication via WebSockets for live updates and notifications.
Background
REST API provides request-response but users need real-time updates for quest status, submissions, and payouts.
Specifications
Events to Stream:
- New quest notifications
- Submission status updates
- Payout confirmations
- Live chat support
- Real-time analytics
- Quest deadline alerts
- Reputation changes
Tasks:
- Configure WebSocket gateway
- Create event channels
- Implement authentication
- Build subscription management
- Add message persistence
- Create reconnection logic
- Implement rate limiting for WS
- Add broadcast capabilities
Impacted Files:
- src/modules/websocket/websocket.gateway.ts (new)
- src/modules/websocket/websocket.module.ts (new)
- src/modules/websocket/entities/ws-subscription.entity.ts (new)
- src/common/guards/ws-auth.guard.ts (new)
- src/events/handlers/websocket-event.handlers.ts (new)
Labels: backend, websocket, real-time, streaming, notifications
Acceptance Criteria
- WebSocket connections established
- Authentication works
- Clients can subscribe to channels
- Events pushed in real-time
- Reconnection handled
- Rate limiting prevents abuse
- Broadcast to groups works
- Message history available
🙌Contribution Guidelines:
Assignment required before PR submission
Timeframe: 96-120 hours
Create a screenshot of your implementation/s or sever running
PR description must include: Close #[issue-number]
Star the repo⭐
For more context, please refer to the backend README 🚀
Overview
Add real-time communication via WebSockets for live updates and notifications.
Background
REST API provides request-response but users need real-time updates for quest status, submissions, and payouts.
Specifications
Events to Stream:
Tasks:
Impacted Files:
Labels: backend, websocket, real-time, streaming, notifications
Acceptance Criteria
🙌Contribution Guidelines:
Assignment required before PR submission
Timeframe: 96-120 hours
Create a screenshot of your implementation/s or sever running
PR description must include: Close #[issue-number]
Star the repo⭐
For more context, please refer to the backend README 🚀