Smash is a video call platform aimed at consultants of any type, whose goal is to be able to provide their services through video calls and easily manage their agenda and their cash flow.
The platform allows its users to manage their availability agenda, providing a simple and intuitive interface for configuring weekly schedules. In this way, each customer can independently view the availabilities within which it is possible to book and carry out a video consultation.
The platform also automatically generates a public profile for the consultant, SEO optimized, from which users can view the services offered with related costs and then proceed to book an available slot.
Once a consultant receives a reservation, he is notified via notifications (email, push, etc ...) and can independently manage the reservation. The system will also send a reminder to notify the consultant and the customer of the upcoming video call, as well as automatically check the validity of the payment methods and the availability of credit. Once the video call is over, the consultant will be credited with the cost of the service and periodically the balance will be sent to his current account.
Videocall with Twilio
Videocalls within the platform are implemented using Twilio's Programmable Video service. This allows granular control both on the codecs and bitrates to be used based on the networks in which the user uses the platform, and to be able to better manage the creation of what are defined 'rooms' to manage the various types of video calls. In fact, the platform supports calls up to 10 participants.
The video call interface was created ad-hoc again through React, also optimizing the use of resources and data streams received from Twilio through the Twilio JS SDK library.
Payments with Stripe
The payment flow on the platform was accomplished using Stripe, one of the safest and most popular services in the industry. In particular, the implementation, using Stripe Connect, required the ad hoc implementation of webhook endpoints and queue management.
In parallel with the web application, a worker has been developed that manages all the background jobs and the notification queues, so as to delegate all the intensive requests to a single process, keeping the user application as reactive as possible even during waiting periods.