As the demand for online learning continues to grow, the market is becoming increasingly competitive, with providers vying for attention from a broad set of prospective clients.
In such a scenario, Yo!Coach (online tutoring and consulting software), with its customizable and scalable architecture, is perfectly placed to cater to the growing demand for online learning platforms in the market.
In this article, we will discuss code refactoring and look at it as a way to improve the performance of Yo!Coach in its latest version V3.
Refactoring in software design means restructuring the existing code without changing its external behavior. It is intended to improve the software design, structure, and/or implementation while preserving its functionality.
A poorly designed software can create several issues like existing code not supporting future enhancements, breaking out of a function during the development of another, and so on. To avoid such issues, it is important to follow the best practices and spend time in code refactoring.
Refactor first before adding any new features
It is always better to perform refactoring when you are asked to add new features or update an existing solution. Yes, it will take longer to finish the project, but it will also reduce the amount of technical debt you or the product owner will have to deal with in the future.
The software architecture of Yo!Coach V3 is re-designed to handle and manage high user data while taking care of quality code and system performance. Moreover, data-independent code architecture is the key to Yo!Coach V3’s performance.
Tutors Availability
We have two availability types: Weekly Availability and General Availability.
Managing tutors’ availability and converting system date according to the users’ timezones has been a challenging task (for 70+ countries supporting DST – Daylight Saving Time).
So we completely redesigned the database structure and added another table to maintain the exact availability of the user (which converts general to weekly availability). This, in turn, solved the time difference we faced with DST-enabled countries.
Teacher & Group Class Search
There has been a major update on the ‘Teacher Search and Group Classes Search’ modules. The database structure and queries have been optimized and search models for teachers have been created.
The ‘Search Form’ design has been redone to improve the UX/UI.
Note: The ideal time to load search results is less than 500 milliseconds now.
Seamless checkout
For different order types, checkout is now on a single popup. Moreover, for booking group classes, group class packages, adding money to the wallet, and purchasing gift cards, one-step checkout has been used.
Inline & Unlimited Scheduling
Till Yo!Coach V2.4, we only had single session scheduling (after the booking). Now learners can check tutors’ availability and schedule unlimited sessions before booking or making a payment.
Payment Gateways
The structure of payment gateways has been redefined. Payment gateways are now considered separate entities which can be attached and detached as a plugin. Moreover, bank transfer (offline) has been added as a new payment method.
Meeting Tools
Just like payment gateways we have redeveloped ‘Meeting Tools’ in V3. Any meeting tool can be added/removed as per clients’ requirements. Integrated meeting tools are Zoom, Lessonspace, and AtomChat/CometChat.
Search Engine friendly URLs
Rewriting URLs allows them to be easily remembered by the user. The option to replace the complete URL path with any other desired URL is possible now. Yo!Coach V3 also has the ability to add custom URLs for different languages.
Manage Orders and Transactions
In Yo!Coach V3, all 6 types of orders, with all their details and status can be managed. This includes lessons, lesson subscriptions, group classes, group class packages, wallet recharge orders, and gift cards.
Reports Sales & Settlement
The database structure for the orders section has been changed completely. Moreover, V3 has the ability to provide several reports such as – lessons in top languages, classes in top languages, teacher performance, lesson stats, sales reports, and settlement reports. Also, the admin can check every day – gross sale, discount, net sale, the amount paid to teachers, and the students’ refund amount.
Group Classes
Group classes are pre-scheduled by a teacher and any learner/student can book or join them. Earlier, it was mixed with one-to-one lessons/sessions, and the calculation of a ‘teacher’s payment on success’ and ‘refund to student’ was not that simple. Now, group classes are treated as separate entities on the backend and the calculation is much simpler.
Manageable Themes
The theme of the header, footer, and content sections can be managed as per your brand’s primary and secondary colors. The themes make the platform aesthetically pleasing and help in branding.
Email Templates
All email templates have been updated with the new HTML structure. The save and preview option is available now which the admin can use. Also, the header and footer for all email templates are manageable from a single place.
In its essence, code refactoring is a series of small behavior-preserving transformations, each of which is worth doing. The refactoring process can either be simple, like adding comments, removing a static variable, adding correct indentation, and so on, or it can be complicated for complex legacy systems. But refactoring in small steps can reduce the risk of introducing errors. Hence, if you are an existing client of Yo!Coach, updating to its newer version 3 will provide you with improved features and speed enhancements, pivotal for a better end-user experience.