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
- The helper toggles the "I'm online" status.
- The user clicks "Ask for help".
- A request is created with brief context: subject, topic, question, or current task.
- A realtime notification is sent to all matching active helpers.
- The first helper to accept the request gets it exclusively; it disappears for the others.
- A communication room opens.
- Available in the room:
- text chat;
- sending links and images;
- audio/video call;
- screen sharing if necessary.
- 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.