Skip to content

[Feature] Build a real-time collaborative pool chat/comments feature per group #90

Description

@grantfox-oss

Getting Started

  1. Fork the repository: https://github.com/JointSave-org/Joint_Save
  2. Clone your fork:
   git clone https://github.com/<your-username>/Joint_Save.git
   cd Joint_Save
  1. Create a new branch:
   git checkout -b feat/pool-group-chat

Overview

Members of a savings pool currently have no way to communicate within the app — coordinating deposit timing, discussing target adjustments, or just building trust within the group requires an external channel (WhatsApp, etc.). A lightweight in-app chat per pool would keep coordination inside the platform.

Requirements

  • New Supabase table pool_messages (pool_id, sender_address, message, created_at), with RLS restricting read/write to actual members of that pool (verified against pool_members)
  • New tab or section on the group detail page: "Discussion"
  • Use Supabase Realtime subscriptions for live message delivery without polling
  • Basic moderation: message length cap, rate limiting per sender (e.g. max 1 message per 3 seconds) to prevent spam
  • Optional: integrate with the existing notification system (feat: add pool event notifications and user email preferences closes issue #68 #85, once merged) so members get notified of new messages if they have that preference enabled

Acceptance Criteria

  • Only actual members of a pool can read or send messages in that pool's chat (enforced via RLS, not just UI hiding)
  • Messages appear in real time for other connected members without a page refresh
  • Rate limiting prevents a single user from spamming the channel
  • Chat history persists and loads correctly when revisiting the group page
  • Mobile-responsive

Metadata

Metadata

Assignees

Labels

GrantFox OSSIssue tracked in GrantFox OSSOfficial CampaignCampaign: Official Campaignmedium-complexityNot too complex, Few files and some planning needed

Type

No type
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