Skip to content

💬 Implement Real-Time Chat for Photographer Group & Client-Photographer Messaging #22

@ArjunDivraniya

Description

@ArjunDivraniya
  • Currently, users cannot communicate with photographers before booking, which makes it difficult to discuss availability, pricing, and special requests. To enhance the user experience and streamline the booking process, a real-time chat feature should be implemented.

🔹 Feature Requirements

✅ Client-to-Photographer Chat: Clients can directly message photographers before booking.
✅ Photographer Group Chat: A dedicated group chat for photographers to collaborate, share ideas, and discuss projects. Photographers will automatically join this group upon signing up.
✅ Real-Time Messaging: Messages should appear instantly without needing to refresh the page.
✅ Typing Indicators & Read Receipts: Show when a user is typing or has read the message.
✅ File & Image Sharing: Allow users to share images or documents relevant to the shoot.
✅ Notification System: Send alerts for new messages.

🔹 Implementation Approach
🚀 Backend: Use Node.js + Express + MongoDB for handling chat messages and storing conversations.
🚀 Frontend: Use React + Socket.io for real-time communication.
🚀 Database: Store messages using MongoDB, with timestamps and sender/receiver details.
🚀 Authentication: Ensure secure messaging through Firebase Auth or JWT-based authentication.

🔹 Chat Access
📌 Users can start a new chat with a photographer from their profile page.
📌 Past conversations will be accessible via a chat icon in the profile section.
📌 The photographer group chat will be available only on the photographer landing page, and photographers will automatically join this group upon signing up.

🔹 Expected Outcome
📌 Clients can communicate with photographers before booking, improving transparency.
📌 Photographers can collaborate in a group chat, fostering a better professional network.
📌 A seamless real-time chat experience will enhance user engagement on the platform.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions