Online Student Mentoring System
Online Student Mentoring System
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
Department of
Computer Science & Engineering
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)
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.
Principal
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
Abstract IX
Chapter 1 Introduction 1
1.1 Motivation 2
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
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
VII
LIST OF ABBREVATIONS
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
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.
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.
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.
[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.
[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.
[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
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.
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:
4. Manual Scheduling:
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:
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.
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.
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.
A built-in scheduler enables mentors and mentees to arrange meetings without conflicts.
It also sends automated reminders through email and in-app notifications.
Data privacy is maintained with JWT-based authentication and email verification . Role-
based access control prevents unauthorized access to sensitive information.
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.
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.
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.
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
3. Mentorship Operations
Mentors and mentees engage in discussions, set goals, and track milestones. The system
facilitates scheduling meetings and tracking progress over time.
The system sends timely reminders for scheduled meetings, new messages, and
mentorship updates to enhance engagement and consistency.
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.
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
16
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.
17
CHAPTER 4
REQUIREMENT ANALYSIS
The system employs JWT-based authentication to ensure user data is secure. Users are
divided into three distinct roles:
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
5. Notification System
1. Security
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.
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.
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.
Database: MongoDB
21
CHAPTER 5
SYSTEM DESIGN
5.1 Architecture
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
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.
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
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:
Mentee's Responsibilities:
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.
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.
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.
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
29
CHAPTER 6
6.1 Modules
6.1.1 User Authentication Module (Login, Registration, Role-based
Access)
Features:
Student Registration/Login
Mentor Registration/Login
Features:
30
Features :
Task assignment by mentors
Students update task completion status
Automatic reminders for pending tasks
31
6.3 Code Implementation
6.3.1 Frontend Code Snippet
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>
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", {});
}
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;
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();
}
42
student.mentoredBy = undefined;
await student.save();
}
}
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 = [];
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();
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);
}
},
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;
}
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");
/** 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,
});
54
},
};
response.success(res, "", { pastEducation });
next();
},
// delete a semester
deleteSemesterInfo: async (req, res, next) => {
try {
const sem = req.body.sem;
if (!students) {
throw new Error();
}
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);
}
},
};
56
Figure 6.4.2 Sign-up Page
57
Figure 6.4.5 Mentor Post Page
58
Figure 6.4.8 Mentor Chat Page
59
Figure 6.4.11 Admin Home 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.
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
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