0% found this document useful (0 votes)
404 views73 pages

Online Student Mentoring System

The document presents a project report on the Online Student Mentoring System (OSMS), aimed at improving mentorship efficiency through a structured, web-based platform. It outlines the challenges of traditional mentorship systems and proposes a solution that includes features like real-time chat, progress tracking, and role-based access for users. The project is developed using modern technologies such as React.js, Node.js, and MongoDB, and aims to enhance student engagement and mentor accountability.

Uploaded by

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

Online Student Mentoring System

The document presents a project report on the Online Student Mentoring System (OSMS), aimed at improving mentorship efficiency through a structured, web-based platform. It outlines the challenges of traditional mentorship systems and proposes a solution that includes features like real-time chat, progress tracking, and role-based access for users. The project is developed using modern technologies such as React.js, Node.js, and MongoDB, and aims to enhance student engagement and mentor accountability.

Uploaded by

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

ONLINE STUDENT MENTORING

SYSTEM

A Project Report
submitted in partial fulfillment of the
requirements for the award of the degree of

Bachelor of Technology
in
Computer Science & Engineering
by

K. Sireesha (21H71A05H6) P. Bhavani Prasad (22H75A0516)


K. Sravya Lakshmi (21H71A05I2) CH. SeshagiriRao (22H75A0520)

Under the Esteemed Guidance of


Mr. M. Anil Kumar
Assistant Professor

Department of
Computer Science & Engineering

DVR & Dr. HS


MIC College of Technology
(Autonomous)

Kanchikacherla, NTR Dist., Andhra Pradesh – 521180

March, 2025

I
DECLARATION

We here by declare that the work contained in this report is original and has been done by
us under the guidance of our supervisor(s). The work has not been submitted to any other
Institute for obtaining any degree or diploma. We have followed the guidelines provided by
the Institute in preparing the report. We have confirmed to the norms and guidelines given
in the Ethical Code of Conduct of the Institute. Whenever ,We have used materials (data,
theoretical analysis, figures, and text) from other sources, We have given due credit to them
by citing in the text of the report and giving their details in the references.

Place: Kanchikacherla
Date: 17th Mar,2025

PROJECT MEMBERS:

K. Sireesha (21H71A05H6)

P. Bhavani Prasad (22H75A0516)

K. Sravya Lakshmi (21H71A05I2)

Ch. SeshagiriRao (22H75A0520)

II
CERTIFICATE

This is to certify that the project report entitled “Online Student Mentoring System”
submitted by K. Sireesha (21H71A05H6), P. Bhavani Prasad (22H75A0516), K. Sravya
Lakshmi (21H71A05I2), Ch. SeshagiriRao (22H75A0520) to the DVR & Dr. HS MIC
College of Technology in partial fulfilment of the requirements for the award of the Degree
Bachelor of Technology in Computer Science & Engineering is a Bonafide record of work
carried out by him/her under my/our guidance and supervision. The contents of this report,
in full or in parts, have not been submitted to any other Institute for the award of any Degree.

Supervisor Head of the Department

Principal

Internal Examiner External Examiner

III
ACKNOWLEDGEMENT

The satisfaction that accompanies the successful completion of any task would be
incomplete without the mention of the people who made it possible and whose constant
guidance and engagement crown all the efforts with success. We thank our college
management and respected Sri D. Panduranga Rao, CEO for providing us with the
necessary infrastructure to carry out the project work.

We express our sincere thanks to our beloved Principal Dr. T. Vamsee Kiran who has been
a great source of information for our work.

We would like to express our sincere thanks to Dr. D. Prasad, Head, Department of CSE
for extending his support to carry on this project work.

We are thankful to our Project Coordinator, Mr. D. Varun Prasad, Associate Professor,
Department of CSE for the internal support given and who helped us in shaping the project
into a successful one.

We would like to thank our project supervisor, Mr. M. Anil Kumar, Assistant Professor,
Department of CSE for the guidance and support, especially for the valuable ideas and
knowledge shared with me throughout the Project.

We take this opportunity to express our thanks to one and all who directly or indirectly
helped us in bringing this effort to present form.

Finally, our special thanks go to our family for their continuous support and help throughout
our academic years and for their continual support and encouragement for the completion
of the project.

IV
CONTENTS

Title Page
I
Declaration II
Certificate III

Acknowledgment IV

Contents V

List of Diagrams VII

List of Abbreviations VIII

Abstract IX

Chapter 1 Introduction 1

1.1 Motivation 2

1.2 Problem Statement 2


1.3 Objective Of The Project 3
1.4 Scope 3
Chapter 2 Literature Survey 4

Chapter 3 System Analysis 11

3.1 Existing System 11

3.2 Disadvantages 11
3.3 Proposed System 12
3.4 Advantages 13
3.5 System Operations 14
3.6 Work Flow Of Proposed System 15
Chapter 4 Requirement Analysis 18

4.1 Functional Requirements 18

4.2 Non-Functional Requirements 19

4.3 Hardware Requirements 21

4.4 Software Requirements 21

V
Chapter 5 System Design 22
5.1 Architecture 22
5.2 Uml Diagrams 24
5.2.1 Use Case Diagram 25
5.2.2 Class Diagram 26
5.2.3 User Authentication Sequence Diagram 27
5.2.4 Academic Progress Tracking Sequence Diagram 28
5.2.5 Activity Diagram 29
Chapter 6 Implementation and Results 30
6.1 Modules 30
6.2 Technology Stack Used 31
6.3 Code Implementation 32
6.4 Results And Output 56
Chapter 7 Conclusion 61
Chapter 8 Future Enhancement 62
Chapter 9 References 63

VI
LIST OF DIAGRAMS

Figure Title Page

3.6.1 Workflow of the Proposed System 16

3.6.2 Student Module 16

3.6.3 Mentor Module 17

3.6.4 Admin Module 17

5.1.1 Architecture of the Proposed System 22

5.2.1 Use Case Diagram 25

5.2.2 Class Diagram 26

5.2.3 User Authentication Sequence Diagram 27


Academic Progress Tracking Sequence
5.2.4 28
Diagram
5.2.5 Activity Diagram 29

VII
LIST OF ABBREVATIONS

OSMS - Online Student Mentoring System

JWT - JSON Web Token

SSL - Secure Sockets Layer

TLS - Transport Layer Security

RBAC - Role-Based Access Control

WCAG - Web Content Accessibility Guidelines

GDPR - General Data Protection Regulation

RESTful - Representational State Transfer

API - Application Programming Interface

AI - Artificial Intelligence

VIII
ABSTRACT

Mentoring plays an important role in the academic, career and personal development
of students. Traditional mentorship systems in schools and colleges are often inefficient,
inaccessible and have poor communications. These problems hinder mentors' ability to
monitor the progress of their mentees and provide timely assistance. In this paper, we
propose an Online Student Mentoring System (OSMS), a web-based system that
facilitates mentor-mentee interactions through a structured, accessible and technology-
driven approach. Real time chat - Progress tracking - Posting mentorships - Scheduling
meetings - Notifications - Academic record management .The system has users
categorized as Admin, Mentor and Mentee, providing personalized access to the system
functionalities. Students can receive timely guidance, mentors can efficiently monitor
mentee progress, and administrators can manage the mentorship system.

OSMS is built with React. js on the frontend and Redux for state management, and
Node. js and Express .Js on the backend. The database is Mongo DB, and REST ful
APIs are integrated for data communication. Socket. io is used for real-time messaging
and notifications, and security features include JWT-based authentication and email
verification.

By combining these features, the platform automates the mentorship process and makes
it more structured, interactive, and user-friendly. By providing a centralized solution to
the existing mentoring challenges, the system enhances student engagement, mentor
accountability, and administration oversight. Future improvements could include AI-
powered mentor recommendations, automated feedback mechanisms, and predictive
analytics to further optimize student support and engagement.

Key words: Student mentorship system Digital mentorship Real time chat Progress
tracking Role-based access React. js Node. js MongoDB AI-powered recommendations
Secure authentication

IX
CHAPTER 1

INTRODUCTION

Mentorship plays a crucial role in a student's academic and professional development,


offering structured guidance, career advice, and support for personal growth. However,
traditional mentorship programs in educational settings often fall short, relying heavily
on face-to-face meetings, emails, and informal communication methods. These methods
can be inconsistent, hard to access, and lack effective progress tracking, making it
challenging for students to get timely advice and for mentors to monitor their mentees'
development. Furthermore, many students find it difficult to connect with the right
mentor, which can lead to decreased motivation, uncertainty about their careers, and
academic struggles. As educational institutions grow and student numbers increase, it
becomes more difficult to maintain personalized, structured, and effective mentorship
programs.

Thanks to technological advancements, digital platforms have the potential to


revolutionize the mentorship experience by facilitating real-time communication,
automated progress tracking, and tailored guidance. Yet, many current mentorship
systems are poorly structured, lack real-time interaction, and do not manage data
efficiently. There is a pressing need for a centralized online mentorship platform that
fosters seamless engagement between mentors and mentees while overcoming the
limitations of traditional methods.

The Online Student Mentoring System (OSMS) aims to deliver a technology-driven,


interactive, and organized mentorship experience for both students and educational
institutions. This system features real-time chat, mentorship posts, meeting scheduling,
academic progress tracking, and automated notifications, ensuring effective
communication and structured relationships between mentors and mentees. Mentors can
monitor student progress, offer feedback, and arrange meetings, while students can
access resources, seek guidance, and keep track of their academic and career objectives.

By utilizing modern technologies like React.js, Node.js, MongoDB, and Socket.io, the
system creates a scalable, secure, and interactive mentoring environment. This project
seeks to improve the overall mentorship experience by breaking down communication
barriers, enhancing mentor accountability, and supporting continuous student
development. The organized, user-friendly, and tech-driven OSMS will transform the

1
mentorship process, making it more efficient, engaging, and advantageous for students,
mentors, and administrators alike.

1.1 Motivation
The motivation behind this project arises from the difficulties students and mentors face
in existing mentoring systems. Many students lack proper guidance, which results in
academic stress, career uncertainty, and inefficient learning. Traditional mentorship
systems are often disorganized, leading to communication gaps and delayed responses.
Furthermore, mentors find it challenging to track multiple students and provide
continuous support due to the absence of a structured digital framework. The
introduction of a real-time, interactive online mentoring system will eliminate these
issues by ensuring timely interactions, automated progress tracking, and structured goal
setting. By leveraging modern technology, this system aims to enhance student
engagement, mentor accountability, and institutional mentorship efficiency.

1.2 Problem Statement


Traditional student mentoring systems in educational institutions face significant
challenges, including inefficient communication, lack of accessibility, and difficulty in
tracking student progress. Many institutions still rely on manual methods such as emails,
physical meetings, and paper-based documentation, making it difficult for students to
receive timely guidance. As a result, students often struggle to find the right mentor,
leading to delayed academic progress, career uncertainty, and lack of motivation.
Similarly, mentors find it challenging to manage multiple mentees, monitor their
progress, and provide structured feedback without a centralized system.Another major
issue is the absence of real-time communication and structured goal tracking. Many
existing mentorship programs lack an interactive platform where mentors, mentees, and
administrators can effectively collaborate. Without proper tracking, students may miss
important mentorship sessions, fail to set clear goals, and struggle with academic or
career-related challenges.The Online Student Mentoring System (OSMS) aims to solve
these problems by providing a centralized, structured, and interactive digital platform
that enables real-time mentor-mentee communication, automated progress tracking, and
personalized mentorship, ensuring effective student support and guidance.

2
1.3 Objectives of the Project
The primary objective of the Online Student Mentoring System (OSMS) is to create a
structured, accessible, and technology-driven mentorship platform that enhances
mentor-mentee communication and progress tracking. The system aims to provide
seamless and real-time interactions between students and mentors, ensuring that
mentees receive continuous guidance and support. One of the main objectives is to
enable automated progress tracking, allowing mentors to monitor student performance,
set goals, and provide timely feedback.

The system will incorporate features such as real-time chat, mentorship posts,
meeting scheduling, notifications, and academic performance monitoring to streamline
the mentorship process. Another key objective is to implement role-based access
control, ensuring that administrators, mentors, and mentees have designated
functionalities for a seamless experience. Additionally, the project aims to enhance
mentor accountability by integrating automated feedback systems, goal-setting features,
and structured progress reports. Future enhancements may include AI-based mentor
recommendations and predictive analytics to further improve student success rates and
engagement levels.

1.4 Scope
The scope of this project includes the design, development, and deployment of an online
student mentoring system that will be useful for educational institutions, coaching
centers, and professional training environments. The platform will support multiple user
roles, including Admin, Mentor, and Mentee, each having access to specific features.
The system will integrate real-time communication, academic progress tracking, and
data security measures to ensure a smooth mentorship experience. In future updates, AI-
powered mentor matching, predictive analytics for student performance, and automated
feedback mechanisms will be introduced to enhance system efficiency. The platform is
designed to be scalable, allowing institutions to implement and expand mentorship
programs effectively.

3
CHAPTER-2
LITERATURE SURVEY

Related Work:

[1] Johnson, M., & Thomas, R. (2020). The effectiveness of online student
mentoring programs in higher education. Journal of Digital Education Research,
15(2), 45-67.

Online student mentoring programs have gained popularity in higher education as


institutions seek effective ways to support student learning and career development.
This study examines how structured online mentoring programs impact students'
academic performance and professional readiness. The research was conducted over two
years, involving 500 students enrolled in digital mentoring initiatives. Findings indicate
that students who participated in these programs demonstrated improved confidence,
academic achievement, and career preparedness. Regular mentorship interactions
contributed to a sense of direction and motivation among students, allowing them to
navigate challenges with greater ease.

Despite these benefits, the study highlights critical challenges affecting the effectiveness
of online mentorship. One of the most significant issues is the lack of consistent mentor-
mentee engagement, as mentors often struggle with availability due to their professional
responsibilities. Moreover, mentees frequently experience difficulties staying
motivated, leading to low participation rates. The virtual nature of these interactions also
presents challenges in building trust and rapport, which are more easily established in
traditional face-to-face mentoring.

To address these limitations, the study suggests incorporating interactive tools such as
live video conferencing, discussion forums, and structured progress tracking. These
features can enhance engagement, create a more personalized mentoring experience,
and bridge the gap between mentors and mentees. By integrating these strategies,
institutions can improve the effectiveness of online mentoring programs and ensure that
students receive the necessary academic and career guidance to thrive in their respective
fields.

[2] Williams, K., & Roberts, J. (2019). Peer mentoring in online learning
environments. International Journal of Digital Learning, 14(3), 78-94.

4
Peer mentoring has become an essential component of online learning, offering students
academic and emotional support while fostering a sense of community in virtual
environments. This study examines the impact of peer mentoring programs on student
learning and engagement. The research, conducted across multiple online institutions,
indicates that students who participate in structured peer mentoring programs exhibit
improved study habits, greater confidence in their coursework, and higher course
completion rates. Through peer interactions, mentees benefit from shared experiences,
academic guidance, and motivation from those who have already navigated similar
challenges in their studies.

Despite its benefits, peer mentoring in online settings presents notable challenges. One
of the most significant issues is maintaining engagement, as both mentors and mentees
often struggle with consistent participation. Mentors frequently lack formal training,
limiting their ability to provide effective academic and emotional support. Additionally,
mentees may hesitate to seek guidance due to uncertainty about their mentor's expertise
or availability. Time zone differences further complicate real-time communication,
especially in international learning environments where students may find it difficult to
schedule meetings or engage in meaningful discussions.

To improve peer mentoring effectiveness, the study suggests implementing structured


mentoring programs that incorporate scheduled check-ins, mentor training workshops,
and digital tools such as automated reminders and progress-tracking systems. These
measures can help foster accountability and consistency, ensuring that both mentors and
mentees remain actively engaged in the mentoring process. By addressing these
challenges, institutions can create more supportive and effective peer mentoring
programs that enhance student learning and success in online education

[3] Brown, S., & Green, T. (2021). Faculty-led online mentoring and student
success. Journal of Educational Technology, 18(1), 23-41.

Faculty-led online mentoring plays a critical role in student success, engagement, and
retention in higher education. This study examines the influence of faculty mentorship
on students’ academic progress and career development. Conducted across multiple
universities, the research highlights that students who receive faculty guidance exhibit
increased motivation, improved academic performance, and better preparedness for
professional careers. Faculty mentors provide personalized support, assisting students

5
with coursework, research opportunities, career planning, and professional networking.
This structured mentorship creates a more guided learning experience, reducing
academic stress and enhancing student confidence. The study underscores that faculty-
led mentoring fosters meaningful relationships, improving students' sense of belonging
and institutional commitment.

However, the research identifies significant challenges that hinder the full potential of
faculty-led mentoring. A major limitation is the time constraints faced by faculty
members. Due to extensive teaching, research, and administrative responsibilities,
faculty often struggle to allocate sufficient time for mentoring students. This limited
availability leads to inconsistent interactions, reducing the program’s effectiveness.
Additionally, students may hesitate to seek mentorship due to intimidation, lack of
confidence, or unawareness of available mentoring opportunities. The study finds that
students who are unaware of structured mentoring programs miss out on valuable
academic and career guidance.

To address these challenges, the study recommends structured scheduling systems that
allocate specific mentoring hours for faculty members, ensuring consistent mentor-
mentee interaction. Furthermore, awareness campaigns and student orientation
programs can help encourage participation in mentoring initiatives. By implementing
these strategies, institutions can enhance faculty-led mentoring, leading to higher
student engagement, academic success, and long-term career readiness.

[4] Anderson, P., & Kumar, R. (2022). The role of artificial intelligence in online
mentoring. Computational Learning Review, 9(2), 34-56.

This study examines the role of Artificial Intelligence (AI) in online mentoring and its
impact on student learning experiences. AI has been increasingly integrated into digital
education platforms to automate mentoring tasks such as progress tracking, feedback
delivery, and personalized learning recommendations. AI-driven chatbots and virtual
assistants provide instant responses to student queries, reducing mentor workload and
ensuring continuous support. These AI tools analyze student performance data to
generate adaptive learning plans that cater to individual needs, making mentoring more
efficient. Additionally, AI facilitates real-time interventions by identifying struggling
students and offering targeted assistance, helping to improve learning outcomes.

6
Despite its advantages, the study highlights key challenges in AI-powered mentoring.
One major limitation is AI’s inability to replicate the emotional intelligence and
interpersonal connection that human mentors provide. While AI can offer structured
guidance, it lacks the ability to understand nuanced student emotions, struggles, and
motivation levels. This often results in a less personalized mentoring experience.
Another concern is data privacy, as AI systems collect and analyze vast amounts of
student information, raising ethical concerns over security and consent. Many
institutions struggle with implementing strong data protection measures while utilizing
AI for academic mentoring.

The study suggests adopting a hybrid mentoring model where AI handles administrative
and routine tasks, allowing human mentors to focus on providing emotional support and
deeper engagement. Institutions should also enforce strict data privacy policies and
ethical AI use to ensure student trust. By balancing AI automation with human
mentorship, online mentoring can become more effective, improving both accessibility
and personal connection.

[5] Mitchell, D., & Evans, C. (2021). Gamification in online mentoring platforms:
Improving student engagement. Digital Learning Innovations, 20(4), 101-120.

This study examines the role of gamification in online mentoring platforms and its
impact on student engagement. Gamification refers to the integration of game-like
elements, such as leaderboards, achievement badges, point-based systems, and progress
tracking, into learning environments. The research finds that these features significantly
enhance student motivation and participation in mentoring programs. By introducing
competitive and reward-based elements, gamification fosters a sense of achievement,
encouraging students to stay engaged with their mentors and peers.

The study highlights that students who participated in gamified mentoring programs
displayed increased levels of commitment, goal-setting behaviors, and improved
interaction with mentors. Furthermore, gamification helps create a more structured and
dynamic learning experience, making online mentoring more appealing and effective.
However, the research also points out potential drawbacks. Some students perceive
gamification as a distraction, shifting their focus from meaningful mentorship
interactions to competition. This competitive environment may create unnecessary

7
pressure and reduce collaboration among peers. Additionally, students who struggle to
earn rewards or achieve high scores may feel discouraged, leading to disengagement.

To maximize the benefits of gamification, the study suggests a balanced approach that
integrates interactive learning activities, mentor guidance, and meaningful discussions
alongside game mechanics. Strategies such as adaptive reward systems, collaboration-
based challenges, and feedback-driven incentives can ensure that gamification enhances
engagement without overshadowing the core mentorship goals.

While gamification proves to be an effective engagement tool, its implementation


requires careful planning to prevent excessive competition and maintain the primary
focus on learning and mentor-mentee relationships.

[6] Richards, H., & Zhao, L. (2020). The impact of virtual reality on student
mentoring. Journal of Emerging Educational Technologies, 17(2), 56-74.

This study examines the role of Virtual Reality (VR) in online student mentoring and
its effectiveness in enhancing engagement, trust-building, and immersive learning
experiences. The findings suggest that VR mentoring provides an interactive and
immersive environment, allowing students to engage with mentors in 3D virtual spaces.
Unlike traditional online mentoring methods that rely on text, emails, or video calls, VR
creates a sense of presence, making interactions more dynamic and engaging. Students
report feeling more connected to their mentors in virtual spaces, which improves
communication, collaboration, and knowledge retention. The ability to simulate real-
world scenarios in VR also helps mentees develop practical skills, enhancing the
learning experience.

One of the key benefits of VR-based mentoring is its potential to overcome geographical
barriers, enabling students from diverse backgrounds to connect with experienced
mentors worldwide. The study highlights that VR fosters a stronger mentor-mentee
relationship compared to traditional online platforms, as the interactive environment
encourages active participation and personalized guidance. However, challenges such
as high costs, technological constraints, and accessibility issues hinder widespread
adoption. VR headsets and software development require significant investment,
making it difficult for institutions with limited resources to implement these systems.
Moreover, technical requirements, including stable internet connectivity and advanced

8
hardware, may prevent students from lower-income backgrounds from participating in
VR mentoring programs.

To address these challenges, the study suggests developing cost-effective VR solutions


and integrating AI-driven virtual mentors to enhance scalability. AI-powered VR
mentors can provide additional guidance and automate certain aspects of mentoring,
making the system more efficient. While VR-based mentoring has great potential to
revolutionize student support and engagement, overcoming financial and accessibility
barriers remains essential for ensuring broader implementation in online education.

[7] Harrison, J., & Patel, M. (2021). Enhancing online mentoring with data
analytics. Education & AI Research, 12(3), 89-105.

This study explores how data analytics enhances online mentoring by tracking student
engagement, progress, and behavioral patterns to create personalized learning
experiences. By leveraging data analytics, mentors can gain deeper insights into student
learning habits, identify areas where students struggle, and adjust their mentoring
strategies accordingly. The study highlights that mentoring programs incorporating
data-driven insights tend to see higher student engagement and better academic
outcomes. Engagement metrics, such as login frequency, time spent on learning tasks,
and response times, enable institutions to provide timely interventions, ensuring that
students receive the necessary academic support.

However, the study also raises ethical concerns regarding data privacy, security, and
tracking accuracy. Students often express apprehensions about being continuously
monitored, fearing that their personal data may be misused or accessed without consent.
Additionally, the reliability of analytics-based insights is contingent on data accuracy,
and errors in data collection or interpretation could lead to incorrect assessments of
student performance. The authors emphasize the need for transparency in data collection
policies, recommending that students be made aware of how their data is used and be
given the option to opt in or out of tracking mechanisms.

To address these concerns, the study suggests integrating AI-driven analytics tools with
strong privacy safeguards to help mentors access critical insights without violating
student confidentiality. Institutions should establish strict data governance policies,
ensuring that analytics complement rather than replace human mentoring. While data
analytics plays a crucial role in personalizing the mentoring experience, ethical

9
considerations must be prioritized to maintain student trust and ensure responsible
implementation in online education. By striking a balance between innovation and
privacy, educational institutions can optimize the effectiveness of online mentoring
while safeguarding student rights.

[8] Gonzalez, L., & Smith, R. (2022). Social media-based mentoring for student
support. Journal of Online Learning Research, 10(1), 67-83.

This study explores the role of social media platforms such as LinkedIn, Twitter, and
Facebook in student mentoring, emphasizing their potential to improve accessibility,
facilitate informal learning, and foster professional networking. Social media-based
mentoring provides students with an opportunity to interact with mentors in a flexible,
engaging manner beyond traditional academic structures. The study highlights that
LinkedIn serves as a valuable platform for students to connect with industry
professionals, gain career insights, and develop networking skills. Twitter enables
knowledge-sharing through expert-led discussions and Q&A sessions, while Facebook
groups create supportive learning communities where students can seek peer advice and
share educational resources.

Despite these benefits, the study identifies significant challenges associated with social
media-based mentoring. One major issue is the potential for distractions, as students
may struggle to stay focused amid unrelated content, advertisements, and frequent
notifications. Additionally, social media lacks a formal mentoring structure, leading to
inconsistent mentor-mentee interactions. Without a structured approach, students may
receive varying levels of support, which can affect the quality and reliability of
guidance. Another key concern is data security and privacy, as mentoring discussions
may be vulnerable to third-party tracking or data breaches, exposing sensitive student
information.To address these challenges, the study suggests establishing dedicated
mentoring groups with structured activities, clear guidelines, and privacy safeguards.
Institutions should encourage students and mentors to use professional networking
platforms while maintaining focused discussions on academic and career growth.
Additionally, implementing privacy-focused settings can help protect student data and
ensure a secure mentoring environment. While social media-based mentoring offers
accessibility and engagement, a formalized approach is necessary to maximize its
effectiveness in supporting student success.

10
CHAPTER 3

SYSTEM ANALYSIS

3.1 Existing System


Traditional student mentorship systems rely heavily on manual processes, such as in-
person meetings, paper records, and inconsistent communication methods like emails
and phone calls. Many institutions use spreadsheets or basic databases to track mentees’
progress, but these methods lack interactivity and real-time oversight. Additionally,
students often struggle to connect with their mentors due to conflicting schedules, which
results in delays in addressing both academic and personal concerns.

Current mentorship systems fail to provide personalized support, structured goal-


setting, or effective tracking of student progress. Without a centralized platform,
communication gaps arise, making it difficult for mentors to assess students' needs in a
timely manner. Moreover, traditional systems do not automate the scheduling of
meetings, sending reminders, or notifying students about updates, leading to
inefficiencies.

Due to these limitations, mentorship programs frequently fall short, leaving students
without sufficient guidance. There is an urgent need for a digital solution that can
improve mentor-mentee interactions, automate processes, and enable real-time
communication and progress tracking.

3.2 Disadvantages of the Existing System


The traditional student mentorship system has several drawbacks that limit its
effectiveness and efficiency.

1. Limited Accessibility:

Students and mentors often have to arrange physical meetings or depend on inconsistent
communication methods, which makes mentorship less accessible and flexible.

2. Poor Communication:

Relying on emails and phone calls can result in delayed responses, and there is no
organized way to keep track of previous conversations.

11
3. Lack of Progress Monitoring:

Without a centralized system to monitor students’ progress, mentors find it challenging


to assess their mentees’ performance over time.

4. Manual Scheduling:

Coordinating meetings requires back-and-forth communication, which increases the


likelihood of scheduling conflicts.

5. No Automated Notifications:

Traditional systems lack automatic reminders for meetings, deadlines, or tasks, resulting
in missed mentorship opportunities.

6. Security Concerns:

Using paper-based or unstructured digital records raises risks of data loss, unauthorized
access, and mismanagement.

7. Scalability Issues:

As institutions expand, managing mentorship for a large student body manually


becomes increasingly difficult and resource-intensive.

3.3 Proposed System

The Online Student Mentoring System (OSMS) aims to tackle the limitations of
traditional mentorship programs by offering a structured, technology-enhanced approach
to student support. This web-based platform facilitates real-time communication, progress
tracking, automated scheduling, and secure data management, all designed to improve the
mentor-mentee experience.

A key feature of OSMS is its real-time communication capability, which enables instant
interaction between mentors and mentees. Unlike conventional mentorship methods that
depend on emails or phone calls, this system incorporates a live chat module powered by
Socket.io, ensuring smooth and immediate communication. This feature reduces response
time delays, allowing mentors to offer timely advice to students whenever necessary.

The system also boasts an effective progress tracking mechanism, enabling mentees to
update their academic achievements while mentors can access comprehensive reports to

12
monitor student performance. This keeps mentors informed about their mentees’
development and challenges, enabling them to provide targeted feedback and necessary
support.

A significant advancement over traditional systems is the role-based access control in


OSMS. Users are divided into three categories: Admin, Mentor, and Mentee.
Administrators manage the entire platform, overseeing users and mentorship programs.
Mentors can access mentee profiles, review progress reports, schedule meetings, and
communicate with students. Mentees, in turn, can track their personal development,
request mentorship, and engage in scheduled sessions.

To boost efficiency, the system features an automated scheduling and notification system.
Users can arrange meetings directly within the platform, eliminating the need for external
tools. The system sends automated reminders via email and in-app notifications, ensuring
that both mentees and mentors stay on top of important sessions and updates.

Security and scalability are also crucial components of OSMS.The platform uses JWT-
based authentication and email verification to secure user accounts and prevent
unauthorized access. It is built with React.js for the frontend, Node.js and Express.js for
the backend, and MongoDB as the database, ensuring high performance and scalability.
This setup allows it to efficiently manage a large number of users, making it an excellent
choice for educational institutions.

By incorporating these features, OSMS transforms student mentorship, making it more


accessible, organized, and effective. The system promotes real-time engagement,
structured guidance, and productive mentor-mentee interactions, ultimately fostering a
user-friendly mentorship environment.

3.4 Advantages of the Proposed System


1. Improved Communication:

Real-time chat using Socket.io allows for instant messaging between mentors and
mentees. This eliminates the need for emails or phone calls, leading to quicker response
times.

13
2. Efficient Progress Tracking

Mentees can update their progress, while mentors can access detailed reports. This ensures
that mentors can effectively monitor the academic performance of their mentees.

3. Automated Meeting Scheduling

A built-in scheduler enables mentors and mentees to arrange meetings without conflicts.
It also sends automated reminders through email and in-app notifications.

4. Secure and Role-Based Access

Data privacy is maintained with JWT-based authentication and email verification . Role-
based access control prevents unauthorized access to sensitive information.

5. Centralized Data Management

Mentorship records, messages, and academic data are securely stored in a MongoDB
database. This minimizes the risk of data loss and allows for easy information retrieval.

6. Scalability and Performance

Developed with React.js for the frontend and Node.js with Express.js for the backend, the
system offers a responsive user experience. MongoDB efficiently manages large datasets,
making the system scalable for institutions of any size.

7. Increased Student Engagement

An interactive user interface and real-time support motivate students to actively engage
in mentorship programs .This enhances mentee satisfaction by providing structured
guidance and encouragement .With these benefits, OSMS revolutionizes the traditional
mentorship model into a more effective, technology-driven system that serves all
stakeholders well.

3.5 System Operations


1. User Registration & Authentication

Users sign up as Admins, Mentors, or Mentees. Secure authentication using JWT and
email verification ensures only authorized users access the system.

14
2. Role-Based Dashboard Access

Upon successful login, users are redirected to their respective dashboards:

 Mentors view mentee profiles, track academic progress, schedule mentorship


sessions, and communicate via messaging.
 Mentees update their academic status, request meetings, receive mentorship
support, and track progress.
 Admins oversee user accounts, monitor mentorship activities, and analyze system
analytics for performance improvements.

3. Mentorship Operations

Mentors and mentees engage in discussions, set goals, and track milestones. The system
facilitates scheduling meetings and tracking progress over time.

4. Automated Notifications & Reminders

The system sends timely reminders for scheduled meetings, new messages, and
mentorship updates to enhance engagement and consistency.

5. Data Storage & Security

All mentorship interactions, user details, and progress reports are securely stored in
Mongo DB. The system ensures data encryption, backup mechanisms, and access control
for security and reliability.

3.6 Workflow of the Proposed System


The proposed Online Student Mentoring System streamlines communication between
students, mentors, and administrators. The system enables students to post doubts and
submit assignments, while mentors provide answers and evaluate submissions. The
administrator manages student and mentor registrations and assigns subjects. The
workflow is designed to ensure efficient mentoring and academic support.

Overall System Flow:

This flowchart represents the high-level interaction between students, mentors, and
administrators within the Online Mentoring System. Students submit assignments and
post doubts, which mentors address. The admin manages registrations and assigns
subjects to mentors, ensuring smooth operation.

15
Fig.3.6.1 Work Flow of Proposed System

Student Module
The student module describes student interactions within the system. Students register,
log in, view assignments, submit answers, post doubts, and review mentor replies. The
workflow ensures that students receive timely support while their activities are recorded
in respective system tables

Fig.3.6.2 Student Module

16
Mentor Module

The mentor module details the functionalities available to mentors, including


registration, login, replying to doubts, viewing student queries, posting assignments,
evaluating assignments, setting grades, and logging out. The mentor interacts with
various system tables to store user data, doubts, and assignment records.

Fig.3.6.3 Mentor Module

Admin Module

This module shows the administrator’s role in managing the system. The admin logs in,
registers subjects, and assigns mentors to subjects. The data is stored in different tables,
including subject registration and semester-wise mentor assignments.

Fig.3.6.4 Admin Module

17
CHAPTER 4
REQUIREMENT ANALYSIS

4.1 Functional Requirements


The Online Student Mentoring System (OSMS) is crafted to support structured
interactions between mentors and mentees, featuring several key functionalities:

1. User Authentication and Role Management

The system employs JWT-based authentication to ensure user data is secure. Users are
divided into three distinct roles:

 Admin: Responsible for managing users and system settings.


 Mentor: Guides mentees, assigns tasks, and offers support.
 Mentee: Receives mentorship from assigned mentors and tracks their progress.

2. Real-Time Chat and Communication

 Real-time messaging is enabled through Socket.io.


 This allows mentors and mentees to communicate instantly via text for
immediate assistance.
 Chat history is preserved to keep a record of previous conversations.
 Features like read receipts and typing indicators enhance the overall user
experience.

3. Progress Tracking and Reporting

 Mentors can keep track of their mentees' progress through submitted reports.
 Mentees are responsible for updating their progress on assigned tasks, ensuring
ongoing monitoring.
 A dashboard displays graphical representations of progress along with mentor
feedback.
 Reports can be exported for further review and performance evaluation.

18
4. Task Assignment and Scheduling

 Mentors can assign specific tasks to mentees, complete with deadlines.


 Task details encompass title, description, due date, and priority level.
 The scheduling feature allows both mentors and mentees to reserve meeting
times for discussions.
 The system sends reminders for approaching deadlines and scheduled meetings.

5. Notification System

 Automated notifications are generated for various events, such as:


o New task assignments.
o Upcoming meetings and deadlines.
o Feedback from mentors.
 Notifications are delivered through in-app alerts and email reminders to ensure
users stay updated.

4.2 Non-Functional Requirements


The Online Student Mentoring System (OSMS) must fulfill several non-functional
requirements to ensure optimal performance, security, and usability.

1. Security

 Utilizes JWT-based authentication to safeguard user credentials and prevent


unauthorized access.
 Employs role-based access control (RBAC) to limit access to sensitive features.
 Encrypts data transmission through HTTPS and SSL/TLS protocols.
 Ensures secure database storage with hashed passwords and regular backups.

2. Performance & Scalability

 The system is capable of supporting multiple concurrent users without any


decline in performance.
 Optimized database queries guarantee quick response times for user interactions.
 Implements caching mechanisms to enhance data retrieval speed.
 Can scale horizontally by adding additional servers to manage increased user
demand.

19
3. Usability & User Experience

 Offers a user-friendly interface with an intuitive dashboard for both mentors and
mentees.
 Responsive design guarantees accessibility on mobile, tablet, and desktop
devices.
 Incorporates clear navigation menus and tooltips to assist users in navigating the
platform.
 Features dark mode and customizable themes for improved user comfort.

4. Availability & Reliability

 Ensures 99.9% uptime through effective server load balancing and failover
strategies.
 Includes auto-recovery capabilities in the event of crashes or server failures.
 Conducts regular data backups to avert data loss.
 Employs monitoring tools to identify and address issues proactively.

5. Maintainability & Extensibility

 The codebase adheres to modular programming principles for straightforward


maintenance and updates.
 Utilizes well-documented APIs to support future enhancements.
 Implements version control (GitHub/GitLab) to efficiently track code changes.
 Facilitates the seamless integration of new features without disrupting existing
functionalities.

6. Compliance & Standards

 Complies with GDPR and data privacy regulations for managing user
information.
 Implements industry-standard security measures to safeguard against data
breaches.
 Adheres to WCAG accessibility guidelines to ensure the platform is usable for
everyone.

20
4.3 Hardware Requirements
Server: Cloud-based server or local machine with at least 8GB RAM and 200GB
storage.

User Devices: Desktop, laptop, or mobile devices with an internet connection.

4.4 Software Requirements


Frontend: React.js with Redux

Backend: Node.js with Express.js

Database: MongoDB

Authentication: JWT-based authentication

Real-Time Communication: Socket.io

Hosting: Cloud server (AWS, Heroku , or similar)

21
CHAPTER 5

SYSTEM DESIGN

5.1 Architecture

Fig.5.1.1 Architecture of Proposed System

The Online Mentoring System is designed to streamline interactions between students,


mentors, and administrators by providing an efficient platform for academic guidance
and mentorship. The Architecture illustrates the fundamental structure and workflow
of the system.

1. Student Interaction

 Students use the system to submit assignments and ask doubts regarding their
subjects.
 These doubts and assignments are sent to the mentor for review and evaluation.
 Students receive feedback, answers, and guidance from mentors through the
system.

22
 The system ensures real-time communication, enabling quick resolution of
queries and effective learning.

2. Mentor Interaction

 Mentors access the system to review students’ queries and assignments.


 They provide detailed responses, explanations, and necessary academic support.
 Mentors ensure that students receive appropriate guidance, helping them
improve their knowledge and problem-solving skills.
 The system allows mentors to track student progress and offer continuous
support.

3. Admin Role

 The admin is responsible for registering students and mentors in the system.
 Admins manage the assignment of mentors to students based on their subjects
or expertise.
 They also handle subject registration and oversee the smooth operation of the
platform.
 The admin ensures that the platform functions properly by monitoring user
activities and maintaining data integrity.

4. Data Flow and System Functionality

 The system acts as a central hub that efficiently connects students, mentors, and
administrators.
 It ensures that assignments, doubts, and responses flow seamlessly between the
users.
 The structured workflow enhances communication, academic progress tracking,
and mentorship efficiency.
 The platform provides a collaborative learning experience, enabling students to
excel academically while receiving timely mentorship.

23
5.2 UML Diagrams

5.2.1 Use Case Diagram


The Use Case Diagram represents the Online Student Mentoring System, showing how
different users interact with various functionalities. It consists of three main actors:

Admin
Mentor
Mentee
Each actor has specific use cases they are involved in:

Admin's Responsibilities:

 Manage Users – Admin can add, remove, and manage both mentors and
mentees.
 Manage Groups – Admin can create and manage mentor-mentee groups.
 View System Logs – Admin can track system activities and user logins.
 Authenticate User (Login/Logout) – Admin must log in to access features.

Mentor's Responsibilities:

 Track Academic Progress – Mentors can monitor the progress of mentees.


 Update Profile – Mentors can edit their personal and academic details.
 Chat & Notifications – Mentors can chat with mentees and receive
notifications.
 Schedule Meetings – Mentors can arrange meetings with mentees.
 Post & Comment – Mentors can post updates and interact with mentees.
 Authenticate User (Login/Logout) – Required for access.

Mentee's Responsibilities:

 Track Academic Progress – Mentees can check their performance reports.


 Update Profile – Mentees can edit their personal details.
 Chat & Notifications – Mentees can communicate with mentors.
 Schedule Meetings – Mentees can request and join meetings.
 Post & Comment – Mentees can interact in discussion forums.
 Authenticate User (Login/Logout) – Required for access.

24
Fig 5.2.1 Use Case Diagram

25
5.2.2 Class Diagram
The class diagram of the Online Student Mentoring System defines its structure, roles,
and interactions. The User class is the parent, with Admin, Mentor, and Mentee as
subclasses. Admin manages users, groups, and system logs. Mentor schedules meetings
and posts updates, while Mentee tracks progress and joins meetings. Meeting links
mentors and mentees, Chat enables communication, and Post allows content sharing.
Authentication handles login, logout, and email verification. SystemLogs records user
activity. This diagram effectively models user roles and system functionalities, ensuring
structured mentorship and efficient communication within the platform.

Fig 5.2.2 Class Diagram

26
5.2.3 Sequence Diagram:
The sequence diagram outlines user authentication, mentor-mentee interaction,
academic progress tracking, and admin management in the Online Student Mentoring
System.

 User Authentication: Mentees, mentors, and admins send login requests to the system,
which validates credentials and returns a success response.

 Mentor-Mentee Interaction: Mentees request meetings, mentors schedule them, and


the system confirms. They can also send and receive chat messages.

 Academic Progress Tracking: Mentees update profiles, the system notifies progress,
and users can view updates.

 Admin Management: Admins manage users, view logs, and monitor system activities.

Fig 5.2.3 User Authentication Sequence Diagram

27
Fig 5.2.4 Academic Progress Tracking Sequence Diagram

28
5.2.5 Activity Diagram-
This activity diagram illustrates the workflow of the Online Student Mentoring System.
The process begins with user login, after which the system determines whether the user
is an Admin, Mentor, or Mentee. Admins can manage users, view system logs, and
handle groups. Mentors can view mentee requests, schedule meetings, post updates, chat
with mentees, and track academic progress. Mentees can update their profile, request
meetings, send chat messages, and track academic progress. Each role has specific
actions, ensuring a structured mentoring process. The diagram provides a clear view of
how different users interact within the system for efficient academic support

Fig 5.2.5 Activity Diagram

29
CHAPTER 6

IMPLEMENTATION AND RESULTS

6.1 Modules
6.1.1 User Authentication Module (Login, Registration, Role-based
Access)

 Provides secure user authentication.


 Supports three roles: Student, Mentor, and Admin.
 Uses JWT-based authentication for secure login sessions.
 Passwords are encrypted using bcrypt hashing.

Features:
Student Registration/Login
Mentor Registration/Login

6.1.2 Student-Mentor Communication Module (Messaging,


Scheduling)

 Enables real-time messaging between students and mentors.


 Provides a mentorship scheduling feature where students can request
meetings with mentors.
 Supports message history for tracking conversations.

Features:

Chat system for direct messaging


Mentorship session scheduling
Real-time notifications for new messages

6.1.3 Task Management Module (Task Creation, Deadline


Management)

 Mentors can assign tasks to students.

 Students can update task progress and mark tasks as completed.

 Tasks include deadlines and priority levels.

30
Features :
Task assignment by mentors
Students update task completion status
Automatic reminders for pending tasks

6.1.4 Notification Module (Reminders for Meetings and Tasks)

 Sends email and SMS notifications for scheduled mentorship sessions.


 Reminds students about upcoming task deadlines.
 Notifications can be real-time push notifications or scheduled reminders.
Features:

Mentorship session reminders


Task deadline notifications
Push notifications for new messages

6.2 Technology Stack Used


6.2.1 Frontend (React, Tailwind CSS)

 Built using React.js for a dynamic and interactive UI.

 Styled using Tailwind CSS for a modern, responsive design.

6.2.2 Backend (Node.js, Express.js)

 Uses Node.js for handling server-side logic.

 Implements Express.js to manage API routes.

 Uses JWT-based authentication for secure login sessions.

6.2.3 Database (MongoDB)

 Stores user profiles, mentorship sessions, tasks, and messages.

 Uses MongoDB as the primary database.

 Implements Mongoose ORM for managing MongoDB models.

31
6.3 Code Implementation
6.3.1 Frontend Code Snippet

Registration Page for Mentor and Mentee

import React, { useState, useEffect, useRef } from "react";


import { useDispatch } from "react-redux";
import { useHistory } from "react-router";
import { adminSignIn } from "../../actions/admin";
import { mentorSignIn, mentorSignUp } from "../../actions/mentor";
import { studentSignIn, studentSignUp } from "../../actions/student";
import ArrowRight from "../../assets/icons/ArrowRight";
import loginBg from "../../assets/images/login.png";
import ReCAPTCHA from "react-google-recaptcha";
import { toast, ToastContainer } from "react-toastify";
import { showToast } from "../toast/toast";
import { Checkbox, FormControlLabel } from "@mui/material";
import { CSSTransition } from "react-transition-group";
import ModalOverlay from "../modal/ModalOverlay";
import ForgotPasswordModal from "./ForgotPasswordModal";
import { verifyRecaptcha } from "../../actions"
const Auth = ({ location }) => {
const [toggleLogin, setToggleLogin] = useState(false);
const [fields, setFields] = useState({
firstName: "",
lastName: "",
middleName: "",
email: "",
password: "",
confirmPassword: "",
enrollmentNo: "",
semester: "",
department: "",
});
const dispatch = useDispatch();

32
const history = useHistory();
useEffect(() => {
if (location.state === undefined) {
history.goBack();
}
}, [location.state, history]);
const handleToggle = () => {
setToggleLogin(!toggleLogin);
resetFields();
};
const handleChange = (e) => {
console.log(e.target.value);
if (e.target.name === "semester" && e.target.value === "") return;
setFields({ ...fields, [e.target.name]: e.target.value.trim() });
};
dispatch(studentSignUp(fields, handleToggle));
} else {
dispatch(studentSignIn(fields, history));
}
}
resetFields();
};
});
<div className="w-full h-screen flex items-center">
<CSSTransition nodeRef={overlayRef} in={showModal} timeout={300}
classNames="overlay" unmountOnExit>
<ModalOverlay nodeRef={overlayRef} />
</CSSTransition>
<CSSTransition nodeRef={modalRef} in={showModal} timeout={300}
classNames="modal" unmountOnExit>
<ForgotPasswordModal nodeRef={modalRef}
setShowModal={setShowModal} setFPEmail={setFPEmail} FPEmail={FPEmail} />
</CSSTransition>
<div className="flex-3 bg-white h-full flex flex-col items-center justify-
center">
<div className="w-full">

33
<h1 style={{ fontSize: "50px" }} className="w-full text-center">
<span className="text-blue-500">{location.state}</span>
{toggleLogin ? "sign-up" : "sign-in"}
</h1>
</div>
<img src={loginBg} alt="" className="w-1/2" />
</div>
<div className="flex-2 bg-gray-600 h-full flex items-center justify-center">
<div className="w-96">
<form className="" onSubmit={handleSubmit}>
{toggleLogin && (
<div className="grid grid-cols-3 gap-2">
<div className="flex flex-col mb-6">
<label htmlFor="firstName" className="mb-2 text-white">
First name
</label>
<input
id="firstName"
name="firstName"
type="text"
value={fields.firstName}
onChange={handleChange}
required
className="rounded-md border-none"
/>
</div>
<div className="flex flex-col mb-6">
<label htmlFor="middleName" className="mb-2 text-white">
Middle name
</label>
<input
id="middleName"
name="middleName"
type="text"
value={fields.middleName}

34
onChange={handleChange}
className="rounded-lg border-none"
/>
</div>
)}
{toggleLogin && location.state === "Mentee" ? (
<div className="grid grid-cols-2 gap-2">
<div className="flex flex-col mb-6">
<label htmlFor="enrollmentNo" className="mb-2 text-white">
Enrollment No.
</label>
<input
id="enrollmentNo"
name="enrollmentNo"
type="text"
value={fields.enrollmentNo.toUpperCase()}
onChange={handleChange}
required
className="rounded-lg border-none"
/>
</div>
<div className="flex flex-col mb-6">
<label htmlFor="semester" className="mb-2 text-white">
Semester
</label>
<select
id="semester"
name="semester"
className="rounded-lg border-none"
value={fields.semester}
onChange={handleChange}
required
>
<option value="">Select semester</option>
<option value="1st semester">1st semester</option>

35
<option value="2nd semester">2nd semester</option>
<option value="3rd semester">3rd semester</option>
<option value="4th semester">4th semester</option>
<option value="5th semester">5th semester</option>
<option value="6th semester">6th semester</option>
<option value="7th semester">7th semester</option>
<option value="8th semester">8th semester</option>
</select>
</div>
</div>
)}
{toggleLogin && (
<div className="flex flex-col mb-6">
<label htmlFor="department" className="mb-2 text-white">
Department
</label>
<select
id="department"
name="department"
className="rounded-lg border-gray-300"
value={fields.department}
onChange={handleChange}
required
selected={fields.department}
>
<option value="">Select department</option>
<option value="Computer Science & Engineering">Computer
Science & Engineering</option>
<option value="Artificial Inteligence">Artificial
Inteligence</option>
<option value="Civil engineering">Civil engineering</option>
<option value="Mechanical engineering ">Mechanical
engineering </option>
<option value="Electronics and Communication
Engineering">Electronics and Communication Engineering</option>
<option value="Information Technology ">Information
Technology</option>

36
</select>
</div>
)}
<div className="flex flex-col mb-6">
<label htmlFor="email" className="mb-2 text-white">
Email address
</label>
<input
id="email"
type="text"
name="email"
value={fields.email.toLowerCase()}
onChange={handleChange}
required
className="rounded-lg border-none"
/>
</div>
<div className="flex flex-col mb-1">
<label htmlFor="password" className="mb-2 text-white">
Password
</label>
<input
id="password"
name="password"
type={showPass}
value={fields.password}
onChange={handleChange}
required
className="rounded-lg border-none"
/>
</div>
)}
<div className="flex items-center justify-between">
<FormControlLabel
className="text-white"

37
onChange={handlePasswordShowToggle}
control={
<Checkbox
sx={{
color: "white",
"&.Mui-checked": {
color: "white",
},
}}
{toggleLogin || (
<button type="button" onClick={() => setShowModal(true)}
className="text-white hover:underline">
Forgot password
</button>
)}
</div>
<
<div className="flex flex-col justify-center items-center">
<h4 className="mt-5 text-white">{toggleLogin ? "Already have an
account?" : "Don't have an account?"}</h4>

<button onClick={handleToggle} className="rounded-md px-2 py-


1 text-white hover:underline">
{toggleLogin ? "Sign in" : "Sign up"}
</button>
</div>
)}
</div>
</div>
<ToastContainer limit={5} draggable={false} pauseOnFocusLoss={false} />
</div>
);
};

export default Auth;

38
6.3.2 Backend Code Snippets

Admin
const mongoose = require("mongoose");
const Admin = require("../models/Admin");
const Mentor = require("../models/Mentor");
const Student = require("../models/Student");
const Meeting = require("../models/Meeting");
const Post = require("../models/Post");
const Log = require("../models/Log");
const dotenv = require("dotenv");
const bcrypt = require("bcryptjs")
const response = require("../utils/responses.utils");
const studentHelpers = require("../helpers/student.helper");
const mentorHelpers = require("../helpers/mentor.helper");
dotenv.config();
module.exports = {
adminLoginHandler: async (req, res, next) => {
try {
const { email, password } = req.body;
if (!email || !password) {
return response.badrequest(res, "Please provide valid email/password", {});
}

const admin = await Admin.findByCredentials(email, password);


const token = await admin.generateAuthToken();
response.success(res, "Login successful", { auth_token: token, role: "ADMIN"
});
req.user = admin;
next();
} catch (err) {
console.log(err);
response.error(res);
}
},
adminDashboardHandler: (req, res, next) => {

39
response.success(res, "", { user: req.user });
next();
},
getAllUsers: async (req, res, next) => {
const students = await studentHelpers.getAllStudents();
const mentors = await mentorHelpers.getAllMentors();
response.success(res, "", { mentors, students });
next();
},
saveGroup: async (req, res, next) => {
try {
const mentorCountToUpdate = {};
const newStudentsList = {};
const mentor = await Mentor.findById(req.body.mentorId);
const students = req.body.studentIds;
const oldStudents = await Student.find({
mentoredBy: mongoose.Types.ObjectId(req.body.mentorId),
}).distinct("_id");
console.log("student", oldStudents);
if (!mentor) {
return response.error(res);
}
for (let i = 0; i < students.length; i++) {
if (!newStudentsList[students[i]]) {
newStudentsList[students[i]] = 1;
}
}
for (let i = 0; i < oldStudents.length; i++) {
if (!newStudentsList[oldStudents[i]]) {
const oldStudent = await Student.findById(oldStudents[i]);
oldStudent.mentoredBy = undefined;
// oldStudent.assigned = "";
await oldStudent.save();
}
for (i = 0; i < students.length; i++) {

40
const student = await Student.findById(students[i]);
if (student.mentoredBy && student.mentoredBy !== req.body.mentorId) {
mentorCountToUpdate[student.mentoredBy]
? (mentorCountToUpdate[student.mentoredBy] += 1)
: (mentorCountToUpdate[student.mentoredBy] = 1);
}
student.mentoredBy = mentor._id;
await student.save();
}
}
}
mentor.studentCount = students.length;
await mentor.save();
const allStudents = await studentHelpers.getAllStudents();
const allMentors = await mentorHelpers.getAllMentors();
response.success(res, "Assigned Successfully", {
mentors: allMentors,
students: allStudents,
});
next();
} catch (err) {
console.log("catch", err);
response.error(res);
}
},
// this handler assign students to a mentor
assignMentees: async (req, res, next) => {
try {
const { mentorId, studentIds } = req.body;

// data not provided


if (!mentorId || !studentIds || studentIds.length < 1) {
return response.badrequest(res);
}
// getting mentor profile

41
const mentor = await Mentor.findById(mentorId);
for await (const studentId of studentIds) {
const student = await Student.findById(studentId);
student.mentoredBy = mentor._id;
await student.save();
}

const studentCount = await Student.countDocuments({ mentoredBy: mentor._id


});
mentor.studentCount = studentCount;
await mentor.save();
response.success(res);
next();
} catch (err) {
console.log(err);
response.error(res);
}
},
// remove mentees from under a mentor
removeMentees: async (req, res, next) => {
try {
const { mentorId, studentIds } = req.body;

// data not provided


if (!mentorId || !studentIds || studentIds.length < 1) {
return response.badrequest(res);
}
// getting mentor profile
const mentor = await Mentor.findById(mentorId);

for await (const studentId of studentIds) {


const student = await Student.findById(studentId);

// checking if mentor is already assigned to a mentor


if (student.mentoredBy) {

42
student.mentoredBy = undefined;
await student.save();
}
}

const studentCount = await Student.countDocuments({ mentoredBy: mentor._id


});
mentor.studentCount = studentCount;
await mentor.save();
response.success(res);
next();
} catch (err) {
console.log(err);
response.error(res);
}
},
// get admin profile
getProfile: async (req, res, next) => {
try {
const admin = req.user;
response.success(res, "", admin);
next();
} catch (err) {
console.log(err);
response.error(res);
}
},
// user banning handler
banUser: async (req, res, next) => {
try {
const { id } = req.body;
let user;
if (!user) {
user = await Mentor.findById(id);
}

43
if (!user) {
user = await Student.findById(id);
}
if (!user) {
return response.notfound(res);
}
if (user.isBanned) {
user.isBanned = false;
} else {
user.isBanned = true;
}
await user.save();
if (user.isBanned) response.success(res, "User has been banned");
else response.success(res, "User has been unbanned");
next();
} catch (err) {
console.log(err);
response.error(res);
}
},
// get all interactions for admin
getAllInteractions: async (req, res, next) => {
try {
const mentors = await Mentor.find();
const result = [];

for await (const mentor of mentors) {


const posts = await Post.find({ group_id: mentor._id }).populate("author");
const meetings = await Meeting.find({ host: mentor._id })
.populate("host")
.populate("participants.user");
result.push({
mentor,
posts,
meetings,

44
});
}
response.success(res, "", { count: result.length, interactions: result });
} catch (err) {
console.log(err);
response.error(res);
}
},
};
Mentor
const Mentor = require("../models/Mentor");
const Post = require("../models/Post");
const bcrypt = require("bcryptjs");
const jwt = require("jsonwebtoken");
const dotenv = require("dotenv");
const Student = require("../models/Student");
const Semester = require("../models/Semester");
const response = require("../utils/responses.utils");
const emailService = require("../services/email.service");
const roles = require("../utils/roles");

// env config
dotenv.config();

module.exports = {
// mentor login handler function
mentorLoginHandler: async (req, res, next) => {
try {
const { email, password } = req.body;

if (!email || !password) {
return res.status(400).send(Response.error("No email/password provided",
{}));
}
const mentor = await Mentor.findByCredentials(email, password);

45
if (!mentor) {
return res.status(404).send(Response.notfound("404 Not found", {}));
}
mentor.emailVerifyToken = token;
await mentor.save();
}
const token = await mentor.generateAuthToken();

response.success(res, "Login Successfull", {


auth_token: token,
role: "MENTOR",
uid: mentor._id,
});
req.user = mentor;
next();
} catch (err) {
console.log(err);
// if password is invalid
if (err.message === "Unable to login") {
return response.unauthorize(res, "Invalid credentials");
}
response.error(res, "Login Unsuccessfull");
}
},
mentorSignupHandler: async (req, res, next) => {
try {
const {
email,
password,
confirmPassword,
firstName,
lastName,
middleName,
department,

46
} = req.body;
if (!email || !password || !confirmPassword || !firstName) {
return res.status(400).send(Response.badrequest("Malformed input", {}));
}
if (password != confirmPassword) {
return res.status(400).send(Response.badrequest("Passwords doesn't match",
{}));
}
const mentor = new Mentor();
mentor.email = email;
mentor.password = await bcrypt.hash(password, 8);
mentor.firstname = firstName;
mentor.middlename = middleName ? middleName : "";
mentor.lastname = lastName ? lastName : "";
mentor.department = department;
mentor.isEmailVerified = true
mentor.emailVerifyToken = "";
await mentor.save();
response.success(res, "Mentor Signup successfull", {});
req.user = mentor;
next();
} catch (err) {
console.log(err);

if (err.code == "11000") {
return response.error(res, "Email already exists", {});
}
response.error(res);
}
},
mentorDashboardHandler: async (req, res, next) => {
try {
response.success(res, "Email already exists", { user: req.user });
next();
} catch (err) {

47
console.log(err);
}
},
fetchAllMentees: async (req, res, next) => {
try {
const students = await Student.find({ mentoredBy: req.user._id });
response.success(res, "", { mentees: students });
next();
} catch (err) {
response.error(res);
}
},

// fetch students semesters


fetchStudentSemesters: async (req, res, next) => {
try {
const _id = req.params.id;
const semesters = await Semester.find({ student_id: _id });
response.success(res, "", { semesters });
next();
} catch (err) {
response.error(res);
}
},
// get mentor profile
getProfile: async (req, res, next) => {
try {
response.success(res, "", { profileData: req.user });
next();
} catch (err) {
response.error(res);
}
},

// create or update profile

48
updateProfile: async (req, res, next) => {
try {
const { firstname, middlename, lastname, phone, address, department,
designation } =
req.body;
const mentor = req.user;
// updating data
mentor.firstname = firstname || mentor.firstname;
mentor.middlename = middlename || "";
mentor.lastname = lastname || mentor.lastname;
mentor.phone = phone || mentor.phone;
mentor.address = address || mentor.address;
mentor.department = department || mentor.department;
mentor.designation = designation || mentor.designation;
await mentor.save();
response.success(res, "Profile updated", { profileData: mentor });
} catch (err) {
console.log(err);
response.error(res);
}
},
};
Mentee
const Student = require("../models/Student");
const Mentor = require("../models/Mentor");
const Post = require("../models/Post");
const bcrypt = require("bcryptjs");
const multer = require("multer");
const cloudinary = require("cloudinary").v2;
const fs = require("fs");
const response = require("../utils/responses.utils");
const Semester = require("../models/Semester");
const roles = require("../utils/roles");
const emailService = require("../services/email.service");
const jwt = require("jsonwebtoken");

49
require("../config/cloudinary");

module.exports = {
// student login handler function
studentLoginHandler: async (req, res, next) => {
try {
const { email, password } = req.body;

if (!email || !password) {
return response.badrequest(res, "No email/password provided", {});
}
const student = await Student.findByCredentials(email, password);

if (!student) {
return response.notfound(res);
}

if (!student.isEmailVerified) {
const token = jwt.sign(
{ _id: student._id.toString(), role: roles.Student },
process.env.JWT_SECRET
);
student.emailVerifyToken = token;
await student.save();
emailService.sendEmailVerificationMail(token, student.email);
return response.error(
res,
"Email not verified. We have sent a link. Please check your email"
);
}
const token = await student.generateAuthToken();
response.success(res, "Login successful", {
auth_token: token,
role: "STUDENT",
uid: student._id,

50
});
req.user = student;
next();
} catch (err) {
console.log(err)
}
response.error(res);
}
};
if (!email || !password || !firstName || !semester || !enrollmentNo) {
return response.badrequest(res, "Malformed input", {});
}
if (password != confirmPassword) {
return response.badrequest(res, "Passwords doesn't match", {});
}
const student = new Student();
student.email = email;
student.password = await bcrypt.hash(password, 8);
student.firstname = firstName;
student.middlename = middleName === "" ? "" : middleName;
student.lastname = lastName;
student.enrollment_no = enrollmentNo;
student.semester = semester;
student.department = department;
student.isEmailVerified = true
student.emailVerifyToken = "";
await student.save();
response.success(res, "Student created successfully", {});
req.user = student;
next();
} catch (err) {
console.log(err);
if (err.code == "11000") {
return response.error(res, "Email already exists", {});
} response.error(res, "", {});

51
}
};
studentDashboardHandler: async (req, res, next) => {
try {
response.success(res, "", { user: req.user });
next();
} catch (err) {
console.log(err);
}
},getProfile: async (req, res, next) => {
try {
if (req.user.mentoredBy) {
const mentor = await Mentor.findById(req.user.mentoredBy);
req.user.mentoredBy = mentor;
}

response.success(res, "", { profileData: req.user });


next();
} catch (err) {
response.error(res);
}
},

editProfile: async (req, res, next) => {


try {
const student = await Student.findById(req.user._id);

if (!student) {
throw new Error("Student not found");
}
student.firstname = req.body.firstname;
student.middlename = req.body.middlename;
student.lastname = req.body.lastname;
student.phone_no = req.body.phone_no;
student.gender = req.body.gender;

52
student.blood_group = req.body.blood_group;
student.home_place = req.body.home_place;
student.address = req.body.address;
student.guardian_name = req.body.guardian_name;
student.guardian_ph_no = req.body.guardian_ph_no;
student.guardian_address = req.body.guardian_address;
student.family_details = req.body.family_details;
student.hobbies = req.body.hobbies;
student.enrollment_no = req.body.enrollment_no;
student.programme = req.body.programme;
student.enrollment_year = req.body.enrollment_year;
student.department = req.body.department;
student.semester = req.body.semester;
student.hostel_name = req.body.hostel_name;
student.hostel_room_no = req.body.hostel_room_no;
student.warden_name = req.body.warden_name;
student.warden_ph_no = req.body.warden_ph_no;
student.asst_warden_name = req.body.asst_warden_name;
student.asst_warden_ph_no = req.body.asst_warden_ph_no;
student.responsible_contact_person_at_residence =
req.body.responsible_contact_person_at_residence;
student.contact_no_of_contact_person =
req.body.contact_no_of_contact_person;
student.responsible_contact_address = req.body.responsible_contact_address;
const newStudentData = await (await student.save())
.populate("mentoredBy")
.execPopulate();
response.success(res, "Profile Updated", { profileData: newStudentData });
next();
} catch (err) {
console.log(err);
response.error(res);
}
},
getSemesterInfo: async (req, res, next) => {

53
try {
const semesters = await Semester.find({ student_id: req.user._id })
.sort({
semester: 1,
})
.populate("student_id");

response.success(res, "", { semesters });


next();
} catch (err) {
response.error(res, "", {});
}
},
addSemesterInfo: async (req, res, next) => {

/** both the add and update semester is handled by this route */
try {
let newSem;
// checking if semester info exists on db
const semester = await Semester.findOne({
semester: req.body.semester,
student_id: req.user._id,
});

getPastEducation: (req, res, next) => {


const pastEducation = {
10: {
board: req.user.class_10_board,
studied: req.user.class_10_school,
marks: req.user.class_10_percentage,
},
12: {
board: req.user.class_12_board,
studied: req.user.class_12_school,
marks: req.user.class_12_percentage,

54
},
};
response.success(res, "", { pastEducation });
next();
},
// delete a semester
deleteSemesterInfo: async (req, res, next) => {
try {
const sem = req.body.sem;

const deleted = await Semester.findOneAndDelete({


student_id: req.user._id,
semester: sem,
});
if (!deleted) {
throw new Error("Some error occured");
}
response.success(res, "Semester deleted", { semester: deleted });
next();
} catch (err) {
console.log(err);
response.error(res);
}
},

// fetch all stduents under the mentor of current student


getAllStudents: async (req, res, next) => {
try {
let students = await Student.find({ mentoredBy: req.user.mentoredBy });

if (!students) {
throw new Error();
}

// filtering out the requested user

55
students = students.filter((student) => {
if (student._id.toString() !== req.user._id.toString()) {
return student;
}
});
const mentor = await Mentor.findById(req.user.mentoredBy);
if (mentor != null) students.push(mentor);
response.success(res, "", { count: students.length, students });
next();
} catch (err) {
console.log(err);
response.error(res);
}
},
};

6.4 Results and Output


Below are images showcasing key aspects of the system's functionality and
effectiveness.

Figure 6.4.1 Home page

56
Figure 6.4.2 Sign-up Page

Figure 6.4.3 Sign-in Page

Figure 6.4.4 Mentor Home Page

57
Figure 6.4.5 Mentor Post Page

Figure 6.4.6 Mentor Meetings Page

Figure 6.4.7 Mentees Page

58
Figure 6.4.8 Mentor Chat Page

Figure 6.4.9 Mentor Profile Page

Figure 6.4.10 Student Home Page

59
Figure 6.4.11 Admin Home Page

Figure 6.4.12 Admin Logs Page

Figure 6.4.13 Notifications Page

60
CHAPTER 7
CONCLUSION

The Online Student Mentoring System is a cutting-edge platform that connects students
with mentors, offering academic support, career guidance, and opportunities for
personal growth. It enables smooth interactions between mentors and mentees through
features like session booking, real-time chat, and tailored mentorship. By utilizing
technology, it tackles common issues found in traditional mentoring, such as
accessibility, scheduling conflicts, and communication hurdles. A major benefit of this
system is its structured approach to mentorship, ensuring that students receive timely
help from seasoned professionals. With a user-friendly interface, students can easily
find mentors who align with their academic interests, career goals, and learning
requirements. Mentors can also monitor student progress, share valuable insights, and
provide ongoing support, making the mentoring experience more impactful.

Moreover, the system alleviates administrative burdens by automating mentor


assignments, scheduling sessions, and tracking performance. This allows educational
institutions to manage mentoring programs more effectively while ensuring students
receive high-quality guidance. The inclusion of real-time chat and notifications boosts
engagement and communication between students and mentors, creating a collaborative
learning atmosphere. While the system has many strengths, there is room for
improvement by adding AI-driven recommendations, predictive analytics, and
enhanced data security. Future enhancements might also include a mobile app,
gamification elements, and compatibility with learning management systems (LMS) to
improve accessibility and user experience.

In summary, the Online Student Mentoring System has the potential to transform
student mentorship by offering a scalable, efficient, and interactive digital platform that
empowers students to reach their academic and career aspirations through personalized
support and guidance.

61
CHAPTER 8

FUTURE ENHANCEMENTS

The Online Student Mentoring System can be significantly improved by incorporating


advanced technologies and user-friendly features to boost its functionality. One major
enhancement is the introduction of AI-powered mentor matching, which would analyze
students' academic performance, interests, and career aspirations to suggest the most
appropriate mentors. Additionally, AI-driven chatbots could offer immediate assistance
by addressing common questions and directing students to relevant resources.

Another important improvement would be the addition of advanced data analytics to


monitor student progress, identify learning trends, and evaluate the effectiveness of
mentorship. A data-driven dashboard could enable both students and mentors to track
growth and make informed decisions. Moreover, developing a mobile application would
enhance accessibility, allowing users to connect with mentors, schedule sessions, and
receive notifications conveniently on their smartphones.

To increase student engagement, gamification elements like badges, reward points,


and leaderboards could be introduced. These features would motivate students to
actively participate in mentorship activities and maintain their enthusiasm. Furthermore,
integrating with Learning Management Systems (LMS) would streamline the learning
experience by enabling students to access study materials, assignments, and mentorship
sessions all in one place.

Another vital enhancement is the creation of an automated feedback system, where


mentors and mentees can leave reviews after each session. This would help assess the
quality of mentorship and identify areas for improvement. Finally, implementing
stronger security and privacy measures, such as secure authentication, encrypted data
storage, and GDPR compliance, will ensure that user data remains protected and
confidential. By integrating these enhancements, the Online Student Mentoring System
can transform into a more intelligent, efficient, and engaging platform, offering students
a valuable mentorship experience.

62
CHAPTER 9

REFERENCES

[1] Johnson, M., & Thomas, R. (2020). The effectiveness of online student mentoring
programs in higher education. Journal of Digital Education Research, 15(2), 45-67.

[2] Williams, K., & Roberts, J. (2019). Peer mentoring in online learning environments.
International Journal of Digital Learning, 14(3), 78-94.

[3] Brown, S., & Green, T. (2021). Faculty-led online mentoring and student success.
Journal of Educational Technology, 18(1), 23-41.

[4] Anderson, P., & Kumar, R. (2022). The role of artificial intelligence in online
mentoring. Computational Learning Review, 9(2), 34-56.

[5] Mitchell, D., & Evans, C. (2021). Gamification in online mentoring platforms:
Improving student engagement. Digital Learning Innovations, 20(4), 101-120.

[6] Richards, H., & Zhao, L. (2020). The impact of virtual reality on student mentoring.
Journal of Emerging Educational Technologies, 17(2), 56-74.

[7] Harrison, J., & Patel, M. (2021). Enhancing online mentoring with data analytics.
Education & AI Research, 12(3), 89-105.

[8] Gonzalez, L., & Smith, R. (2022). Social media-based mentoring for student support.
Journal of Online Learning Research, 10(1), 67-83.

63
64

You might also like