Instant messaging between a customer and a psychic
Type: Web development
Time: 3 months (MVP)
One of our most trusted partners approached us with an idea of a web chat. They wanted to add it to the clairvoyant marketplace we worked on together before. The addition of chat should allow customers to receive answers quickly and provide psychics with a stable income flow.
- Project Manager
- Business Analyst
- Tech Lead
- Backend Engineer
- QA Engineer
- Two Frontend Engineers
A clairvoyant can set their rate per minute, so the client will know how much to pay for the conversation.
In a profile, clairvoyants can set their status and define the preferred means of communication: text/chat, calls, or both.
If the Internet connection is weak or unavailable, a client can send an offline, SMS-like message to a psychic they want to talk to.
The chat itself notifies clients and psychics about the start of the chat, the start of the billing, low balance, and can auto-recharge funds during the chat if needed.
A psychic can set their availability status and define what type of communication they prefer: Chat only, phone only, both, offline message only, or set their status to ‘unavailable.’
Billing starts automatically when the chat starts and the participants are notified about it with a system message. In the case of insufficient funds, the customer account can be recharged automatically or manually, with a wide variety of pre-integrated payment methods. Also, the billing stops if the chat is inactive or there are no funds in the customer’s account. Offline and SMS messages are billable per message.
Both participants receive system notifications about activities in the chat. A psychic and a user can be notified about incoming messages, detected inactivity, upcoming appointments, low funds, and more with a flashing light and/or sound.
A user can start a paid text communication with a selected psychic. The user is billed by the psychic’s designated rate per minute. If the Internet connection is weak or the psychic goes on a break, the chat is ended and chat billing stops shortly after.
If the psychic is not online, but the issue is urgent, a user can send an offline or SMS message. The psychic can choose to accept it and continue offline communication.
Challenges and Solutions
Updating the psychic’s status
The marketplace has several legacy sources of a psychic’s availability status (online, offline, on a call, etc.). Unfortunately, they weren’t properly synchronized with each other and had different response speeds, so it was hard to ensure the correct status was set..
We used reverse engineering to understand the logic of availability status and fixed it.
Introducing a new merging strategy
The project has four separate branches that can have a two-week difference between them. This makes the merging and deployment process resource-consuming to complete.
We are introducing trunk-based development with feature flags to optimize merging and release processes.
Working with legacy systems
The service works with several legacy systems that have no documentation and sometimes we had issues getting the data we needed from them.
Reversed engineering helped us in this case too. We also applied several unit and integration tests to get the correct parameters needed to retrieve the data.
New updates every two weeks
The redesign is coming!
The chat is released