We have seen many kinds of e-learning applications around the globe. One of our clients has a very unique type of e-learning website which is very successful in its field. What our client required from us was a mobile application for it in iOS and Android.
To build a mobile application that must be far smoother and faster than it’s parent (website).
Our team had to build a mobile application for an e-learning course website which is built with shopify and wordpress. In the website the user could only pay for the course they need and download the soft copy of the course contents. The requirement given to us was that it should also have all modern facilities an e-learning application provides nowadays. This is an important feature that was not in their website.
In order to solve the objectives for the mobile application, our team decided to built it on flutter. The primary objective was to provide a user friendly experience to the users. For that the application must be very quick in loading and it must be very smooth. So if we build the application smooth and quick then users will hold on to the app more.
In order to achieve the first object we used:
We pulled all the numerous courses from the shopify to our tables so that we could customise the course categories and list with more efficiency and provide more filters for user.This helped us provide an efficient way to list the courses and now the application loads more quickly than the shopify listing API.
Even though we pulled the data using Cron there was still a challenge that existed when our client uploads more courses every week. In this case the user should not have a delay in viewing the new course for 10 minutes (like the duration of every Cron job). So we thought of using Webhooks API. When our client now uploads new courses to the current website, within seconds it will be synced to our table and thus the user won’t see any delay in viewing the courses.
We are developing the application in flutter and since dart is a very young language the dependencies for many SDK’s are not available in flutter. In our case our client used Crisp for the customer services help desk. Crisp only offers SDK support for iOS and Android natively. So our new challenge was to build a crips flutter plugin. We succeeded in that too.
The course contents were already available on the website in the form of video URLs and document URLs. Apart from that, we had to build everything and it had to be no lesser than other e-learning apps. We managed to customise the course tables since we were loading the contents to our custom table from Shopify. Users can download the entire course. Then we have to asynchronously download the course contents. So while downloading the course content we made a model to keep track of the time duration and current progression field. So when a user stops the video, his video key frame seconds will be noted in the model which is stored locally as well as every five minutes we will sync the models to our server and thus we can track the course progression both online and offline.
Then we had to build a course assessment that will have the questions from the course which the user enrolled for. Each question will have a time period to answer and for every correct answer there will be marks and for every wrong answer there will be negative marks. Every course has a minimum score. To complete the course the user has to achieve it and once done the user will have a digital course completion certificate that can be downloaded instantly. If the user failed in the assessment then that user will be forced to take the course again.
PHP, WordPress, Shopify, Flutter, Stripe, Crisp
The result was a cleaner, smoother and faster e-learning application that helps the current user and the existing user to learn from their mobile application and not only from their desktop.
Since the application made the facility to download the course offline available, it helps to keep track of their progress. More registrations bloomed and we were able to add new e-learners to our application. Since the course has video resume ability users can now continue their course anytime since all the course details are synced. Users can instantly get the course completion certificate and they can publish it immediately in any social media, declaring proudly that they are qualified professionals. This improved their analytics and thus both our client and the users are happy and so are we.