How we developed an Exam Preparation App and eLearning Platform: A Case Study

 

 

The Need

 

The evolutions of mobile applications have had a significant impact on every sector, with the educational industry being no different. With the developments of educational apps, pursuing a course is no longer limited to training institutes and academies. People can now learn, improve their skillset from the comfort of their homes.

According to various researches, the education industry is expected to rise above 350 billion USD by 2025, and the global eLearning sector is expected to surpass the 370 billion USD mark. Education doesn't end after school or college; various other courses that have become ever more important to secure jobs for the future are ever-growing.

Moreover, during the lockdown period of Covid-19, the download surge of education apps or eLearning app has increased by 90% comparing to pre-Covid-19. Ever since the pandemic, this industry received an opportunity to grow. Many schools and colleges shift their learning system to an online platform to avoid future outbreaks or disturbance, so nothing remains affected.

Online space is cluttered with millions of digital resources and creating an app that cuts through all of it and makes a powerful eLearning platform isn't easy.

Types of eLearning Apps we build

  • Online Courses
  • Exam Preparation
  • Language Learning
  • Brain Teasing
  • Progress Tracking
  • Multipurpose learning platforms
  • Specific subject learning apps
  • Entrance preparations
  • Supportive apps
  • Educational games
  • Learning management apps
  • Offer/Support Formal online training

What was the Client Expecting?

The client belonged to the education industry. He searched for a mobile app development company that could translate his vast educational concept into, especially exam preparation for most courses, into a single app. The client wanted to innovate learning beyond the classrooms for students with the help of teachers and various valuable materials available in the online world.

 

How We Evaluated Client's Needs

Our team analyst applied legal research and analysis techniques to evaluate the app requirement to create a mobile app on iOS and Android. We divided the users into two significant groups, students and teachers, and proceeded to the features and functionality accordingly.

 

Problem Identification

With the pandemic creating unfavorable circumstances for both students and teachers, with schools and teaching institutions remaining closed, the learning experiences were precluded. Online classes that resumed with Zoom and other applications couldn't grasp the esthetic of virtual learning. A platform where students could learn more than they could was needed; a solution for a great demand was required. An app that could make exam preparations much easier with thousands of materials, live video classes, live test preparation, video library for studying, and many more were required to be developed.

 

Building our team

•           2 Back-end developers 

•           2 Android developers (senior & junior)

•           1 UI/UX designer

•           1 Project Manager

•           1 iOS developers

•           1 Developer engineer (testing)

 

 

Our Approach

 

The client accepting us and wanting us to create a competent mobile app was challenging in the software development field. It was a new concept in the educational industry. We understood the aspects of the software system demands, and therefore we established a workflow, core functions, and the relationships between each key component across the network.

 

-       Analysis

 

Our team of app development, business analyst, and designer analyzed the client's requirements accurately. 

 

-       Project Planning

 

We planned the project based on analysis and defined highlights and a deliverable of the software system.

 

-       Design

 

The design was an important thing we considered heavily; we closely monitored the client-side team to fix UI design, UI elements, layout, theme, and other design aspects to make UI appealing, easy to use, and entirely functional.

 

-       Development

 

We paid meticulous attention to the client's needs to translate those into the functional presentation, business, and data layers.

 

 

 

Development

Design

Project Planning

Analysis               

                                                               

 

 

 

 

 

 

Dimensions of our app

 

In developing our e-learning/ Entrance preparation app, these dimensions shaped our product roadmap.

 

Temporal: synchronous/asynchronous user interaction

Communication: Uni/ bidirectional information flow

Transaction: capability of in-app purchases

Public: Open to public / limited to a particular group

Discussion Forum: A community of other participants

Location: information or functionality customized for user location

Identity: information adjustment based on user identity

 

 

Gathering Educational contents

 

Content is king, and it has to engage, comply and drive results. One of the priorities we had to emphasize. Feeding mediocre user-generated content would not guarantee success. Teachers have been heavily relied on creating a syllabus, lesson plans based on the app priorities we held. Also, for the Entrance preparation course, we dug deep from past years to gather thousands of papers and models for the benefit of the students. We took suggestions from a group of domain experts of the specific field to develop the app.

 

 

Foundation for the App

 

As mentioned, the content is king, but just content isn't enough to succeed. Our team worked continuously designing an appropriate learning flow. The factors mentioned below were the points our team agreed were very necessary for developing a successful app.

 

 

 

-       Active involvement

 

Online learning takes various forms- Kinetic, voice/video interactions, cognitive and symbolic systems. To direct these activities toward creating a virtual distraction-free learning process, where users stay in control, lending their full attention was a must.

 

-       Engagement

 

Engagement occurs at various levels, such as behavioral, emotional, and cognitive. Our designer team highlighted the app design to balance these factors along with the core educational contents. To blend these to make an app would create a wonderful virtual learning experience. Building engagement factors such as responsiveness, content modulations, and intrinsic motivations help users feel in control and motivate them to interact.

 

-       Meaningful learning

 

From generic to specific, simple to complex with a connection rather than isolation, emphasizing drilling, revising, and embedding abstract concepts to selective courses sticks for long and develops retention capabilities. 

 

-       Social interaction

 

We learn a lot by imitation, and one domain that benefits students is online discussion forums for topics discussed. Getting ideas across and thinking via discussions creates a synergy of deeper understanding and develops critical thinking.

 

 

 

 

 

 

Features of Our App

 

Log-In/Registration

 

Users will log into the app via their emails or their phone number. 

 

Advanced Search

 

Advanced search options help users to find a particular topic without having to navigate through the whole app. 

 

Live Class

 

An educational app feature through users can learn their course with teachers in real-time. Quality such as this would take the learning experience to the next level. As we know Zoom and other application has its limitation, with our app, we fulfill all the necessary elements present in an actual class.

 

 Mock Tests

 

It's a Section that offers a mock test to its students to evaluate their progress or knowledge base, strength, or weaknesses. The test papers and grading would enable users to prepare well for their examinations in an effective way. Live test is also a core function of the app, where users are scheduled to attend at a given time for a test.

 

 

Discussion Forums

This feature facilitates users to interact with various other students to discuss the topics or share ideas and thoughts.

 

 

Push Notifications

 

Users will have notifications regarding timings, upcoming courses, timetables, trending apprises in the education sector, etc. These timely updates will allow learners to set study goals.

 

My Progress

 

This feature helps students evaluate themselves, their past test history, the progress they made to date in the topic they choose would be visually represented to access information about themselves. It includes features as questions are attempted, and correct answers are given to various issues they choose to study.   

 

Subjects

 

Users can select the topic they want to study and acquire enormous subtopics within the particular subjects they choose. 

 

Quick Links

 

In this section, the users can access or create notes on the topic for their benefit, mark necessary study materials or remind them to revise a particular topic. Topics of significant importance can be noted; overall, the idea here is to allow the student to have a quick note or save an issue in this section so that the next time they visit the app to go through the topic, they won't have to go through the entire app.

 

Scheduled Test

 

In this section, a routine for the student is prepared to have a general idea of the upcoming test or exams.

 

Videos 

 

Users can access thousands of related videos to their subject in this section. Pre-recorded videos are organized topic-wise, and teachers are available for users to view in this section.

 

Exam Syllabus 

 

The syllabus for exam preparations is available in this section.

 

Payment 

 

A section for payment and subscription of the subjects

 

User profile/ Dashboard

 

All the information of the users is available in this section. The users can edit their profile and know about their enrolled course or subscriptions and their expiry date.

 

These are the essential features we included in our app, but there is always room for improvement.

 

Technology used

 

·           Database: AWS-RDS 

·           Web: Vue.js

·           Back-end: Python, Django

·           Back-end/frontend: Rest API

·           Data: Postgresql

·           cache: Memcached

·           Host: AWS-E2C

·           For Android: Java programing/ Android SDK 

·           For iOS: Swift

·       Push Notification: Firebase

 

 

 

 

 

 

 

 

 

 

 

 

User Flowchart

 

 

Launch

Onboarding

Login/sign in

Sign up

Home Page

Subjects              

Videos

Join Live Class

Exam Syllabus

Payments

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Challenges we faced while making the APP

 

  1. The app slowed down when the number of users was high

 

Cause

 

The issue was that many similar operations were being performed on the exact data for different users. For example, in an examination, the question paper provided to each student is the same, but whenever a request for a test paper was made by users, our system generated question paper from the database each time a request for the paper was made. This activity weakened our servers to function correctly to handle any incoming request because we wasted many of our computing resources each time a bid was sent to a database.

 

 

Solution

 

To solve the above problem, we generated the response for such requests and stored the complete response in the database itself, so whenever any request was made, the system simply fetched the saved data and served them.

 

  1. At times of peak hour, such as during live exam, the system stopped responding

 

Cause

 

The leading cause of this problem was that the available resources sufficient for normal times (when the number of users in the application is low) were insufficient at peak hours. 

 

Solution

 

We managed this by vertical scaling (The server resources such as RAM, processor were upgraded in real-time at peak hours). 

But even after implementing the above solution, the problems didn't solve completely. The problem was that the database couldn't handle more requests, and at times the database usage was at the maximum. So, to overcome this problem, we used the following solutions.

 

-       Cache

 

We used Memcached hosted on a separate EC2 instance to cache the user's data.

 

-       Read replica for database

 

We isolated our central database from getting too many requests by keeping Read replicas of our central database. This improved the performance significantly

-       We kept a separate caching mechanism for authentication

 

The most frequently done operation and any subscription-based platform is authentication. It was one of the main culprits in making the database slow, so we isolated the authentication system to a separate database where we used Redis as a database and isolated the authentication process from our central database and read replicas.

 

-       Horizontal scaling

 

Our previous approach of vertical scaling had many disadvantages, so we started implementing horizontal scaling (Here the number of machines are increased or decreased as per our requirement rather than the resources of a single device)