This website uses cookies to better the user experience of its visitors. Where applicable, this website uses a cookie control system, allowing users to allow or disallow the use of cookies on their computer/device on their first visit to the website. This complies with recent legislative requirements for websites to obtain explicit consent from users before leaving behind or reading files such as cookies on a user’s computer/device. To learn more click Cookie Policy.

Privacy preference center

Cookies are small files saved to a user’s computer/device hard drive that track, save, and store information about the user’s interactions and website use. They allow a website, through its server, to provide users with a tailored experience within the site. Users are advised to take necessary steps within their web browser security settings to block all cookies from this website and its external serving vendors if they wish to deny the use and saving of cookies from this website to their computer’s/device’s hard drive. To learn more click Cookie Policy.

Manage consent preferences

These cookies are necessary for the website to function and cannot be switched off in our systems. They are usually only set in response to actions made by you which amount to a request for services, such as setting your privacy preferences, logging in or filling in forms. You can set your browser to block or alert you about these cookies, but some parts of the site will not then work. These cookies do not store any personally identifiable information.
These cookies allow us to count visits and traffic sources so we can measure and improve the performance of our site. They help us to know which pages are the most and least popular and see how visitors move around the site. If you do not allow these cookies we will not know when you have visited our site, and will not be able to monitor its performance.
Cookies list
Name _rg_session
Provider rubygarage.org
Retention period 2 days
Type First party
Category Necessary
Description The website session cookie is set by the server to maintain the user's session state across different pages of the website. This cookie is essential for functionalities such as login persistence, ensuring a seamless and consistent user experience. The session cookie does not store personal data and is typically deleted when the browser is closed, enhancing privacy and security.
Name m
Provider m.stripe.com
Retention period 1 year 1 month
Type Third party
Category Necessary
Description The m cookie is set by Stripe and is used to help assess the risk associated with attempted transactions on the website. This cookie plays a critical role in fraud detection by identifying and analyzing patterns of behavior to distinguish between legitimate users and potentially fraudulent activity. It enhances the security of online transactions, ensuring that only authorized payments are processed while minimizing the risk of fraud.
Name __cf_bm
Provider .pipedrive.com
Retention period 1 hour
Type Third party
Category Necessary
Description The __cf_bm cookie is set by Cloudflare to support Cloudflare Bot Management. This cookie helps to identify and filter requests from bots, enhancing the security and performance of the website. By distinguishing between legitimate users and automated traffic, it ensures that the site remains protected from malicious bots and potential attacks. This functionality is crucial for maintaining the integrity and reliability of the site's operations.
Name _GRECAPTCHA
Provider .recaptcha.net
Retention period 6 months
Type Third party
Category Necessary
Description The _GRECAPTCHA cookie is set by Google reCAPTCHA to ensure that interactions with the website are from legitimate human users and not automated bots. This cookie helps protect forms, login pages, and other interactive elements from spam and abuse by analyzing user behavior. It is essential for the proper functioning of reCAPTCHA, providing a critical layer of security to maintain the integrity and reliability of the site's interactive features.
Name __cf_bm
Provider .calendly.com
Retention period 30 minutes
Type Third party
Category Necessary
Description The __cf_bm cookie is set by Cloudflare to distinguish between humans and bots. This cookie is beneficial for the website as it helps in making valid reports on the use of the website. By identifying and managing automated traffic, it ensures that analytics and performance metrics accurately reflect human user interactions, thereby enhancing site security and performance.
Name __cfruid
Provider .calendly.com
Retention period During session
Type Third party
Category Necessary
Description The __cfruid cookie is associated with websites using Cloudflare services. This cookie is used to identify trusted web traffic and enhance security. It helps Cloudflare manage and filter legitimate traffic from potentially harmful requests, thereby protecting the website from malicious activities such as DDoS attacks and ensuring reliable performance for genuine users.
Name OptanonConsent
Provider .calendly.com
Retention period 1 year
Type Third party
Category Necessary
Description The OptanonConsent cookie determines whether the visitor has accepted the cookie consent box, ensuring that the consent box will not be presented again upon re-entry to the site. This cookie helps maintain the user's consent preferences and compliance with privacy regulations by storing information about the categories of cookies the user has consented to and preventing unnecessary repetition of consent requests.
Name OptanonAlertBoxClosed
Provider .calendly.com
Retention period 1 year
Type Third party
Category Necessary
Description The OptanonAlertBoxClosed cookie is set after visitors have seen a cookie information notice and, in some cases, only when they actively close the notice. It ensures that the cookie consent message is not shown again to the user, enhancing the user experience by preventing repetitive notifications. This cookie helps manage user preferences and ensures compliance with privacy regulations by recording when the notice has been acknowledged.
Name referrer_user_id
Provider .calendly.com
Retention period 14 days
Type Third party
Category Necessary
Description The referrer_user_id cookie is set by Calendly to support the booking functionality on the website. This cookie helps track the source of referrals to the booking page, enabling Calendly to attribute bookings accurately and enhance the user experience by streamlining the scheduling process. It assists in managing user sessions and preferences during the booking workflow, ensuring efficient and reliable operation.
Name _calendly_session
Provider .calendly.com
Retention period 21 days
Type Third party
Category Necessary
Description The _calendly_session cookie is set by Calendly, a meeting scheduling tool, to enable the meeting scheduler to function within the website. This cookie facilitates the scheduling process by maintaining session information, allowing visitors to book meetings and add events to their calendars seamlessly. It ensures that the scheduling workflow operates smoothly, providing a consistent and reliable user experience.
Name _gat_UA-*
Provider rubygarage.org
Retention period 1 minute
Type First party
Category Analytics
Description The _gat_UA-* cookie is a pattern type cookie set by Google Analytics, where the pattern element in the name contains the unique identity number of the Google Analytics account or website it relates to. This cookie is a variation of the _gat cookie and is used to throttle the request rate, limiting the amount of data collected by Google Analytics on high traffic websites. It helps manage the volume of data recorded, ensuring efficient performance and accurate analytics reporting.
Name _ga
Provider rubygarage.org
Retention period 1 year 1 month 4 days
Type First party
Category Analytics
Description The _ga cookie is set by Google Analytics to calculate visitor, session, and campaign data for the site's analytics reports. It helps track how users interact with the website, providing insights into site usage and performance.
Name _ga_*
Provider rubygarage.org
Retention period 1 year 1 month 4 days
Type First party
Category Analytics
Description The _ga_* cookie is set by Google Analytics to store and count page views on the website. This cookie helps track the number of visits and interactions with the website, providing valuable data for performance and user behavior analysis. It belongs to the analytics category and plays a crucial role in generating detailed usage reports for site optimization.
Name _gid
Provider rubygarage.org
Retention period 1 day
Type First party
Category Analytics
Description The _gid cookie is set by Google Analytics to store information about how visitors use a website and to create an analytics report on the website's performance. This cookie collects data on visitor behavior, including pages visited, duration of the visit, and interactions with the website, helping site owners understand and improve user experience. It is part of the analytics category and typically expires after 24 hours.
Name _dc_gtm_UA-*
Provider rubygarage.org
Retention period 1 minute
Type First party
Category Analytics
Description The _dc_gtm_UA-* cookie is set by Google Analytics to help load the Google Analytics script tag via Google Tag Manager. This cookie facilitates the efficient loading of analytics tools, ensuring that data on user behavior and website performance is accurately collected and reported. It is categorized under analytics and assists in the seamless integration and functioning of Google Analytics on the website.

How We Helped Build an E-Learning Platform for Delivering Customized Courses

  • 18114 views
  • 13 min
  • Dec 26, 2017
Gleb B.

Gleb B.

Copywriter

Vlad V.

Vlad V.

Chief Executive Officer

Share

Learning is the foundation of human civilization and the driver of progress.

In the past, learning was a difficult and tiresome activity. But it’s different today since the internet has taken learning online.

The e-learning industry is booming – millions of people and thousands of organizations are embracing online education and training. According to a forecast by Orbis Research, the e-learning market is expected to reach a stunning $275 billion in revenue by 2022.

Global E-Learning Market Growth

This spectacular growth is due to the many advantages that e-learning provides:

  • Availability. The internet allows people to learn whenever and wherever they want as they can access online courses from any device (computer, laptop, tablet, phone).
  • Affordability. Online learning is more cost-effective than conventional learning since there’s no need for buildings, offices, or other typical overhead; everything takes place on the internet.
  • Flexibility. E-learning doesn’t put time pressure on people, so they can learn at their own pace.
  • Large audience. Billions of internet users all over the world can access online courses.

US-based company Blue Sky came up with the idea for a cloud-based learning management system (LMS) that would help businesses deliver customized online courses and educational content to their employees and customers.

When Blue Sky reached out to RubyGarage, their e-learning platform was already developed but the application wasn’t functional enough. Our experts helped Blue Sky’s development team get their Path LMS up and running.

Business Value Of Blue Sky’s Path LMS

Are you wondering whether businesses really need an e-learning platform? Actually, any company (from a small business to a large corporation) that wants to constantly improve the skills of its employees needs an LMS.

Look closely at any industry or profession and you’ll realize that there’s potential for online learning: in advertising, marketing, accounting, education, healthcare – the list goes on and on. Companies and associations can benefit from an LMS for staff training as well as for providing online educational content to wider audiences.

Let’s have a look at some of the real-life problems that the Blue Sky cloud-based learning platform can solve:

Infographic How E-learning Platform Helps Companies

How Does Blue Sky’s E-learning Platform Work?

Now that you know what problems Blue Sky’s Path LMS helps to solve, it’s time to take a look at how this application works and how users (by which we mean corporate clients) interact with it.

Step #1 Rich functionality

A client – a business, individual, or association – can create a corporate account and select the functionality they want including tools for managing courses, support for webinars and events, ecommerce features, and more. The Blue Sky e-learning platform can be tailored to the needs of each client and clients only pay for the functions they actually use.

Step #2 Course customization

Blue Sky’s e-learning platform lets businesses design unique learning experiences for their audiences by creating interactive assessments and surveys. Webinars can also be added to online courses so businesses can create whatever learning experience they need.

Clients of Path LMS can charge a fee for their courses or make their content free depending on their business goals.

Step #3 Learning environment

With Path LMS, it's easy to invite users to a learning environment. Businesses can either import their existing database of users to Path LMS or let users sign in to Path LMS using their corporate credentials. The latter option is available thanks to the single sign-on (SSO) feature that integrates corporate application with Path LMS.

Businesses can organize their audiences into groups and create online courses specific to each group.

Blue Sky’s e-learning platform also allows clients to grant permissions for courses. For example, some courses can be available to a certain group only while others are available to everyone.

Step #4 Certificates

To reward users for completing an online course successfully, Blue Sky’s e-learning platform offers certificates. In Path LMS, businesses can create their own custom certificates that are automatically issued to learners who fulfill all tasks for a training course.

Step #5 Performance tracking

An essential part of learning is tracking performance, so Path LMS includes an administrator dashboard that provides a variety of crucial analytics.

This dashboard allows companies to check how many users have attended each of their online courses, see those users’ personal details (name, email address, etc.), discover how many people have successfully completed their courses, and more. Businesses that provide paid educational content can also see their revenue via the administrator dashboard.

Challenges

To build an effective and reliable cloud-based e-learning application, our team had to overcome a number of challenges:

  • Ensure scalability of the application
  • Prepare the app architecture for further updates
  • Build a development workflow to get the app up and running as fast as possible
  • Seamlessly integrate Blue Sky’s Path LMS with third-party services
  • Build a fully functional e-learning application that would suit different companies
  • Implement marketing functionality

Our team was excited about this project because it would help many companies deliver online courses and train their staff. To deliver a top-notch application that would be a hit on the market, our RubyGarage experts had to not only implement the functionalities our client wanted but also analyze the whole application and suggest improvements.

Solutions

When our team joined the project, the initial version of the Blue Sky e-learning application had already been developed by a different company. They did a great job and delivered clean and secure code. However, they built a monolithic application that was difficult to scale. Also, the initial version of Path LMS didn’t have enough functionality. Therefore, we needed to revise the code, make the application scalable, and get it ready for implementing new functionalities. Our team came up with several solutions to launch a top-notch application as quickly as possible.

Ensuring Scalability

Blue Sky’s e-learning platform needed to work smoothly regardless of the number of users. The app had to be able to handle heavy loads so that users could log in and learn right away. In other words, Path LMS had to be scalable.

Heroku had been chosen as the hosting provider for the core of the application that was already developed. Heroku is a Platform-as-a-Service (you can find a detailed explanation of PaaS in this article), which means that developers are in charge only of hosted applications while the cloud service provider takes care of scalability.

Though Heroku provides an autoscaling feature, it has certain limitations: for example, it doesn’t scale background jobs, which are typical tasks that run in the background and don't need user intervention such as logging, system monitoring, and user notifications.

To handle this problem and ensure the scalability of Path LMS, our team decided to create a kind of scalability calculator. We calculated the resources the application would require in case of traffic spikes so that managers could manually (via Heroku dashboard) scale Path LMS up or down depending on anticipated load.

Path LMS managers can scale up the application if traffic spikes are expected and guarantee that the e-learning platform is always accessible. On the other hand, Path LMS can easily be scaled down if the available resources are much greater than what the app needs (which saves money).

Implementing a Domain-Centric Architecture

Initially, Path LMS had a database-centric architecture, which meant that data was considered the most important part of the application. This approach to software development allows developers to deliver an app quickly but proves inefficient for large-scale projects. Blue Sky’s e-learning platform was conceived as a large and upgradable application, so we suggested switching to a domain-centric approach.

Domain-centric design is an object-oriented approach to software development that focuses on designing applications according to a business domain, taking into account the elements in that business domain, their behaviors, and their relationships. This switch to a domain-centric architecture provided a number of benefits:

  • Clearer and more concise code
  • Enhanced testability
  • Easier to update

Having moved to a domain-centric architecture, our team made the application ready for further updates and ensured that it would be easy to maintain in the long run.

Streamlining the App Development Process

Delivering a full-fledged application required implementing a lot of new features in Path LMS, so our team had to integrate multiple changes into the application’s code base.

Adding new features usually comes with so-called “integration problems”, when the new code that developers add conflicts with the code base. These integration problems can slow development and deteriorate software quality. To avoid these problems, our RubyGarage experts needed to build an efficient workflow and automate the development process.

Our team went for continuous integration and delivery, a software development practice of integrating code changes into a shared code base several times per day and keeping an application deployable at any moment.

Continuous integration involves covering software features with automated tests, so we rewrote tests and added new automated tests to provide early bug detection and ensure the quality of every feature. At RubyGarage, we follow a test-driven development methodology to deliver top-notch code.

Continuous integration and delivery helped us add new functionalities to Path LMS as fast as possible and easily upgrade Blue Sky’s e-learning platform if needed.

Blue Sky Platform Tech Stack

Implementing Single Sign-On

Most companies and associations are concerned about the security of their learning and training content and therefore want to be able to control access to it. To solve this problem, the RubyGarage team added single sign-on functionality to Path LMS.

SSO allows corporate clients to integrate their own applications with Path LMS so that end-users only need a single set of credentials. In other words, employees can seamlessly sign in to Path LMS after logging into their company’s application. This way, businesses and associations can have full control over their online learning and training materials. And if an employee no longer works for a company, for instance, then he or she won’t be able to access Path LMS.

If clients go for the SSO functionality, their own applications are fully in charge of all information related to authentication; Path LMS doesn’t store any authentication credentials (such as emails and passwords).

From an end-user’s point of view, SSO makes using Blue Sky’s e-learning platform convenient.

To implement the single sign-on functionality, our team wrote special Ruby gems in compliance with SAML 2.0, OAuth, and OAuth 2 industry standards.

Integrating Partner Services

Lots of businesses, associations, and educational institutions use third-party services for managing membership. Path LMS allows these entities to create new e-learning opportunities for their staff and audiences. Therefore, it was necessary to partner with third-party membership services and integrate them into Path LMS.

Our team implemented single sign-on functionality by integrating MemberClicks, MemberSuite, and other membership management services with Path LMS. If a corporation or association already uses one of Blue Sky’s partner services, their users can seamlessly log in to Path LMS and access educational content.

Moreover, our team integrated GoToMeeting and Adobe Connect to expand the platform’s functionality. These services allow Path LMS clients to create and hold webinars. It works like this: an administrator creates a live event through a partner service and adds it to Path LMS; users are forwarded to that external service to participate in live events. All analytics (number of sign-ups, attendees, duration of sessions, etc.) related to a webinar are then automatically synchronized with Path LMS.

Creating a Live Event in Path LMS
Adding a Live Event

Ensuring Simple Educational Content Management

Blue Sky’s clients needed a simple tool for managing educational content, and our team had to implement this functionality. To do so, we put ourselves in the shoes of potential users to get a clear understanding of what a typical e-learning course looks like, what exactly it may include, and thus what functions we needed to develop.

Having analyzed the behavior of a potential client, we suggested several tools for managing a variety of educational content – from staff training courses to online events for science and healthcare companies.

Here are some examples of how businesses can create and manage their online learning content:

  • Use digital media content to boost the efficiency of educational content. Digital media helps companies better engage their target audiences. Path LMS allows clients to import audio and video files as well as create webinars (with the help of third-party services mentioned above).
  • Implement interactive learning by importing videos, images, audio, and other additional files in e-learning pathways for audiences to study or download.
  • Evaluate the learning progress of audiences by creating custom assessments and surveys based on educational content.
  • Award learners who successfully fulfil a learning pathway with a custom certificate. Path LMS provides an easy-to-use template to create certificates for every online course or event. Certificates are automatically generated and issued to everyone who completes a course.
  • Organizing learning content in pathways and curriculums. End-users need to progress from simpler to more difficult tasks and can’t skip anything.
Customized Learning Pathway
Learning Pathway

Enabling SCORM Support

Imagine that every provider of educational content chose their own standard when creating tests, assessments, surveys, and the like. No doubt that would make learning management systems completely incompatible with each other. Can learning be efficient in such a mess?

To avoid this problem, the Sharable Content Object Reference Model (SCORM) was invented. SCORM is a set of standards for developers when writing code for e-learning software. SCORM-compliant packages can be seamlessly imported into SCORM-compliant e-learning platforms.

Blue Sky’s clients can import SCORM packages into their learning courses; their audiences are then forwarded to the SCORM cloud to complete tasks and the results are synchronized with Path LMS. This way, companies and associations can monitor the progress of their audience and staff.

Our team suggested making Blue Sky’s Path LMS SCORM-compliant. For this purpose, we wrote a special Ruby gem and integrated it into Path LMS.

How to Add a SCORM Package
Adding a SCORM Package

Implementing Monetization Functionality

Today, lots of companies create cloud-based learning content in order to make money. Therefore, Blue Sky’s Path LMS needed monetization functionality as lots of businesses would no doubt use it. Our team suggested some ways to monetize content.

Paid Сontent

Blue Sky’s e-learning platform allows companies to create either free or paid content. If the goal of a business is to train staff, it can opt for free courses; if the goal is to make profit, it can launch paid ones.

Coupons

Path LMS allows users to promote e-learning content by offering coupons. Path LMS provides two types of coupons:

  • Discount coupons that give users a discount on a certain course or event.
  • Credit coupons that contain a promotional code that a user submits to get a certain amount of money on their Blue Sky account that can be spent on any course.
How Credit Coupons Work
Credit Coupons

Path LMS needed to provide multiple payments options so that users could find the most suitable one for them. Instead of integrating a variety of payment systems separately, our team went for a single universal tool – Spreedly. This payment platform securely stores and tokenizes users’ payment information and forwards it to over 100 payment gateways, including PayPal, Stripe, and Braintree. Spreedly is PCI-compliant, which means it follows the payment card industry security standards. Therefore, all payment data is protected against theft.

How to Apply a Discount Coupon
Applying a Discount Coupon

Wrapping Up

RubyGarage helped Blue Sky quickly turn their initial code into a fully functional cloud-based learning platform that helps businesses deliver educational content and train their employees. Our team continues to support this e-learning platform.

Does your company need a different type of application? Tell us what you need and our team will help you get your idea off the ground.

CONTENTS

Authors:

Gleb B.

Gleb B.

Copywriter

Vlad V.

Vlad V.

Chief Executive Officer

Rate this article!

Nay
So-so
Not bad
Good
Wow
3 rating, average 5 out of 5

Share article with

Comments (0)

There are no comments yet

Leave a comment

Subscribe via email and know it all first!