Skip to content

Add Real-Time Collaborative Presence in Chat #43

Description

@Techhackontime999

Description

Enhance the real-time chat with collaborative presence features: multi-device sync indicators, read-by timestamps, and online presence for chat partners.

Requirements

  • Show "Active now" indicator in chat header (real-time via WebSocket)
  • Read-by timestamps: show "Seen at [time]" on the last read message
  • Multi-device: show when user is active on multiple devices
  • Chat partner's last seen time when offline
  • Typing indicator improvements: show avatar, auto-dismiss after 10s
  • Message delivery confirmations: checkmark (sent), double-checkmark (delivered), blue (read)
  • Presence websocket: dedicated consumer for presence updates

Files to Modify

  • linkup/messaging/consumers.py - Add presence broadcast to ChatConsumer
  • linkup/messaging/presence_manager.py - Enhance with multi-device tracking
  • linkup/messaging/models.py - Add last_read_at to Message model
  • linkup/messaging/views.py - Add read-by timestamp API
  • linkup/static/js/chat.js - Update UI for presence indicators and read receipts
  • linkup/templates/messaging/chat.html - Add presence UI elements

Acceptance Criteria

  • "Active now" shows in real-time
  • "Seen at [time]" shows on last read message
  • Delivery status icons work (sent/delivered/read)
  • Multi-device presence is tracked
  • Typing indicator shows avatar

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    advancedAdvanced levelbackendBackend/API workfeatureNew feature or requestfrontendFrontend/UI workreal-timeWebSocket/real-time features

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions