Case Study for the design and development of IntroLab
IntroLab is a network building company that connects clients to industry professionals. Clients (site users) can utilize the platform to browse a database of professionals and fine-tune their search with a variety of filtering options. They will then be able to schedule sessions – either digital or in person, depending on the offerings of the specific provider – and wait for the provider’s confirmation. Once confirmed, IntroLab will generate a meeting invite for a digital session or provide further details about meeting up.
Consultants had to manage their availability. We had to implement a feature that would allow them to schedule available times for consulting sessions on a recurring schedule. They should be able include single available dates or exclude specific dates as well.
We implemented a recurring date pattern. This is a serialized array of arrays which stores availability slots in a form like:
We store seven arrays, one for every day of the week. We use another table to store the bookings made for each consultant. We compare the available times against the bookings to get a list of available slots. The available slots are being printed to the front-end in a block format.
After the consultant has confirmed the appointment both parties get an invitation in their calendar to block this time. Consultants also have the option the reject a consultation booked. In this case the client gets an email that his appointment has been cancelled and he gets a refund.
On the consultants dashboard he is able to input his availability easily. He just has to add intervals for each day of the week.
The availability interface works like a reverse scheduling system. In google calendar, when you want to block a time for an appointment, you input the start and end date of the appointment. In IntroLab you block time of availability. This is due to the nature of the consultants who are having full time jobs and other responsibilities and are thus more likely to be unavailable than available.
Payment has to be taken on the website. Clients should be paid upfront but are being refunded when the slot has been declined. For the platform there is a % of a fee being calculated on every transaction. The consultant also had to be paid the remaining amount after deducting the fee.
We implemented Stripe as a payment gateway. Their Connect API provides the perfect solution we need for IntroLabs marketplace payment system.
- The client schedules a lesson through the front end. Once he has picked a slot he is asked to provide his credit card details to make an upfront payment to reserve this slot with the consultant.
- Once the payment has been submitted the IntroLab fee is being calculated. The client pays some part of the fee and the consultant also pays some part.
- The fee is being deducted and transferred to IntroLabs account. The consultant receives the rest of the money.
- The consultant can accept the consultation or reject it. On rejection the money is being refunded to the client.
The consultant had to have an elaborate dashboard where he could manage his past work experience, industry experience, skills, language, address, biography and more.
From the backend the introlab admins are able to list all the industries that are featured on IntroLab. Same for the available languages. Because skills are too broad to cover all of them, we provide the consultants with a set of skills he can choose from but he is also able to add his own skills if necessary.
To keep the interface simple and user friendly we implemented a drop down search function for skills and industries. This makes it very easy and fast to find anything you might be looking for. Consultants can also upload their own profile picture that is featured on the site.
Introlab features a large database of consultants and a wide range of industries. In order to find the perfect fit we implemented a range of search criteria.
- Country / City
With these filters a client is able to quickly find a consultant he can connect with. Some of these values like experience and rating were precalculated before the search to improve accuracy and speed.
After a consultation session both parties should be able to leave a review. After 48 hours however this function had to expire. We did not want people to leave a review weeks after the consultation took place. Each party could leave a rating from 0 to 5 starts and also leave a message.
This would be calculated into the overall rating. For the consultant, this would be showing up on his public profile.