arrow_back フリーランスに戻る
F

Backend Developer for Chat App Features

Freelancer

シェア:
placeBD home_workリモート assignment契約社員 public集約求人 · BD

event2026年9月09日に公開 · verified2026年9月09日時点で募集中であることを確認済みです

この企業はあなたの会社ですか?

US$ 250 – US$ 750 /案件

求人について

We are seeking an experienced Backend Developer to implement new messaging, media, privacy, and VoIP signaling, Screen Sharing features into our existing WhatsApp-like communication platform. Tech Stack: Backend: Node.js, Fastify, PrismaORM, MySQL Real-time & Media: WebSockets, Mediasoup (Audio/Video calls) Note: You will only be responsible for the backend development (REST APIs, WebSocket events, database schema updates, background jobs, and Mediasoup signaling). Our mobile development team will handle all front-end/app integration. 1. Chat & Messaging Module** * **Message Reactions & Replies:** * Add API endpoints and WebSockets/Socket events for attaching reactions (emoji) to specific `message_id`s. * Support threaded replies by referencing `parent_message_id` in the message creation payload. * **Message Editing:** * Allow sender to update message content within a 10-minute window (`created_at` validation). Reject edits after 10 minutes. * **Message Deletion:** * Implement soft deletion (`is_deleted` flag). Return a standardized placeholder text/status for deleted messages in chat history APIs so the client can apply custom styling. * Support hard/soft deletion of group conversations on a per-user basis (user-level chat visibility flag). * **Ephemeral Messaging (Auto-Erase & Disappearing):** * **View-Once (Auto-Erase):** Add a flag to immediately wipe message content from DB/storage once read receipts are acknowledged by both sides. * **Disappearing Messages:** Support timer settings (`1h`, `6h`, `24h`, `7d`, `30d`, `90d`). Schedule background cleanup jobs (e.g., Redis TTL or Cron) to hard-delete expired messages for both sender and recipient. 2. Media & File Management** * **File Metadata & Forwarding:** * Preserve original file metadata (`original_filename`, `mime_type`, `file_size`) on upload. * Create a message forwarding endpoint that duplicates file/media attachment references without re-uploading. * **Media Album Grouping:** * Accept batch uploads and assign a unified `media_group_id` or array of attachment IDs within a single message object. * **Compression & Quality Options:** * Expose upload parameters/endpoints handling both original quality files and server-side/client-side compressed variants. ### **3. Privacy & Security Policies** * **Live Location Sharing:** * Implement real-time location streaming over WebSockets with configurable expiration durations (`1h`, `3h`, `6h`, `24h`). * Obfuscate/encrypt structural location URLs on the backend. * **Private Chat Flags:** * Add a `is_private_chat` status flag in conversation schemas. Deliver this flag via API so mobile clients can enforce restrictions (blocking screenshots, file downloads, text copying, and forwarding). 4. Calling & VoIP Signaling System** * **Group Calling Logic & Constraints:** * **Member Count Limitation (Group Call Visibility Flag):** * Include a boolean flag `is_group_call_enabled` in the group metadata/details API response. * **Rule:** Set `is_group_call_enabled = false` if `total_group_members >= 30`. This signals the client app to completely hide the group call button. * **Max Participant Cap (Dynamic Room State via WebSockets):** * Enforce a maximum limit of **20 active participants** per call room. * Track current active participant count on the backend. * When the active count reaches 20, emit a real-time socket event (e.g., `call_room_full` or updated `room_capacity_status`) to all remaining unjoined group members. * This event informs the client app to immediately hide or disable the "Join Call" button for unjoined members while the call is full. * If a participant leaves and the count drops below 20, emit an updated state event to re-enable the "Join Call" button for unjoined members. * **Mid-Call Invitations:** * Support adding new participants dynamically to an active call room up to the 20-participant cap. 5. Screen Sharing *Develop as zoom or google meet premium control. (Mute all, audio lock, video lock, restricted presentation, make co- host, remove co-host, unmute single participant, hand rise, share screen, react, chat, photo, video, file share when meeting *Extra control for creator: Per minute rate call rate. Participants pay call rate from Main Wallet, Creator Earn to Main Wallet (deduct 6% as platform charge) *Meeting link create: Company charge from creator per hour as platform fee, $1/2/3/ Billed per hourly. *When creator set call rate 0 (Zero) that means participants no need charge. More information will be provided after disscussion.

このまま無料で続きを読む

無料アカウントを作成すると、求人の全文を見て応募できます。

  • badge企業からポートフォリオが見える
  • notifications新着求人をメールでお知らせ
  • favorite常に無料、追加料金なし