0% found this document useful (0 votes)
114 views60 pages

Sample Report 1 (LMS)

Library management System

Uploaded by

aadyashamajhi84
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
114 views60 pages

Sample Report 1 (LMS)

Library management System

Uploaded by

aadyashamajhi84
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 60

Project Report on

Learning Management System

Submitted by

Abishek Mohanty (2101229026)


Chinamay Shatidhawja Rout (2101229058)
Deepak Kumar (2101229061)
Deepak kumar Rana (2101229062 )
Immanuel Mundary (21012290789)

Project Report submitted in partial fulfillment of the


requirements for the award of degree of B.Tech. in
Computer Science & Engineering under DRIEMS University

2021 - 2025

Under the Guidance of

Prof. Shekharesh Barik


Asso. Professor, Dept. of CSE

Department of Computer Science and Engineering


School of Engineering and Technology, Tangi,Cuttack-
754022
Department of Computer Science & Engineering
School of Engineering and Technology , Tangi, Cuttack -
745022

Certificate

This is to certify that this is a Bonafide Project report, titled “Learning Management
System”, done satisfactorily by Abhishek Mohanty (2101229026), Chinmay Shaktidhwja
Rout (2101229058) ,Deepak Kumar (2101229061), Deepak Kumar Rana (2101229062),
Immanuel Mundary (2101229079) in partial fulfillment of requirements for the degree of
B.Tech. in Computer Science & Engineering under DRIEMS University

This Project report on the above-mentioned topic has not been submitted for any other
examination earlier before in this institution and does not form part of any other course
undergone by the candidates.

Prof. Shekharesh Barik Prof. Surajit Mohanty


Asso. Professor, Dept. of CSE Asso. Professor & Head
Guide Dept of CSE
:
:

ACKNOWLEDGEMENT

We express our indebtedness to our guide Prof. Shekharesh Barik, Associate Professor
of the Computer Science & Engineering department who spared his valuable time to go
through manuscript and offer his scholar advice in the writing. His guidance,
encouragement and all out help have been invaluable to me. There is short of words to
express our gratitude and thankfulness to him.

We are grateful to all the teachers of Computer Science & Engineering department,
DRIEMS, for their encouragement, advice and help.

At the outset, we would like to express our sincere gratitude to Prof. Surajit Mohanty,
H.O.D of Computer Science & Engineering department for her moral support extended
towards us throughout the duration of this project.

We are also thankful to our friends who have helped me directly or indirectly for the
success of this project.

Abishek Mohanty (2101229026)


Chinamay ShatiDhwja Rout (2101229058)
Deepak Kumar (2101229061)
Deepak kumar Rana (2101229062 )
Immanuel Mundary (21012290789)
Department of Computer Science & Engineering
School of Engineering and Technology
ABSTRACT

This project envisions an innovative Learning Management System that not only streamlines
the learning process but also enhances it through intelligent recommendations and a rich
variety of content types. The incorporation of cutting-edge technologies such as Twilio for
authentication and machine learning for personalization makes this LMS a forward-thinking
educational platform. The presentation of this wonderful makeover will be in the form of
Android Application. Users will have the convenience of secure and swift login and signup
processes through phone OTP authentication. The LMS will provide users with a
comprehensive package of courses, each highlighted with special annotations to denote its
relevance or uniqueness. This feature aims to guide users in their course selection process.
Leveraging machine learning algorithms, the system will offer personalized course
recommendations to users based on their educational background and interests, and AI Cheat
Detection while attending Exams. This feature will help users discover courses that align with
their individual learning objectives. The LMS will support a variety of content types,
including text-based materials and video-based lectures. This multimedia approach will cater
to diverse learning styles and preferences. The system will facilitate quizzes to assess users
and knowledge and understanding of course content. An advanced machine learning model
may be employed to recommend quiz questions, ensuring an adaptive and effective
assessment experience. Users will be provided to rate courses and track their course
completion status. This feature promotes transparency and helps users make informed
decisions about their learning journey. The application will present an intuitive and
artistically pleasing user interface (UI) design. This design emphasis aims to enhance user
engagement and ease of navigation throughout the platform. All the features will be intensive
throughout the application to manage the flow of the user.
Keyword: LMS, Users, Courses, Machine Learning, Cheat Detection
CONTENTS

LIST OF FIGURES i

CHAPTER 1 1

1 INTRODUCTION 1

1.1 LITERATURE SURVEY 2

1.2 PROBLEM DEFINITION 3

1.3 MOTIVATION OF WORK 4

1.4 OBJECTIVES 4

CHAPTER 2 6

2 LMS (LEARNING MANAGEMENT SYSTEM) 6

2.1 CHARACTERISTICS OF LMS 6

2.1.1 PERSONALIZED LEARNING PATHS 6

2.1.2 COLLABORATIVE LEARNING TOOLS 7

2.1.3 MOBILE COMPUTING 8

2.1.4 DETAILED REPORTS AND ANALYTICS 8

2.1.5 SECURITY 9

2.2 APPLICATIONS 10

2.2.1 EDUCATION 10

2.2.2 REAL ESTATE INDUSTRY 11

2.2.3 HEALTHCARE INDUSTRY 11

2.2.4 IT AND MANUGACTURING INDUSTRY 11

2.2.5 LEGAL INDUSTRY 12

2.3 BENEFITS OF LMS 12

2.4 LIMITATIONS OF LMS 13

2.5 TECHSTACK 14

CHAPTER 3 17
3 ANDROID APP 17
3.1 UI DESIGN 17
3.2 APPLICATION LOGIC 17
3.3 KEY COMPONENTS AND FUNCTIONALITIES 17
3.4 LIBRARIES USED 19
3.5 APP ARCHITECTURE 22
3.5.1 WHAT IS CLEAN ACHITECTURE? 23

3.5.2 DATA LAYER 24

3.5.3 DOMAIN LAYER 24

3.5.4 PRESENTATION LAYER 25

3.5.5 KEY CONSIDERATIONS 25

3.5 APP SCREENSHOT 26


CHAPTER 4 30
4 BACKEND 30
4.1 EXPRESSJS 30
4.2 MONGODB 30
4.3 LIBRARIES USED 31
4.4 ER DIAGRAM OF LMS 33
4.5 SCHEMA 34
4.6 BACKEND ARCHITECTURE 38
4.7 BACKEND STRUCTURE 40
4.8 BACKEND DEPLOYMENT 41
CHAPTER 4 42
5 MACHINE LEARNING 42
5.1 RECOMMENDATION SYSTEM & CHEATING DETECTION 43
5.1.1 DATA COLLECTION AND READABILITY 44
5.1.2 LIBRARIES USED 45
5.1.3 ALGORITHMS USED 45
5.1.4 REAL TIME PROCESSING 46
5.1.5 CHEATING DETECTION ML KIT 47
CONCLUSION AND FUTURE SCOPES 51
REFERENCES 52
LIST OF FIGURES
Fig 2.1 LMS CHARACTERISTICS 10
Fig 2.2 LMS IN EDUCATION 10
Fig 2.3 LMS IN REAL ESTATE 11
Fig 2.4 LMS IN GOVT. 11
Fig 2.5 LMS IN HEALTHCARE 11
Fig 2.6 LMS IN CORPORATE 11
Fig 2.7 LMS IN LEGAL INDUSTRY 12
Fig 2.8 LMS ARCHITECTURE 16
Fig 3.1 CLEAN ACRCHITECTURE IN SOFTWARE DEVELOPMENT 23
Fig 3.2 CLEAN ACRCHITECTURE IN ANDROID 24
Fig 3.3 APP SCREENSHOTS 29
Fig 4.1 ER DIAGRAM OF LMS 33
Fig 4.2 USER SCHEMA 34
Fig 4.3 COURSE SCHEMA 35
Fig 4.4 COURSE COVERAGE SCHEMA 36
Fig 4.5 EMAIL VERIFICATION SCHEMA 36
Fig 4.6 PAYMENT SCHEMA 37
Fig 4.7 EXAM SCHEMA 38
Fig 4.8 MVC ARCHITECTURE IN BACKEND 40
Fig 4.9 BACKEND STRUCTURE 40
Fig 5.1 MACHINE LEARNING IMAGE 43
Fig 5.2 RECOMMENDATION SYSTEM DATA FLOW 44
Fig 5.3 EXPLORATORY DATA ANALYSIS 45
Fig 5.4 ALGORITHM IMPLEMENTATION 46
Fig 5.5 RECOMMENDATION SYSTEM 47
Fig 5.6 CHEATING DETECTION SAMPLE SCREENSHOTS 50

i
Chapter 1

INTRODUCTION

A Learning Management System (LMS) is a software application designed to manage,


deliver, and track educational content and training programs. It provides a centralized
platform for instructors and learners to access and manage course materials, grades,
assignments, and assessments. An LMS allows for online learning, delivering education and
training content through digital platforms, making learning more accessible, flexible, and
efficient. The system can be used by educational institutions, government agencies, and
businesses to offer training programs, employee onboarding, and professional development.
An LMS can enhance the learning experience by providing personalized, interactive, and
engaging content that can be accessed anytime and anywhere. In summary, an LMS is a
valuable tool in modern education and training, providing a more effective and efficient way
to deliver and manage educational content. E-learning is an education via the Internet,
network, or standalone computer. E-learning is basically the network- enabled convey of
skills and knowledge. E-learning refers to using electronic applications and processes to
learn. E-learning includes all forms of electronically supported learning and teaching. The
information and communication systems, whether networked learning or not, serve as
specific media to implement the learning process. This often involves both out-of-classroom
and in-classroom educational experiences via technology, even as advances continue
regarding devices and curriculum. E-learning is the computer and network-enabled transfer of
skills and knowledge. E-learning applications and processes include Web-based learning,
computer-based learning, virtual education opportunities and digital collaboration. Content is
delivered via the Internet, intranet/extranet, audio or video tape, satellite TV, and CD-ROM.
E-learning systems contain both Learning Management System and Course management
system. It can be self-pace or instructor-led and includes media in the form of text, image,
animation, streaming video, and audio. It is commonly thought that new technologies can
make a big difference in education. In young ages especially, children can use the huge
interactivity of new media, and develop their skills, knowledge, and perception of the world,
under their parents' monitoring, of course. It has the capability to attract the larger audience.

1|Page
1.1 LITRATURE SURVEY

 "The role of Learning Management Systems in higher education: a review" by C.


Hossein et al. (2016) [1] This reviews article provides an overview of the LMS's role
in higher education, discussing the various features and benefits of the system, as well
as the challenges and limitations associated with its implementation. The authors
highlight the LMS's ability to enhance student engagement, improve learning
outcomes, and provide a more flexible and personalized learning experience. It deals
with some specific features for better service delivery. The article also discusses the
importance of proper planning, training, and support in the successful adoption and
use of an LMS in higher education. It emphasizes on getting all the components right
in place for better operational efficiency.
 "A review of literature on Learning Management Systems (LMS)" by N. Lwin et al.
(2021) [2] It provides an in-depth analysis of the literature on LMS, focusing on the
system's features, benefits, and challenges. The authors discuss the different types of
LMS, such as open-source and proprietary systems, and their respective advantages
and disadvantages. The article also highlights the role of LMS in online and blended
learning, as well as the need for proper training, support, and evaluation to ensure the
system's effective use in education. As we know LMS becomes a comprehensive
platform for diverse learning experience, it will be more challenging to deal with data
security, better accessibility.
 "Critical success factors for Learning Management System implementation" by N.
Elferchichi et al. (2018) [3] This research article focuses on the critical success factors
for LMS implementation, based on a survey of 100 LMS users. The authors identify
several factors, such as technical support, training, and ease of use, that influence the
successful adoption and use of an LMS in education. Continued Integration of modern
technologies for personalized learning experience is key for the success. In addition,
with it, we need User-friendly interfaces and alternative delivery methods for critical
times. The article also discusses the importance of aligning the LMS with educational
objectives, providing a personalized learning experience, and ensuring the system's
scalability and interoperability. Both in administration control and distributed
network, the system must be compact and less-complex.
 "Learning Management System: A Review of Literature" by R. Prasad et al. (2016)
[4] This reviews article provides a comprehensive overview of the LMS's features,

2|Page
benefits, and challenges, based on a thorough analysis of the literature. The authors
discuss the role of LMS in facilitating collaborative learning, improving learning
outcomes, and enhancing student engagement. The article also highlights the need for
proper planning, training, and support to ensure the system's effective use in
education. It fosters the use of better UI interfaces for a catalytic growth item in the
application.
 "Learning Management Systems in the Workplace: A Literature Review," R.
Sabharwal, R. Chugh, M. R. Hossain and M. Wells, 2018 [5] A Learning
Management System (LMS) in the workplace streamlines training, fosters continuous
learning, and supports a culture of self-improvement. It scales to fit organizations of
all sizes, offering robust analytics to track employee progress and measure training
impact. LMS ensures compliance and certification management. It reduces the cost as
compare to the traditional training practices. It promotes global collaboration among
teams, facilitates e-learning, and prioritizes data security. With customizable content,
engaging modules, and career development opportunities, LMS systems enhance
employee engagement, job satisfaction, and organizational success in today's dynamic
work environment.

1.2 PROBLEM DEFINITION


Despite the numerous benefits of a Learning Management System (LMS), there are still
several challenges associated with its implementation and use. One of the significant
problems faced by LMS users is the difficulty in adopting and integrating the system into the
existing educational or training framework. This may be due to the complex nature of the
LMS or the lack of technical expertise among educators or trainers. Another problem is the
need for extensive training and support for instructors and learners to fully utilize the
system's features effectively. Additionally, the cost of implementing and maintaining an LMS
can be a challenge, particularly for small or medium-sized educational institutions or
businesses with limited resources. Finally, the LMS's reliance on stable internet connectivity
and adequate hardware may limit access to the system's benefits for some learners. Therefore,
addressing these challenges is crucial in ensuring the effective implementation and use of an
LMS in education and training.

3|Page
1.3 MOTIVATION OF WORK

The motivation for developing or using a learning management system (LMS) can vary
depending on the specific needs and goals of an organization or individual. Here are some
common motivations for using an LMS in the context of work and learning:

 Efficiency: An LMS can streamline the process of creating, delivering, and managing
learning content, making it easier and more efficient for organizations to provide
training and development opportunities to their employees.
 Flexibility: With an LMS, learners can access training materials from anywhere and at
any time, allowing them to learn at their own pace and on their own schedule. This
can be particularly beneficial for remote workers or those with busy schedules.
 Standardization: An LMS can help ensure that all employees receive the same training
and have access to the same resources, which can help to maintain consistency in
performance and outcomes.
 Tracking and Reporting: An LMS can provide detailed data on learner progress and
engagement, allowing organizations to track the effectiveness of their training
programs and identify areas for improvement.
 Cost-effectiveness: By delivering training content online, an LMS can help
organizations save on costs associated with traditional classroom-based training, such
as travel expenses, venue rental, and instructor fees.

Overall, an LMS can be a powerful tool for improving the quality and accessibility of
workplace learning, while also providing numerous benefits for organizations and learners
alike.

1.4 OBJECTIVES
The primary objective of building a learning management system (LMS) is to create a
platform for delivering, managing, and tracking learning experiences that meet the specific
needs and goals of an organization or individual. Here are some specific objectives of
building an LMS:

4|Page
 Customization: Building an LMS allows organizations or individuals to customize the
platform to their specific needs, such as adding or removing features, integrating with
other systems, or branding the platform to reflect their identity.
 Scalability: An LMS can be designed to accommodate many users and courses,
making it scalable for organizations that need to deliver training to a large workforce
or customer base.
 Security: Building an LMS allows organizations to implement security measures to
protect sensitive data, such as user information, course content, and assessment
results.
 Integration: An LMS can be integrated with other systems, such as human resources
or customer relationship management systems, to streamline the delivery of training
and improve the overall learning experience.
 Analytics: Building an LMS allows organizations to collect and analyze data on
learner behavior and performance, providing insights that can be used to improve
training programs and measure the impact of learning initiatives.

Overall, the objective of building an LMS is to create a flexible, scalable, and secure platform
that can deliver customized learning experiences and provide valuable insights into learner
behavior and performance. It creates a good ambience with positive effects and good
combinational models for good service delivery.

5|Page
Chapter 2
LMS

A Learning Management System (LMS) is a software application designed to facilitate,


deliver, and manage educational content and resources. It is used by educators and trainers to
create, deliver, and track educational courses and training programs. LMSs are commonly
used in educational institutions, corporate training programs, and online learning platforms.
They provide a centralized platform for learners to access educational resources, interact with
instructors and peers, and track their progress and performance. E-learning is an education
via the Internet, network, or standalone computer. E-learning is basically the network-
enabled convey of skills and knowledge. E-learning refers to using electronic applications
and processes to learn. E-learning includes all forms of electronically supported learning and
teaching (Tirkes, G,2010). The information and communication systems, whether networked
learning or not, serve as specific media to implement the learning process. This often
involves both out-of-classroom and in-classroom educational experiences via technology,
even as advances continue in regard to devices and curriculum. E-learning is the computer
and network-enabled transfer of skills and knowledge. E-learning applications and processes
include Web-based learning, computer-based learning, virtual education opportunities and
digital collaboration. Content is delivered via the Internet, intranet/extranet, audio or video
tape, satellite TV, and CD-ROM. E-learning systems contain both Learning Management
System and Course management system. It can be self-pace or instructor-led and includes
media in the form of text, image, animation, streaming video and audio. It is commonly
thought that new technologies can make a big difference in education. In young ages
especially, children can use the huge interactivity of new media, and develop their skills,
knowledge, and perception of the world, under their parents' monitoring, of course.

2.1 CHARACTERISTICS OF LMS

6|Page
The characteristics of a learning management system (LMS) can vary depending on the
specific platform and its intended use. However, here are some common characteristics of
LMSs:
2.1.1 PERSONALIZED LEARNING PATHS:
Whether it’s training in the corporate sector or imparting knowledge and education in
universities, a personalized learning path is a must-have for the Learning Management
System you choose. This provides learners with an individual learning path, tailored
according to their needs and interests.

You may have noticed that ‘on-demand’ consumption has been on the rise lately. We’re
doing everything on our schedules, be it watching television and listening to, attending
evergreen online events long after their designated dates, or watching pre-recorded versions
on live webinars. The same trend applies to learning as well where learners prefer to take
courses that are self-paced which is why tending to this growing need becomes crucial for
your Learning Management System.
Make sure that your online teaching and training process is up to the mark with features like:

– Adaptive Learning Engines: So that you’re able to track learner activity and responses in
real-time while also offering highly customized learning paths.
– Non-linear Course Design: Your learners need to be able to pick the module they want to
study, instead of having to sit through what they already know.
– Project Management Tools: With personalized learning paths, it’s important to keep
learners focused and on-task. You can integrate these tools to enable learners to share
documents, exchange feedback, and manage tasks effectively.
– Course Recommendations: With a little help of machine learning, your Learning
Management System should be able to offer course suggestions to learners based on their
interests. This is a great way to open more learning opportunities for them and keep them
engaged with the platform.

2.1.2 COLLABORATIVE LEARNING TOOLS:


Choose an LMS that comes equipped with features that support modern collaborative
learning practices like gamification and social learning.

7|Page
Learning is no longer a means to an end, but a process that must add value without the
tedium. Therefore, when choosing your LMS, look for one that makes the whole process
interactive, engaging, and experiential.

a) Gamification -
Gamification uses three elements – points, progression, and competition. Just like any
other game, you cross levels to earn points, check your progress, and compete with
others to remain at the top. Various platforms use different approaches such as leader
boards, badges, and bars, and the result is an engaged audience that keeps coming
back for more.
The levels and progress are visible only to the learner; however, they can compare
their ranks on their leadership board with others. The key here is finding an LMS that
has these features built-in, so you don’t need external integrations or plug-ins to
introduce them in your courses.

b) Social Learning -
There’s no denying the power of social learning in boosting user engagement. Your
LMS should incorporate features that foster learner communities like group
discussion forums where learners can like, share, and comment on posts.
Some LMS’s also incorporate Facebook-style newsfeeds within the course to keep
everyone updated on the latest announcements. Others allow you to do so much as
integrating groups within popular social media platforms directly in the course so
instructors and TA’s can access class discussions from one place.

2.1.3 MOBILE COMPUTING:


To keep up with the busy schedules of most online learners, your LMS needs to be accessible
on-the-go. Partnering with an LMS that functions seamlessly on tablets and smartphones is
critical to expanding your learner-base and maximizing content consumption.
To make your online training experience smoother, your LMS must come with its own native
app that takes remote learning and accessibility up a notch. This will open the gates to a
personalized learning world for users which enable access to the entire LMS and its offerings
through their device of choice. It will also allow learners to stream, download, and save
eLearning courses at their pace earning you some extra brownie points for boosting usability.

8|Page
2.1.4 DETAILS REPORTS AND ANALYSIS:
These are some basic metrics that your Learning Management System should be able to
provide:
 The current progress of courses
 Courses yet to be accessed
 Time logs for course access
 Distinct individuals who have completed the course(s)
 Average viewing/learning time
 Breakdown of assessment attempts and responses
 List of popular courses
 Reports across regions

Data visualization is also a core feature here. The last thing you’d want is to have an
onslaught of insightful quantitative data that you can’t make any sense of. So, look for an
LMS that offers easy-to-use dashboards that make it simple to make sense of any type of data
and also let you manipulate data sources to see exactly what you want.

2.1.5 SECURITY:
Data security is another must-have LMS feature. An LMS has the personal information of a
learner and the proprietary learning materials that are of commercial value, both of which are
highly sensitive. Hence, before choosing your LMS provider, make sure to get answers to
these questions:
– Are sign-ins the first point of contact and if so, how secure are they?
– Where is the data hosted and what’s the delivery method?
– Who can access what data? Most LMS’s allow you to set multiple access levels allowing
you to determine who gets to see, edit, and share what. However, this can backfire when you
have multiple people who need to assume a certain role but you only have limited seats for
that role to offer. Log in credentials end up getting shared across multiple people in the
process putting your system at a serious Information Security risk. To prevent this from
happening, ensure that you have enough seats for each role so that everyone uses their
account to log in.

9|Page
– Who owns the data? This detail is very important because there needs to a clear distinction
between the LMS provider’s right to store and process the content and data and ownership
that is retained by you. It may sound simple enough to skip but check with your LMS
provider to ensure that there are no ambiguities over this.

Figure 2.1: LMS Characteristics

2.2 APPLICATIONS
Learning Management Systems (LMS) are versatile platforms that can be used in various
fields to manage and deliver educational content. Here are some examples of how LMS can
be applied in different areas:

2.2.1 Education:

10 | P a g e
An LMS is perhaps most suited for educational
institutions than any other industry. In recent times,
as the COVID-19 pandemic necessitated the switch
to online learning, many schools and colleges have
used an LMS to temporarily replace or complement
classroom learning. The benefit of using an LMS
for education is that the online courses and
Fig 2.2: LMS in Education
assessments can be customized to provide a more
personalized approach for students.
2.2.2 Real estate Industry:
Real estate agents must have up-to-date knowledge
of their industry standards and need to be certified
for certain tasks. The use of an LMS to train real
estate agents can bring training costs down and also
help them complete the training at their own pace.

Fig 2.3: LMS in Real estate


2.2.3 Government:
LMS is also used by government agencies to provide
training to employees and contractors. LMS can be
used to deliver training on policies, regulations, and
procedures, as well as on specific job skills.

Fig 2.4: LMS in Govt.


2.2.4 Healthcare Industry:
Healthcare systems across the world are constantly
changing with the advent of modern technologies
and changes in medicine. A well-implemented LMS
can aid in providing the right kind of training for
healthcare workers and providers, leading to better
healthcare services.
Fig 2.5: LMS in Healthcare
2.2.5 IT and Manufacturing Industry:

11 | P a g e
IT and manufacturing employees need to be
constantly up to date on changes in technology and
are often required to complete compliance training
certifications. Using an LMS for employee training
will help IT and manufacturing employees achieve
their learning goals from the comfort of their
computers.
Fig 2.6: LMS in Corporate
2.2.6 Legal Industry:

Policies and laws change from time to time. A well-


organized LMS tool can help paralegals to stay
updated with the latest news, laws, and policy
changes.

Fig 2.7: LMS in Legal Industry

2.3 BENEFITS OF LMS


 Centralized learning: LMS provides a centralized location to store and manage all
learning materials, making it easier for learners to access the content from anywhere
and at any time. It also provides a consistent learning experience for all learners.
 Improved accessibility: LMS platforms are designed to be accessible on various
devices and from different locations, allowing learners to access the content on the go.
 Personalized learning: LMS can personalize learning paths based on the learner's
performance, preferences, and goals. This helps to ensure that learners receive
relevant and appropriate learning materials and can progress at their own pace.
 Efficient tracking and reporting: LMS allows instructors to track learners' progress
and performance, including attendance, completion rates, and assessment scores. This
enables instructors to identify areas for improvement and make necessary adjustments
to the course content and delivery.
 Cost-effective: LMS reduces the cost of delivering training and education materials
by eliminating the need for physical classrooms, instructors, and printed materials.

12 | P a g e
 Scalability: LMS can be easily scaled to accommodate a large number of learners and
courses, making it ideal for organizations of all sizes.

A Learning Management System (LMS) offers numerous benefits for organizations and
learners alike. It centralizes learning resources, making them easily accessible anytime,
anywhere. LMSs facilitate personalized learning paths, catering to individual needs and
enhancing engagement. They enable tracking and assessment of learner progress, providing
valuable data for improvement. LMSs also streamline administrative tasks, reducing time and
costs associated with traditional training methods. Overall, LMSs enhance the efficiency,
effectiveness, and convenience of learning, making them indispensable tools for modern
education and training environments.

2.4 LIMITATIONS of LMS


 Technical issues: LMS requires reliable internet connectivity and technical
infrastructure to function correctly. Technical issues such as server downtime, internet
connectivity, and software compatibility can interrupt the learning process and cause
frustration for learners and instructors.
 Limited interaction: LMS platforms often rely on asynchronous communication,
which can limit interaction between learners and instructors. This can result in a lack
of engagement and less effective learning outcomes.
 Limited personalization: While LMS platforms can provide personalized learning,
they may not be able to cater to the unique needs of every learner, which can affect
the quality of the learning experience.
 Content quality: LMS platforms rely heavily on the quality of the content provided
by the instructor or the course creator. Poorly designed content can result in poor
learning outcomes and a negative learning experience.
 Training required: While LMS platforms are designed to be user-friendly,
instructors and learners may still require training to use them effectively, which can
take up valuable time and resources.
 Cost: While LMS platforms can be cost-effective in the long run, there are often
significant upfront costs associated with purchasing and implementing an LMS.

13 | P a g e
While Learning Management Systems (LMSs) offer many benefits, they also have
limitations. One challenge is the potential for technical issues, such as compatibility
problems with different devices or browsers. Another limitation is the lack of personal
interaction, which can be important for some learners. Additionally, some LMSs may
not offer enough flexibility in terms of course customization or learning paths.
Another concern is the need for consistent internet access, which can be a barrier for
learners in areas with limited connectivity. Despite these limitations, effective
implementation and careful consideration of these factors can help maximize the
benefits of an LMS.

2.5 TECHSTACK
Creating a learning management system (LMS) Android app with machine learning-based
course recommendation and a backend powered by MongoDB involves several
components. Here's a high-level architecture for such a system:
1. Frontend Android App:
 This is the user-facing part of the system where students and instructors
interact with the LMS.
 Developed using Java or Kotlin for Android app development.
 The app should have user authentication, user profiles, course search,
enrollment, and content delivery features.
2. Machine Learning for Course Recommendation:
 Implement machine learning algorithms to recommend courses to users based
on their past activities, preferences, and behavior.
 Use libraries like TensorFlow, PyTorch, or scikit-learn for machine learning
model development.
 Collect and preprocess user data, such as course history, user ratings, and
preferences, to train your recommendation models.
 Collaborative filtering, content-based filtering, or hybrid methods can be
employed for recommendations.
3. Backend Server:
 The backend server handles requests from the Android app and manages data
storage, processing, and user authentication.

14 | P a g e
 It can be implemented in a programming language like Python (using
frameworks like Flask or Django), Node.js, or Java (using Spring Boot).
 Use RESTful APIs to communicate between the Android app and the backend
server.
4. Database (MongoDB):
 MongoDB is a NoSQL database that can store user profiles, course
information, user interactions, and other data.
 Design a schema for MongoDB to efficiently store and retrieve user-related
information and course data.
 Utilize MongoDB's flexibility to adapt to evolving data structures.
5. User Authentication and Authorization:
 Implement user authentication and authorization mechanisms to ensure data
security.
 You can use OAuth 2.0, JWT (JSON Web Tokens), or other authentication
protocols.
 Define user roles (e.g., student, instructor, admin) to control access to certain
functionalities.
6. Course Content Management:
 Upload and manage course content such as videos, documents, quizzes, and
assignments.
 Ensure secure storage and access control to course materials.
7. Notifications and Communication:
 Implement features for notifications, announcements, and communication
between instructors and students.
 Push notifications or in-app messaging can be used for real-time
communication.
8. Exam Monitoring:
1. Screen Recording and Monitoring: Utilize screen recording capabilities to
capture the student's entire screen during the exam. Monitor screen activity for
any unauthorized applications or windows.
2. Face Recognition and Verification: Integrate facial recognition technology to
verify the identity of the student taking the exam. Compare the student's face with
their profile picture to ensure they are the registered user.

15 | P a g e
3. Eye Tracking: Use eye-tracking technology to monitor the student's gaze and
ensure they are not looking at external materials or screens.
4. Audio Monitoring: Activate the device's microphone to capture audio during the
exam. Analyze audio for suspicious sounds, like conversations with others or the
use of unauthorized resources.

Figure 2.8: LMS Architecture

16 | P a g e
Chapter 3

ANDROID APP

3.1 UI DESIGN:
In our Android App we used XML for designing the UI. We also used Data Binding for
seamless integrating the UI with the Kotlin code to handle user interaction and update UI
with respect to the data received from the Backend. We used various layouts for the building
the UI like Constraint Layout, Linear Layout, Frame Layout, Coordinator Layout,
GridLayout, Motion Layout, etc. We have also used various types Viewslike RecyclerView,
ImageView, CardView, NestedScrollView, TextView, EditText, Button, ProgressBar, etc.

3.2 APPLICATION LOGIC:


Android provides two languages i.e., Java and Kotlin, to write the application logic. We have
used Kotlin to write the application logic. This application logic includes Remote API
integration and Local Database access i.e., using Room DB. Kotlin code is used to handle
user interactions, perform calculations, make network requests, manage data, and respond to
events triggered by UI elements. Kotlin code interacts with the XML layout files by
referencing the UI elements using their IDs and manipulating them programmatically.
We used Kotlin because of several reason like:
1. Null Safety
2. Better Asynchronous Operation using Coroutines
3. Interoperability
4. Smart Casts and Data Classes
5. Higher Order Functions and Extension Functions
6. Concise Syntax and Reduced Boilerplate code

17 | P a g e
3.3 KEY COMPONENTS AND FUNCTIONALITIES:
LearnWithFun Learning Management System (LMS) app involves several key components
and functionalities.

 User Authentication and Authorization:


The app allows users authenticate using phone number and OTP. Authentication is
powered by Twilio Services for seamless integration. Token-based authentication
is implemented for API calls, ensuring secure communication between the app
and the server.
 Course Management:
Users can browse, enroll in, and access courses offered within the app. Retrofit is
used to make API calls to fetch course data from the server. Courses are displayed
using RecyclerView with XML layouts for item presentation. Upon enrolling in a
course, the user can access all the content present in that course.
 Lesson and Content Delivery:
Each course consists of multiple lessons containing text, images, videos, quizzes,
etc. Content delivery involves fetching lesson data from the server via Retrofit.
Firebase Cloud Storage can be used to store and retrieve multimedia content like
images and videos. XML layouts are used to display lesson content, and Kotlin
logic handles navigation between lessons.
 Cheat Detection:
Firebase ML Kit is integrated for cheat detection during quizzes or exams. ML
Kit's face detection capabilities can be used to analyse user behaviour by
monitoring users face movements within a frame during assessments. Kotlin logic
processes ML Kit results to determine potential cheating behaviors, such as
copying from external sources i.e. app switch.
 Offline Access and Caching:
Room database is used for caching important data locally, especially failed API
requests. Failed API requests are stored in Room database with relevant metadata
(e.g., endpoint, parameters). Kotlin logic periodically checks for internet
connectivity and retries failed requests upon regaining internet access. These
failed API mostly target to crucial information like Cheat Flags detected during
assessment.
 Payment System:

18 | P a g e
Braintree SDK is integrated to facilitate payment transactions within the app. User
payment information is securely handled by Braintree, reducing PCI compliance
requirements for the app. API requests are made to verify payment transactions
and update user account status upon successful payment.
 Error Handling and Logging:
Kotlin code includes robust error handling mechanisms to handle exceptions and
unexpected scenarios. Logs are maintained to track user actions, API requests, and
system events for troubleshooting and analysis purposes.
 User Interface (UI) and User Experience (UX):
XML layouts define the UI components and screen structures for a seamless user
experience. Kotlin logic handles UI interactions, navigation, and data binding to
provide a responsive and intuitive user interface. Material Design principles can
be followed to ensure consistency and aesthetics in UI design.
 Security and Data Privacy:
Security measures are implemented to protect user data, including encryption for
sensitive information and secure communication protocols (e.g., HTTPS). Also,
since token-based authentication is done it adds a layer of security to it.
 Asynchronous Programming Using Kotlin Coroutines:
Kotlin Coroutines are quite helpful for Asynchronous Operations. These are
lightweight threads which basically are cooperative and carry much more
functionalities than its alternative i.e. RxJava2, RxKotlin and
AsyncTask(Currently Deprecated). Coroutines offer seamless integration with
Android's lifecycle and threading model. With built-in support for Android
lifecycle scopes (e.g., ViewModelScope, LifecycleScope), Coroutines simplify the
management of asynchronous tasks in activities, fragments, and ViewModels.
Coroutines are lightweight compared to RxJava2, resulting in lower memory
overhead and better performance, especially for applications with a large number
of concurrent tasks. Coroutines also use fewer resources, making them more
efficient for Android app development. Coroutines provide built-in support for
exception handling using try-catch blocks, making error handling more
straightforward compared to RxJava2, where errors need to be explicitly
propagated through the Observable chain.

19 | P a g e
3.4 LIBRARIES USED:
Android provides a huge support for libraries and all its dependencies are handle managed by
Gradle. In this app we have used various libraries like:
1. Braintree Payment:
 com.braintreepayments.api:drop-in: This dependency allows integration of

Braintree payment services into the app. Braintree provides tools for
processing payments securely.
 com.braintreepayments.api:data-collector: This dependency is used for
collecting and managing data related to payment transactions.
2. Firebase and ML Kit:
 Firebase dependencies (com.google.firebase): Firebase provides various

tools and services for building and managing mobile and web applications.
Here, Firebase is used for messaging, storage, and machine learning
capabilities (ML Kit).
 firebase-messaging-ktx: For integrating push notifications.
 firebase-storage-ktx: For accessing and managing cloud storage.
 firebase-ml-vision: Provides APIs for image processing and computer
vision tasks.
 firebase-ml-vision-face-model: Specifically for face detection and
recognition.
 play-services-vision-face-contour-internal: Internal dependency for vision
face contouring.
3. Easy Permissions:
 pub.devrel:easypermissions: Simplifies the process of requesting and

handling runtime permissions on Android.


4. Android Graph and Charts using MPAndroidChart:
 com.github.PhilJay:MPAndroidChart: Provides a library for creating

various types of graphs and charts in Android apps.


5. ExoPlayer:
 androidx.media3:media3-exoplayer: ExoPlayer is an open-source media

playback library for Android. This dependency includes ExoPlayer


integration for media playback in the app.
6. Camera X:

20 | P a g e
 androidx.camera:camera-camera2, androidx.camera:camera-lifecycle,
androidx.camera:camera-view: These dependencies are used for
integrating camera functionalities into the app using the CameraX library.
7. Kotlin Serialization:
 org.jetbrains.kotlinx:kotlinx-serialization-json:1.6.0: Provides support for

serializing Kotlin objects into JSON format and vice versa.


8. Retrofit and OkHttp:
 com.squareup.okhttp3:okhttp:4.11.0: OkHttp is a widely used HTTP client

for Android. Retrofit is a type-safe REST client for Android and Java.
 com.squareup.retrofit2:converter-gson, com.squareup.retrofit2:retrofit:
These dependencies are for converting JSON data to Java/Kotlin objects
and for making HTTP requests respectively.
9. Glide:
 com.github.bumptech.glide:glide:4.15.1: Glide is an image loading and
caching library for Android.
 com.github.bumptech.glide:compiler: Annotation processor for Glide.
 com.github.bumptech.glide:okhttp3-integration: Integration with OkHttp3
for improved performance.
10. Room Database:
 androidx.room:room-runtime, androidx.room:room-ktx: Room is a
persistence library that provides an abstraction layer over SQLite to allow
for more robust database access while harnessing the full power of SQLite.
 androidx.room:room-compiler: Annotation processor for Room.
 androidx.room:room-testing: Provides testing support for Room databases.
11. Work Manager:
 androidx.work:work-runtime-ktx: WorkManager is an Android library for

managing deferrable, asynchronous tasks.


12. Dagger-Hilt:
 androidx.hilt:hilt-compiler, com.google.dagger:hilt-android,
androidx.hilt:hilt-navigation-fragment: Dependencies for integrating
Dagger-Hilt, a dependency injection framework for Android.
13. Lottie Animation:
 com.airbnb.android:lottie: Lottie is a library for Android that parses Adobe

After Effects animations exported as JSON with Bodymovin and renders


them natively on mobile and desktop.
14. Android Layouts, Navigation, Fragment, and Other Views:

21 | P a g e
 androidx.fragment:fragment-ktx, com.google.android.material:material,
androidx.constraintlayout:constraintlayout,
androidx.navigation:navigation-fragment-ktx,
androidx.navigation:navigation-ui-ktx, com.github.appsfeature:otp-view,
np.com.susanthapa:curved_bottom_navigation,
androidx.swiperefreshlayout: Various UI components and layout libraries
for building the app's interface.
15. View Model:
 androidx.lifecycle:lifecycle-viewmodel-ktx: ViewModel is part of Android

Architecture Components, which is used for managing UI-related data in a


lifecycle-conscious way.
16. Kotlin:
 androidx.annotation, androidx.core, androidx.appcompat: Kotlin and

AndroidX support libraries.


17. Testing:
 junit:junit, androidx.test.ext:junit, androidx.test.espresso:espresso-core:
Testing libraries for unit testing and UI testing of the app.

These dependencies cover a wide range of functionalities required for developing a Learning
Management System app, including UI components, networking, database management,
media playback, machine learning, payment integration, and more. Libraries are essential
components in Android app development, offering pre-written code and resources that
streamline development processes and enhance app functionality. They provide ready-made
solutions for common tasks like networking, database management, and user interface design,
saving developers time and effort. By leveraging libraries, developers can focus on creating
innovative features and improving user experience rather than reinventing the wheel.

Moreover, libraries often come with a community of developers who contribute to their
improvement, ensuring high quality and reliability. They also promote code reusability,
enabling developers to use tried-and-tested solutions in multiple projects. Additionally,
libraries help maintain compatibility with different Android versions and devices, as they are
designed to work seamlessly with the Android platform.

22 | P a g e
3.5 APP ARCHITECTURE:
In LearnWithFun App I.e. Learning Management System we followed Clean Architecture to
build the whole app. Clean Architecture is a software design philosophy introduced by Robert
C. Martin, also known as Uncle Bob. It aims to create systems that are maintainable, scalable,
and testable by enforcing a clear separation of concerns and a well-defined architectural
structure. When applied to Android app development for a Learning Management System
(LMS), Clean Architecture helps in creating a modular, flexible, and easily extensible
codebase.

3.5.1 WHAT IS CLEAN ARCHITECTURE?

Clean Architecture is a software design approach that emphasizes separation of concerns and
independence of external frameworks and tools. It provides a clear structure for organizing
code, making it more maintainable, testable, and adaptable. The goal is to create a system that
remains stable even when we change the underlying technologies (such as databases or UI
framework). In the context of Android app development, Clean Architecture provides a
structured approach to organizing code, ensuring that business logic remains independent of
external frameworks and technologies. Important Layers of Clean Architecture are Domain
Layer, Data Layer and Presentation Layer.

23 | P a g e
Figure 3.1: Clean Architecture in Software Development

Figure 3.2: Clean Architecture in Android

3.5.2 DATA LAYER:

 Responsibility: The Data layer is responsible for managing data persistence and
retrieval. It interacts with databases, network services, and other external data sources.
 Components:
a) Repositories: Repositories abstract the data access implementation details
from the rest of the application. . They define methods for accessing and

24 | P a g e
manipulating data entities. In an LMS app, repositories might handle
operations like fetching course information, retrieving user data, etc.
b) Data Sources: Data sources are responsible for fetching data from different
external providers such as a local SQLite database, remote API endpoints, or
cache. In Kotlin, this could involve classes or interfaces defining methods for
CRUD (Create, Read, Update, Delete) operations.
c) Database Layer: If the app requires local data storage, the data layer might
include components like database access objects (DAOs) and database
instances. For instance, using Room Persistence Library for SQLite database
operations in Kotlin.

3.5.2 DOMAIN LAYER:

 Responsibility: The Domain layer contains the business logic and rules of the
application. It defines entities and use cases that represent the core functionality of the
LMS.
 Components:
a) Entities: Entities represent the core business objects in the application. In an
LMS, entities could include classes like Course, Lesson, User, etc., with
properties and methods relevant to their respective domains. These entities are
plain Kotlin classes without dependencies on the Android framework.
b) Use Cases (Interactors): Use cases encapsulate the application's business
logic. They define actions or operations that can be performed within the app,
such as enrolling in a course, completing a lesson, generating a quiz, etc. Use
cases orchestrate interactions between entities and data sources.
c) Business Rules and Validation: The domain layer enforces business rules
and validation logic to ensure data consistency and integrity. For example,
validating user input, enforcing prerequisites for course enrollment, etc.

3.5.3 PRESENTATION LAYER:

 Responsibility: The Presentation layer handles user interface (UI) rendering and user
interaction. It consists of components that are visible to the user.
 Components:

25 | P a g e
a) Activities, Fragments, Views: These are UI components responsible for
presenting information to the user and capturing user input. In Android
development, activities and fragments represent screens, while views represent
individual UI elements.
b) ViewModels: ViewModels help in managing UI-related data and handling
user interactions while surviving configuration changes (like screen rotation).
They abstract the UI logic from the UI components and interact with the
domain layer to fetch and process data.
c) Adapters and ViewHolders: Adapters are used to bind data to UI elements,
typically in RecyclerViews for displaying lists of items. ViewHolders hold
references to individual UI components within list items.
d) XML Layouts: XML layout files define the structure and appearance of UI
screens and UI components. They specify how UI elements are arranged,
styled, and interacted with.

3.5.4 KEY CONSIDERATIONS:

 Dependency Direction: Dependencies should flow inward, with higher-level layers


depending on lower-level layers. For example, the domain layer shouldn't depend on
the presentation layer.
 Interface Adapters: Use adapters/interfaces to communicate between layers. For
instance, repositories in the data layer expose interfaces implemented by concrete
classes, allowing the domain layer to remain independent of specific data sources.
 Testability: Each layer should be testable independently. Unit tests can be written for
domain logic without involving Android components, promoting faster and more
reliable testing.
 Separation of Concerns: Each layer should have a clear and distinct responsibility.
This separation makes the codebase easier to understand, maintain, and extend.
 SOLID Principles: Adhere to the SOLID principles (Single Responsibility,
Open/Closed, Liskov Substitution, Interface Segregation, Dependency Inversion) to
write clean, modular, and maintainable code. Design classes and components with a
single responsibility, ensure they are open for extension but closed for modification,
and favor composition over inheritance.

26 | P a g e
3.6 APP SCREENSHOTS:

27 | P a g e
28 | P a g e
Figure 3.3: Screenshots of LMS App

29 | P a g e
Chapter 4

BACKEND

4.1 EXPRESS JS

Express.js, a popular web application framework for Node.js, is pivotal in developing the
backend for a Learning Management System (LMS). It simplifies backend development by
streamlining HTTP request handling, route definition, and business logic implementation. In
an LMS project, Express.js routes serve as endpoints for various functionalities like user
authentication, course management, and lesson retrieval. These routes, defined with HTTP
methods like GET, POST, PUT, and DELETE, channel incoming requests to corresponding
controller functions. Middleware in Express.js enhances functionality by intercepting and
processing requests. Authentication, input validation, and error handling are typical
middleware tasks. By applying middleware globally or to specific routes, developers ensure
uniformity and efficiency in request processing. Controllers, the heart of the application's
logic, bridge routes and models. Models define data structure and database interaction
methods, while controllers orchestrate data retrieval, manipulation, and response generation.
Following the Model-View-Controller (MVC) pattern, this separation maintains code

30 | P a g e
organization and facilitates scalability.Express.js enables extensive customization and
extensibility, with a rich ecosystem of middleware and plugins. Third-party middleware can
add features like logging, caching, and rate limiting, enhancing application functionality
without reinventing the wheel. Overall, Express.js provides a robust foundation for LMS
backend development, balancing simplicity, flexibility, and scalability. Its routing,
middleware, and controller features empower developers to create efficient, modular, and
maintainable backend systems, crucial for supporting the intricate requirements of a learning
management system.

4.2 MONGODB

MongoDB, a leading NoSQL database, offers a flexible and scalable solution for storing and
managing data in a Learning Management System (LMS) backend. It diverges from
traditional relational databases by employing a document-oriented data model, where data is
stored in JSON-like documents. These documents are grouped into collections, providing a
dynamic schema that accommodates varying data structures within a single collection.
MongoDB's scalability and performance make it well-suited for LMS applications, where
large volumes of diverse data, such as user profiles, course materials, and assessment results,
need to be managed efficiently. Its distributed architecture supports horizontal scaling,
enabling seamless expansion to handle growing data loads. Additionally, MongoDB's rich
query language and powerful indexing capabilities facilitate fast and efficient data retrieval,
essential for delivering responsive user experiences in an LMS environment. Its support for
replica sets and automatic failover ensures high availability and fault tolerance, enhancing
system reliability. Overall, MongoDB serves as a robust and versatile database solution for
LMS backends, empowering developers to build scalable and resilient systems to meet the
demands of modern e-learning platforms.

4.3 LIBRARIES USED


Javascript provides a huge support for libraries and all its dependencies are handle managed
by Node. In this app we have used various libraries like:
1. @getbrevo/brevo: A dependency that appears to be specific to the project,
possibly providing functionality related to Brevo, but further details would be
needed to provide a more specific explanation.

31 | P a g e
2. bcryptjs: A library used for hashing passwords securely. It provides functions for
generating and comparing hash values of passwords, enhancing security in user
authentication processes.
3. body-parser: Middleware for parsing incoming request bodies in Express.js. It
extracts data from request bodies, making it accessible in req.body. This is
commonly used for processing form data or JSON payloads.
4. braintree: SDK for integrating Braintree payment processing into applications. It
provides tools for managing payment transactions, including credit card and
PayPal payments, enhancing the project's payment system functionality.
5. cors: Middleware for enabling Cross-Origin Resource Sharing (CORS) in
Express.js applications. It allows controlled access to resources from different
origins, facilitating communication between frontend and backend components
hosted on different domains.
6. dotenv: Utility for loading environment variables from a .env file into
process.env. It helps manage environment-specific configurations, such as
database connection strings or API keys, without hardcoding them into the source
code.
7. express: The core framework for building web applications and APIs in Node.js.
Express.js simplifies routing, middleware handling, and other HTTP-related tasks,
providing a robust foundation for the LMS backend project.
8. get-video-duration: Library for retrieving the duration of video files. It can be
used to extract metadata about video files uploaded to the system, facilitating
features like displaying video duration to users.
9. http: Node.js core module for creating HTTP servers and clients. It may be used
for low-level HTTP operations, but its specific usage in this project would depend
on the requirements.
10. i18next: Internationalization (i18n) framework for JavaScript applications. It
provides features for managing translations and localization, allowing the project
to support multiple languages and locales.
11. i18next-fs-backend: File system backend for i18next, enabling translations to be
stored and loaded from files on the filesystem. It complements i18next by
providing a convenient way to manage translations using files.

32 | P a g e
12. i18next-http-middleware: Express middleware for integrating i18next with
Express.js applications. It facilitates serving translated content based on the user's
preferred language, enhancing the project's internationalization capabilities.
13. jsonwebtoken: Library for generating and verifying JSON Web Tokens (JWTs).
It is commonly used for implementing stateless authentication mechanisms in web
applications, enhancing security by securely transmitting user authentication
information.
14. mongoose: ODM (Object-Document Mapping) library for MongoDB. It
simplifies interactions with MongoDB databases by providing a higher-level
abstraction, allowing developers to define schemas, perform CRUD operations,
and manage relationships more easily.
15. mongoose-long: Plugin for Mongoose that adds support for Long data type. It
may be used to handle large numbers more effectively in MongoDB documents,
depending on the project's requirements.
16. nodemailer: Library for sending email messages from Node.js applications. It
provides an easy-to-use API for sending transactional emails, notifications, and
other email-related tasks, enhancing communication capabilities in the project.
17. twilio: SDK for integrating Twilio's communication APIs into applications. It
provides tools for sending SMS, making phone calls, and other communication-
related tasks, enhancing communication capabilities within the project.

4.4 ER DIAGRAM OF LMS

33 | P a g e
Figure 4.1: ER Diagram of LMS

4.5 SCHEMA
Designing the schema for the backend of Learning Management System (LMS) app using
Express.js and MongoDB involves defining the structure of the database, including

34 | P a g e
collections, documents, and their relationships. Below is the schema that we have defined for
the LMS:

1. User Schema: This schema defines the structure for user data in the application. It
ensures that essential user information like name, email, and phone number is
captured accurately. Email validation is done via OTP send on email. Users can be
categorized as either learners or teachers. Additionally, the schema allows for the
storage of user profile pictures, enrolled courses, course tags, and various activity
records such as overall activity, video activity, and quiz activity, utilizing Maps for
flexibility. The schema provides a comprehensive foundation for managing user data
within the application, enforcing required fields and data types while offering
flexibility for additional features and extensions.

Figure 4.2: User Schema

2. Course Schema: The Course schema in the Learning Management System (LMS)
project defines the structure for courses, encompassing essential details such as name,
description, instructor, thumbnail, price, and enrollment information. It supports user
ratings, likes, and discounts. Courses are organized into modules, each containing
title, description, media content, quizzes, and marks. Modules can include PDF notes
and are categorized by week number. The schema allows for flexible tagging for easy

35 | P a g e
categorization. With its detailed representation, it enables efficient management and
delivery of educational content, enhancing the overall learning experience for users
and facilitating effective course creation and management by instructors within the
LMS application.

Figure 4.3: Course Schema

3. Course Coverage Schema: The Course Coverage schema is crucial for the Learning
Management System (LMS), tracking learner progress within courses. Entries are
identified by learner and course IDs, storing covered content and attended quizzes.
For each quiz attendance, it records the content and exam IDs, last question number
attended, and completion status. This schema provides instructors insights into learner
engagement and achievements, facilitating personalized learning experiences and

36 | P a g e
effective monitoring of progress within the LMS platform.

Figure 4.4: Course Coverage Schema

4. Email Verification Schema: The Email Verification schema manages the


verification process for user emails, storing email addresses alongside unique
verification codes. Verification status indicates whether emails are verified or
pending, defaulted to "PENDING" with options ["VERIFIED", "PENDING"]. This
structure ensures efficient email authentication and enhances user security within the
application.

Figure 4.5: Email Verification Schema

5. Payment Schema: The Payment schema manages payment transactions within the
system, recording essential details for each transaction. Each payment entry includes
the userId of the user making the payment, the courseId associated with the purchased
course, and the payment status, which is constrained to enum values ['SUCCESS',

37 | P a g e
'FAILED']. This schema ensures accurate tracking of payment activities, enabling
effective management of course enrollment and financial transactions within the
system.

Figure 4.6: Payment Schema

6. Exam Schema: The Exam schema facilitates the management of exams within the
learning platform, capturing crucial data for assessment and integrity monitoring.
Each exam instance is associated with a courseId, representing the course being
examined, a quizContentId for reference to specific quiz content, and a learnerId
identifying the student taking the exam. ExamMaxScore and ExamMarksScored
record the maximum achievable score and the actual score achieved by the learner,
respectively. Lists of correctAnswerQuestionIds and wrongAnswerQuestionIds track
the IDs of questions answered correctly and incorrectly. The schema includes
cheatFlags to detect various cheating behaviors during exams, with flagType
providing enum options for detection types, such as cheating, face detection failures,
or window changes during the test. Images and timestamps accompany these flags for
evidence. ExamStatus denotes whether the exam is completed or pending, defaulted
to "PENDING". This schema ensures comprehensive monitoring and assessment of
learner performance while maintaining exam integrity within the learning
environment.

38 | P a g e
Figure 4.7: Exam Schema

4.6 BACKEND ARCHITECTURE:

Learning Management System Backend is made using ExpressJs and MongoDB by following
MVC Architecture i.e. Model View Controller.
1. Model:
a. Definition: The Model represents the application's data and business logic.
In an LMS backend, models define the structure of data entities such as
users, courses, lessons, assignments, etc., and encapsulate operations
related to data manipulation and retrieval.

39 | P a g e
b. Implementation: Each model is typically defined using a schema, which
describes the properties and constraints of a particular data entity. In
MongoDB, Mongoose is commonly used to define schemas and interact
with the database. Models interact directly with the database to perform
CRUD (Create, Read, Update, Delete) operations.
c. Example:
i. ‘user.js’: Defines the schema and operations related to User Entity.
ii. ‘course.js’: Define the schema and operations related to Course
Entity.
2. View:
a. Definition: The View represents the presentation layer of the application,
responsible for rendering data to the user interface. In an LMS backend,
views typically consist of JSON responses sent back to the client in
response to HTTP requests.
b. Implementation: Views are often minimal in backend applications, as the
primary responsibility of rendering UI components lies with the frontend.
In Express.js, views are usually generated dynamically using template
engines like EJS or Pug. However, in an API-centric architecture, views
may simply serialize data into JSON format and send it back to the client.
c. Example:
i. JSON responses returned by controllers, containing data retrieved
from models and formatted for client consumption.
3. Controller:
a. Definition: The Controller acts as an intermediary between the Model and
the View, handling user requests, invoking appropriate actions on the
Model to fetch or manipulate data, and rendering the appropriate response
using the View.
b. Implementation: Controllers contain methods (or actions) corresponding
to different endpoints or routes in the application. Each method receives
incoming requests, processes them (e.g., validating input, invoking
corresponding methods on models), and sends back responses to the client.
c. Example:
i. ‘user.js’: Contains methods for handling user-related operations
such as registration, authentication, profile management, etc.
40 | P a g e
Figure 4.8: MVC Architecture in Backend

4.7 BACKEND STRUCTURE:

Designing the structure for an Express.js and MongoDB-based backend for a Learning
Management System (LMS) app involves creating a well-organized directory layout and
defining the various components of your application. This whole backend is made by
following MVC Pattern i.e. Model View Controller Architecture. Below is the structure we
used for LMS app using Express.js and MongoDB:

Figure 4.9: Backend Structure

41 | P a g e
4.8 BACKEND DEPLOYMENT:

The whole Backend is built using ExpressJS and MongoDB. We deployed the backend at
Render Platform which offers free tier for hosting our backend. We first created a Render
Account and set it up with respect to our requirement, like choosing database and setting up
the database connection with the project. Since Render supports yarn because of its numerous
advantages and capabilities in comparison to npm, we first upgraded our project from npm to
yarn. Then we added all the required Environment Variables to the project dashboard and
connected our Backends’ GitHub repository to it, so that a pipeline gets created by default
through render to deploy the latest commit done in our repository.
Here are some advantages of choosing Render instead of other Platforms:
1. Simplicity and Ease of Use:
 Render simplifies the deployment process by making it as easy as pushing
your code to source control.
 The user-friendly dashboard and straightforward configuration options make it
accessible for developers of all skill levels.
2. Automatic Git Deploys:
 Render automatically deploys your GitHub- or GitLab-backed service
whenever you push to its linked branch (such as by merging a pull request).
 This streamlines the deployment workflow and ensures that your latest
changes are always live.
3. Transparent Pricing:
 Render provides clear and transparent pricing.
 You can easily understand the cost structure, making it cost-effective for
hosting your applications and services.
4. Performance and Reliability:
 Render offers enhanced performance and reliability for your deployed
applications.
 With free TLS certificates, private networks, and auto deploys from Git, your
services are optimized for production use.
5. Standard Development Tools Integration:
 Render provides an interface and connection with standard development tools
and platforms.

42 | P a g e
Chapter 5

MACHINE LEARNING

Machine learning is a subset of artificial intelligence that equips computer systems with the
ability to learn and make predictions or decisions from data, without explicit programming. It
involves the development of algorithms and models that improve their performance through
experience, iteratively refining their predictions or behaviors. Machine learning finds
applications in various fields, from image recognition and natural language processing to
healthcare diagnostics and autonomous vehicles, enabling automation and data-driven
decision-making across diverse domains. It encompasses a range of techniques, from
supervised learning (where models are trained on labeled data) to unsupervised learning (for
discovering hidden patterns in data) and reinforcement learning (where models learn through
trial and error). Machine learning is revolutionizing industries by automating tasks,
improving data-driven decision-making, and enabling innovative applications like chatbots,
recommendation systems, and self-driving cars.

Machine Learning (ML) is revolutionizing Learning Management Systems (LMS) by


offering personalized and adaptive learning experiences. ML algorithms analyze user data,
such as learning behavior and preferences, to tailor content and recommendations. This
enhances user engagement and knowledge retention.

ML also improves administrative tasks by automating grading, feedback generation, and


course scheduling. Predictive analytics in ML can identify at-risk learners, allowing early
intervention and support. Additionally, ML enables content curation and recommendation
systems, suggesting relevant resources to users based on their learning history and goals.

Furthermore, ML enhances security by detecting anomalies and potential threats in user


activity. Overall, ML's integration in LMS enhances user experience, streamlines
administrative tasks, and improves learning outcomes, making it a crucial technology in
modern education systems.

New technologies like blockchain and metaverse has also taken help of ML to conceptualize
the prediction, dashboard management, which also helps the LMS with modernity and with
multiplier effect through coding and development.

43 | P a g e
Fig 5.1: Machine Learning Image

5.1 RECOMMENDATION SYSTEM & CHEATING DETECTION


A recommendation system, often referred to as a recommender engine, is a technology that
leverages algorithms to suggest items or content to users based on their preferences and past
interactions. These systems are prevalent in e-commerce platforms like Amazon, streaming
services like Netflix, and social media sites. Recommendation engines use various
techniques, including collaborative filtering and content-based filtering, to personalize and
optimize recommendations for each user, enhancing user engagement and satisfaction. It
employs various techniques, including collaborative filtering, content-based filtering, and
hybrid approaches, to predict user preferences based on past behaviors and similar user
profiles. It plays a critical role in enhancing discoverability and driving user engagement,
ultimately leading to increased sales, user retention, and overall business growth. Cheating
detection through camera-based systems is an innovative application of computer vision and
machine learning. These systems employ advanced algorithms to monitor and identify
cheating behaviours in various contexts, such as educational exams, online assessments, and
competitive sports.

44 | P a g e
Fig 5.2: Recommendation System Data Flow

5.1.1 DATA COLLECTION AND READABILITY


As Machine learning algorithms rely on large amounts of data to make predictions or
decisions. They learn patterns and relationships within the data to make informed choices.
The models can adapt and improve their performance over time as they are exposed to more
data and feedback. They can adjust their parameters to optimize their predictions. Data
collection for readability analysis involves gathering text samples from various sources, like
websites, books, or documents. Techniques include web scraping, API access, or manual data
entry. To assess readability, metrics like Flesch-Kincaid or Gunning Fog index can be applied
to the collected text for readability assessment. Here is the code snap:

45 | P a g e
Fig 5.3: Exploratory Data Analysis

5.1.2 LIBRARIES USED


Python: For data preprocessing, manipulation, and feature engineering.
Pandas: For data analysis and manipulation.
NumPy: For numerical operations.
Scikit-Learn: For machine learning algorithms and models.
NeatText: For cleaning the data and ready for training
These libraries have been familiarised with its different use cases.

5.1.3 ALGORITHMS USED


1. Cosine similarity: It is a mathematical measure used to gauge the similarity between two
vectors in multi-dimensional spaces. It finds applications in text analysis, recommendation
systems, clustering, and more. It quantifies the similarity between vectors on a scale from -1
(dissimilar) to 1 (identical), making it valuable for tasks such as document retrieval, text
classification, and collaborative filtering in various domains.

2. K-Nearest Neighbors (KNN): It is a classification or regression algorithm that relies on


proximity-based similarity metrics, including cosine similarity. In KNN, an unlabelled data

46 | P a g e
point is assigned a class or value based on the majority of its K nearest neighbors in a feature
space. Cosine similarity in KNN calculates the angle between data point vectors, allowing for
effective similarity assessment, especially in high-dimensional spaces like text analysis or
recommendation systems. It helps identify the most similar neighbors to make predictions or
classifications.

Fig 5.4: Algorithm Implementation

5.1.4 REAL TIME PROCESSING:


In real-time recommendation systems, cosine similarity is employed to swiftly compute the
similarity between user profiles and items, allowing for immediate personalized
recommendations. As users interact with the system, their preferences are compared with
existing data, and cosine similarity identifies the most similar items, ensuring real-time and
relevant suggestions for users based on their behavior and preferences. Real-time course
recommendation systems utilize user interactions, data analysis, and algorithms to instantly
suggest relevant courses based on a learner's preferences, progress, and real-time behavior,
enhancing their educational experience and engagement.

47 | P a g e
Fig 5.5: Recommendation System
Building a course recommendation system involves several key steps and technologies. First,
data must be collected, including user interactions with courses, demographics, and course
attributes. Next, this data is pre-processed to ensure quality and consistency. Machine
learning (ML) models are then trained on this data to predict user preferences and
recommend courses. Collaborative filtering is commonly used, where the system
recommends courses based on similar users' preferences. Content-based filtering
recommends courses based on their attributes and the user's past interactions. Hybrid
approaches combine these methods for more accurate recommendations. Natural Language
Processing (NLP) techniques can also be used to analyze course descriptions and user
feedback for better recommendations. Finally, the system is deployed, and its performance is
continuously monitored and improved using feedback loops. Building a course
recommendation system requires expertise in data processing, machine learning, and software
development.

5.1.5 CHEATING DETECTION ML KIT:


Creating a cheating detection ML Kit involves several steps. First, data collection is essential
to gather examples of cheating behavior. Then, feature engineering is performed to extract
relevant information from this data. Machine learning libraries like TensorFlow or PyTorch
are often used to build and train the model. Once trained, the model can be integrated into an

48 | P a g e
application. In an educational context, for instance, it can analyze students' activities during
online exams, flagging anomalies such as copy-pasting or accessing external resources. This
helps maintain academic integrity, ensuring fair assessment and deterring cheating in online
education, exams, or quizzes. Online Machine Learning (ML) cheating detection kit
providers include Turnitin, Copyscape, Grammarly, and Proctorio. They offer tools for
plagiarism detection, content monitoring, and exam proctoring to maintain academic
integrity. In this project, we have used an automated ML Kit by firebase. Cheating detection
employs various methods to identify academic dishonesty, primarily in online learning
environments. These methods include plagiarism detection software, monitoring tools, and
data analytics. By analysing patterns in student submissions, tracking keystrokes, or using
plagiarism detection algorithms, cheating behaviours such as copying content or sharing
answers can be detected. Cheating detection using ML Kit, a mobile SDK by Google,
involves leveraging machine learning to identify and prevent dishonest behaviours in
applications like online exams or games. The process begins with data collection, where user
interactions that may indicate cheating are gathered. This data is then annotated, marking
instances as cheating or not. Relevant features, such as timestamps and user actions, are
extracted from the data. Choosing an appropriate machine learning model, like logistic
regression or deep learning models, comes next. The annotated dataset is split into training,
validation, and testing sets, with training used to teach the model patterns associated with
cheating. Evaluation metrics, including accuracy and precision, gauge the model's
performance. Integration of the model into the application using ML Kit ensures real-time
processing and feedback when cheating is detected. Continuous monitoring and data
collection help improve the model's effectiveness over time, as cheating tactics evolve.
Ethical considerations and user privacy must be maintained throughout the process, ensuring
transparency and adherence to legal guidelines. Cheating detection is an ongoing challenge,
and updates to the system are essential to staying ahead of dishonest practices. We have used
strategic approach to prepare the detection system, which also now a days is organically
good. Cheating detection systems have evolved significantly in recent years, leveraging
technological advancements to become more sophisticated and effective.

Data Collection: Previously, detecting cheating relied heavily on manual monitoring and
reports. Today, cheating detection systems collect data automatically from various sources,
including user interactions, timestamps, and assessment responses. This automated approach
enables the system to gather a vast amount of data quickly and efficiently.
49 | P a g e
Machine Learning Models: Modern cheating detection systems utilize advanced machine
learning (ML) models. These models are trained on large datasets to detect patterns and
anomalies indicative of cheating behaviors. ML algorithms can analyze complex data and
identify subtle patterns that may indicate cheating, improving the accuracy of detection.

Feature Engineering: Feature engineering plays a crucial role in cheating detection.


Features such as response times, interaction frequencies, and patterns in user behavior are
extracted to provide valuable input to the ML models. This helps in creating a more robust
and accurate cheating detection system.

Real-Time Monitoring: Cheating detection has evolved to provide real-time monitoring


capabilities. This allows educators to detect cheating behaviors as they occur, enabling timely
intervention. Real-time monitoring is crucial for preventing cheating and maintaining the
integrity of assessments.

Integration of ML Models into a Kit: The evolution of cheating detection has led to the
development of cheating detection kits. These kits integrate advanced ML models into a user-
friendly interface, making it easier for educators to monitor and detect cheating behaviors.
This integration simplifies the process of implementing cheating detection in educational
settings.

Continuous Improvement: Cheating detection systems are continuously evolving and


improving. Regular updates and improvements to the ML models ensure that they remain
effective in detecting new and evolving cheating behaviors. Continuous improvement is
essential for staying ahead of cheating tactics and maintaining the integrity of assessments.

Creating a cheating detection kit using Machine Learning (ML) involves several key
components and steps. First, data is collected from various sources, such as user interactions,
timestamps, and assessment responses. This data is then pre-processed to remove noise and
inconsistencies. Next, feature engineering is performed to extract relevant information, such
as response times, patterns in user behaviour, and interaction frequencies. ML models are
trained on this processed data to detect anomalies and patterns indicative of cheating
behaviours. Common ML techniques used include anomaly detection algorithms like
50 | P a g e
Isolation Forest or One-Class SVM, as well as supervised learning models like Random
Forest or Gradient Boosting. The trained models are then integrated into a detection kit along
with a user interface for easy interaction. This kit can be deployed in an educational platform
to monitor and flag suspicious behavior in real-time, helping educators maintain academic
integrity. Regular updates and improvements to the ML models ensure effective cheating
detection.

Fig 5.6: Cheating Detection Sample Screenshots

51 | P a g e
CONCLUSION AND FUTURE SCOPE

In conclusion, the Learning Management System (LMS) is a powerful tool that has
transformed the way we deliver and consume education and training. It has made education
more accessible, efficient, and personalized. LMS platforms have already demonstrated their
effectiveness in various fields, from K-12 education to corporate training, and their future
scope is promising, with the integration of AI, microlearning, gamification, virtual and
augmented reality, social learning, data analytics, and mobile learning. However, as with any
technology, LMS platforms have their limitations and require careful planning, training, and
ongoing support to ensure that they deliver their full potential. As such, it is essential to
weigh the benefits and limitations of LMS and evaluate the specific needs of each educational
or training institution before adopting an LMS platform. Ultimately, the success of LMS
platforms will depend on their ability to engage learners, improve learning outcomes, and
adapt to the changing needs of educators and learners in the future. The future of Learning
Management Systems (LMS) holds exciting possibilities. With advancements in AI and
machine learning, LMS platforms are poised to provide even more personalized and adaptive
learning experiences. Predictive analytics can help identify at-risk students, enabling timely
interventions. Integration of immersive technologies like virtual and augmented reality can
make learning more engaging and interactive. Mobile learning will continue to grow, offering
learners flexibility. Furthermore, LMS will play a crucial role in upskilling and reskilling the
workforce in a rapidly evolving job market. The future of LMS lies in harnessing technology
to enhance accessibility, engagement, and the overall effectiveness of education and training.

52 | P a g e
REFERENCES

1. "The State of Learning Management Systems in Higher Education in 2021" by Phil Hill
and Michael Feldstein. (https://eliterate.us/state-of-lms-2021/)
2. "The Future of Learning Management Systems: A Research Agenda for the Learning
Analytics Community" by Rebecca Ferguson, Adam Cooper, and Doug Clow.
(https://www.sciencedirect.com/science/article/pii/S0360131516302299)
3. "Exploring the Relationship between Students' Use of Learning Management Systems
and their Learning Outcomes" by Isaac Boateng and Ibrahim Abu-Tineh.
(https://www.sciencedirect.com/science/article/pii/S0360131519303245)
4. "Factors Affecting the Adoption and Use of Learning Management Systems in Higher
Education" by Xin Bai, Elizabeth Hovey, and Lisa R. Lattuca.
(https://www.sciencedirect.com/science/article/pii/S0360131516301718)
5. “Google Colab for Machine Learning and Data Interpretation”
(https://colab.research.google.com/drive/1d_EIY1tj1hQzTQUU7VIZ18Kht13eAEYD)
6. “Google Firebase ML Kit Official Documentation” (https://firebase.google.com/docs/ml-
kit)
7. “Android Developer Documentation” (https://developer.android.com/docs)

53 | P a g e

You might also like