Skip to content

Real-time Messaging & Notifications (Communication) #111

Description

@mehalyna

Short description
Implement the messaging/communication subsystem shown in the red box: real-time one-to-one and simple multi-party chat, message inbox REST APIs, persistent message store (MongoDB), read receipts/typing/presence over WebSockets (Django Channels + Redis channel layer), integration with existing Notifications + Projects/Profiles (notify on interest/response), audit logging and admin moderation. System must work with existing auth (JWT/session), respect permissions and privacy, and scale reasonably.

Epic acceptance criteria

  • Users can open a websocket connection and receive real-time messages for conversations they participate in.
  • Users can send messages via WebSocket (preferred) and fallback REST API; messages are persisted to MongoDB and reflected in the inbox.
  • Inbox REST API returns conversation list and recent messages (paginated).
  • Read receipts and presence/typing indicators are supported and emitted via channels.
  • Notifications are created for new messages (DB row) and sent to offline users via email/push worker.
  • Rate limiting, moderation (block/report), and retention policies are in place.
  • Unit & integration tests, openapi docs and a short dev runbook included.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions