Task: Develop and launch communication and assistance functionality on the platform

Develop and launch communication and assistance functionality on the platform

Implement the "Ask for help" / "I'm online" flow with quick response, text communication, and a built-in call.

Objective

Add a lightweight live assistance layer to the platform without turning it into a separate tutor marketplace.

Basic model:

  • a user can click "Ask for help";
  • users who are ready to help toggle the "I'm online" status;
  • active helpers receive the request;
  • the first one to accept the request takes it;
  • further communication continues directly on the platform;
  • if necessary, the parties switch to an audio/video call;
  • after completion, the interaction is saved in the history.

Main User Flow

  1. The helper toggles the "I'm online" status.
  2. The user clicks "Ask for help".
  3. A request is created with brief context: subject, topic, question, or current task.
  4. A realtime notification is sent to all matching active helpers.
  5. The first helper to accept the request gets it exclusively; it disappears for the others.
  6. A communication room opens.
  7. Available in the room:
    • text chat;
    • sending links and images;
    • audio/video call;
    • screen sharing if necessary.
  8. Upon completion, the request and communication history remain available to the participants.

Economic Logic

The platform does not take a commission on help or further individual tutoring.

For the helper, the value is a potential lead:

short help now → trust → a potential long-term student directly.

The helper decides for themselves:

  • when to turn on the "I'm online" status;
  • which requests to answer;
  • how long to help;
  • whether to continue communication and tutoring beyond a one-time request.

For the user, the value is getting live help right at the moment of difficulty.

For the platform, the value is enhanced utility and retention without necessarily building a separate business on lesson commissions.

What Needs to Be Implemented

Presence

  • "I'm online" status;
  • TTL / automatic status expiration;
  • availability display;
  • ability to quickly turn off the status.

Requesting Help

  • request creation;
  • minimal request context;
  • routing to matching active helpers;
  • atomic acceptance of the request by the first respondent;
  • request cancellation by the user;
  • timeout if no one responds.

Realtime

  • instant delivery of a new request event when the tab is open;
  • updating request statuses without a reload;
  • state synchronization between participants.

Communication Room

  • text messages;
  • links;
  • images/attachments;
  • message history;
  • participant status;
  • call button.

Call

WebRTC/STUN/TURN infrastructure already exists, so the task here is integrating it into the user flow:

  • room creation;
  • participant connection;
  • audio;
  • video;
  • screen sharing;
  • proper session termination.

History

  • list of requests;
  • status: pending / accepted / completed / cancelled;
  • participants;
  • date and time;
  • access to room history.

Principles

  • no mandatory scenarios more complex than necessary;
  • entering help should take seconds;
  • the helper is not required to stay on the page constantly;
  • the "I'm online" status means readiness to receive requests, not an obligation to answer;
  • the functionality should be useful even with a small number of active helpers;
  • built-in communication should be a natural extension of the platform, not a separate product.