Project -1 Report File[1]
Project -1 Report File[1]
Smart Learning is a dynamic e-learning platform designed to streamline the learning process for
students and instructors. The platform offers essential features such as course browsing, course
management, user authentication, and payment integration through Razorpay. The front-end is
built with ReactJS and styled using Tailwind CSS, providing a clean, responsive, and
user-friendly interface.
The back-end leverages Node.js, Express.js, and MongoDB, ensuring smooth functionality and
secure data handling. The platform supports essential administrative tasks and instructor tools for
course creation and management.
A key feature of the platform is its course recommendation system, which uses an AI-driven
algorithm to suggest relevant courses to students based on specific criteria such as course
content, subject areas, and course popularity. This feature aims to help students discover new
courses that align with their academic goals, without relying on their previous user behavior or
preferences.
Smart Learning provides an engaging and accessible platform for students, instructors, and
administrators, enhancing the educational experience through efficient course management and
innovative features.
iv
LIST OF FIGURES
v
LIST OF TABLES
vi
Table of Content
Title Page i
Candidate’s Declaration ii
Acknowledgement iii
Abstract iv
List of Figures v
List of Tables vi
1. Introduction 1
1.1. Problem Definition 1
1.2. Project Overview 2
1.3. Hardware Specification 3
1.4. Software Specification 4
2. Literature Survey 6
2.1. Existing System 6
2.2. Proposed System 7
2.3. Feasibility Study 8
4. Results/Outputs 30
7. References 37
8. Appendices 39
vii
Chapter-01
INTRODUCTION
The educational sector is facing several significant challenges when it comes to meeting
the diverse needs of modern learners. These challenges include accessibility to quality education,
lack of personalized learning experiences, and inadequate engagement in traditional teaching
methods.
Key issues in the educational sector that Smart Learning aims to address include:
Smart Learning aims to bridge these gaps by offering a scalable and flexible solution for both
students and instructors to enhance the learning experience.
Page 1 of 50
1.2. Project Overview
(a). Interactive Learning: Provides multimedia content such as videos, articles, and
quizzes, allowing students to track their progress and get personalized recommendations.
(b). User Authentication: Secure signup, login, and OTP-based verification system.
(c). Course Management: Instructors can create, update, and manage courses; students
can enroll, take courses, and leave reviews.
(e). Payment Gateway Integration: Integration with Razorpay for course purchases and
enrollments.
Page 2 of 50
1.3. Hardware Specification
Table 1.3.1. Hardware Specification
Page 3 of 50
1.4. Software Specification
(a).React.js: JavaScript library for building responsive user interfaces and dynamic
single-page applications (SPA) [2]
(b). Tailwind CSS: A utility-first CSS framework for creating modern, responsive
UIs.[7]
(c). Redux: State management library for managing global application state, ensuring
smooth data flow across components. [3]
(d). React Router: Used for managing navigation between different pages and
components. [3]
(a). Node.js: JavaScript runtime that allows executing JavaScript code outside of the
browser, enabling the backend for server-side functionalities.[3]
(b). Express.js: Web framework for building RESTful APIs, handling routing and
middleware efficiently.[4]
(c). MongoDB: NoSQL database used for flexible and scalable data storage. MongoDB
Atlas manages cloud-based storage. [3]
(d). JWT (JSON Web Tokens): Secure authentication method to manage user sessions
and protect sensitive data.[8]
(e). Bcrypt: A library used for hashing and securing user passwords during signup and
login processes.[8]
(a). Python: Used for building the course recommendation algorithm [5].
Page 4 of 50
(b). Scikit-learn: Provides machine learning tools for training models and computing
similarity between courses [5].
(c). XGBoost: Used for more complex machine learning models, especially for
personalized recommendations [6].
1.4.4. APIs:
(a). REST API: Facilitates communication between the frontend and backend for data
exchange [4].
(b). Payment API: Integrated with Razorpay for managing payments related to course
enrollments [9].
(a). VS Code: Source code editor for both frontend and backend development [3].
(b). Postman: API testing tool used to ensure proper communication between frontend
and backend [4].
(c).Git: Version control system used for tracking code changes and collaboration [3].
Chapter-02
LITERATURE SURVEY
Page 5 of 50
2.1 Existing System
(a). Limited Personalization: Most platforms offer the same content for all students,
without adjusting to their learning needs or styles.
(b). Instructor-Centered Design: These systems focus more on instructors and less on
student needs, offering few interactive features for students.
(c). Basic Course Management: Instructors have simple tools for course creation and
student management, but these don’t offer advanced features like tracking progress or
adapting to student needs.
(d). No Course Recommendations: Students have to manually search for courses
because most platforms don’t offer recommendations based on their interests or past
courses.
Page 6 of 50
Smart Learning enhances the existing EdTech systems by introducing advanced features that
improve both student engagement and instructor efficiency. The key features of the proposed
system include:
2.2.1. Advanced Course Management: Instructors can create, update, and manage
courses easily. They can also track student progress, assess performance, and adjust
content accordingly.
2.2.4. Secure Payment Integration: To support paid courses, the platform integrates
payment gateways like Razorpay for secure transactions, enabling smooth enrollment and
course purchases.
Page 7 of 50
The feasibility study evaluates the practicality of implementing the Smart Learning system by
analyzing its technical, economic, and operational feasibility.
The system is built using MERN stack (MongoDB, Express.js, React, Node.js), ensuring
a scalable, flexible, and high-performance platform. The key technical aspects include:
(b). Secure Authentication: JWT (JSON Web Token) and Bcrypt ensure user data
security.
(c). Cloud Storage: Platforms like Cloudinary handle multimedia content efficiently.
(d). Payment Integration: Secure transactions using Razorpay for premium courses.
The system is cost-effective due to its reliance on open-source technologies. Key factors include:
(a). Low Development Cost: The MERN stack and AI libraries are open-source,
reducing software costs.
The system is designed for ease of use by students, instructors, and administrators. Key
benefits include:
Page 8 of 50
(b). Interactive Learning: Features like discussion forums and live Q&A improve
engagement.
(c). Instructor Control: Educators can easily create, manage, and update courses.
Page 9 of 50
CHAPTER-03
The Smart Learning platform is designed for efficient, scalable, and interactive
learning. The requirements are classified as follows -
(b). Course Management: Instructors can create, update, and manage courses;
students can enroll, track progress, and review courses [3].
(d). Admin Dashboard: Admins can monitor users, courses, and platform
activity [5].
(e). Payment Integration: Secure payments via Razorpay, with order history
and invoices [7].
(a). Scalability: Cloud hosting via Vercel, Render, and MongoDB Atlas for
smooth performance [5].
Page 10 of 50
(b). Security: Bcrypt hashing for passwords and data encryption for user
privacy [8].
Page 11 of 50
3.2 ER Diagram :
The Smart Learning platform follows a structured workflow, represented through
flowcharts, Data Flow Diagrams (DFDs), and Entity-Relationship Diagrams (ERDs).
Page 12 of 50
3.3. Design and Test Steps / Criteria
The Smart Learning platform follows a structured design and testing approach to ensure
functionality, security, and user experience.
Page 13 of 50
(c) . Database Layer
○ MongoDB Atlas for storing user data, courses, enrollments, and transactions [5].
○ Optimized indexing for fast data retrieval.
○ Secure authentication using JWT and bcrypt for password encryption [8].
○ Course Recommendation Data Storage to track user activity and improve
suggestions.
Page 14 of 50
(d). Recommendation System Testing
● Objective: Ensure that recommended courses match user interests and are updated
dynamically based on user activity [6].
● Metrics: Accuracy, relevance score, and user feedback ratings.
● Tools: Scikit-learn, Pandas.
Page 15 of 50
3.4 Algorithms
The Smart Learning platform implements several algorithms to enhance user experience,
manage courses efficiently, and provide intelligent course recommendations. Below are the key
algorithms used:
Algorithm:
(b). System hashes the password using Bcrypt before storing it in the database.
(c). During login, system verifies the password against the stored hash.
Helps users find relevant courses based on keywords, categories, and popularity.
Algorithm:
Page 16 of 50
(d). Courses are ranked based on title match, description relevance, user ratings,
and enrollments.
Algorithm:
Algorithm:
(a). When a student watches a video, reads content, or completes a quiz, progress
data is logged.
Page 17 of 50
3.4.5. Course Recommendation Algorithm (Using Coursera Data from
Kaggle)
This algorithm suggests relevant courses based on user interactions, course similarity,
and past enrollments.
(b). Preprocess Data: Clean course descriptions, remove stopwords, and convert
text to lowercase.
Page 18 of 50
3.5 Testing Process (Test Cases to be included)
Page 19 of 50
(c). Test Cases
Table 3.5.1.1 User Authentication Test Cases
Page 20 of 50
● Description: Test the course enrollment functionality for students.
● Expected Result: The student should be successfully enrolled in the course, and
the course should appear in their dashboard.
● Steps:
1. Login as a student.
2. Select a course and click on "Enroll".
3. Verify that the course is added to the student’s course list.
● Description: Test the system’s ability to recommend relevant courses when a user
searches for a course.
● Expected Result: When the user searches for a course, relevant course
suggestions should be displayed based on the search query and the user’s
interests.
● Steps:
Page 21 of 50
1. Login as a student or user.
2. Go to the search bar and type a course name (e.g., "Data Science").
3. Verify that the system displays a list of courses relevant to the search
query.
4. Verify that the recommendations include courses related to the search
term.
5. Test with multiple search terms to ensure the recommendations are
consistently relevant.
Page 22 of 50
● Steps:
1. Login as a student or user.
2. Browse through different courses without enrolling in them.
3. After browsing multiple courses, go to the course recommendation section
or dashboard.
4. Verify that the system recommends courses related to those the user
interacted with.
5. Ensure the recommendations are relevant based on the courses the user
has shown interest in.
Page 23 of 50
● Description: Test the course purchasing functionality through the payment
gateway (e.g., Razorpay).
● Expected Result: The user should be able to successfully purchase the course,
and the payment should be processed correctly.
● Steps:
1. Login as a student.
2. Select a course and proceed to checkout.
3. Enter payment details and complete the purchase.
4. Verify that the course is marked as purchased, and the payment is
processed.
Page 24 of 50
3.5.5 Security Testing
● Description: Test the platform’s ability to prevent SQL injection attacks during
user login.
● Expected Result: The system should prevent unauthorized access and not allow
any SQL injection to compromise the database.
● Steps:
1. Navigate to the login page of the platform.
2. In the username and password fields, enter common SQL injection
payload
3. Attempt to submit the login form.
4. Verify that the system blocks the SQL injection and prevents login.
5. Ensure that the system returns an error message or a prompt asking the
user to enter valid credentials, without exposing any backend data or
errors.
Page 25 of 50
(c ). Test Cases :
The Course Recommendation System is designed to recommend the best courses based
on a user’s search query. This system uses Coursera course data from Kaggle and searches for
relevant courses based on user input. Below are the test cases for ensuring the system functions
as expected:
Page 26 of 50
(b). Course Search with Multiple Keywords
● Description: Test the system’s ability to handle search queries with multiple
keywords (e.g., "Data Science for Beginners").
● Expected Result: The system should correctly identify and recommend the most
relevant courses based on the combined keywords.
● Steps:
1. Enter a multi-keyword search, such as "Data Science for Beginners".
2. Verify that the system returns a list of relevant courses based on the
keywords provided.
3. Ensure that each course is properly labeled with course details, including
difficulty level, rating, and description.
● Description: Test the system's ability to handle an empty or vague search query
(e.g., user types just "Data").
● Expected Result: The system should provide recommendations based on the
broad search term and show the most popular or top-rated courses related to the
keyword.
● Steps:
1. Enter a broad search term, such as "Data".
2. Verify that the system returns a list of courses that are closely related to
the keyword.
3. Ensure that these recommendations are ranked by course rating or
relevance.
● Description: Test the system’s ability to sort courses based on their ratings,
ensuring the highest-rated courses are displayed at the top.
Page 27 of 50
● Expected Result: The recommended courses should be sorted by rating,
displaying the highest-rated courses first.
● Steps:
1. Enter a search term, such as "Machine Learning".
2. Verify that the recommended courses are listed in order of their ratings.
3. Ensure that courses with higher ratings (e.g., 4.8) appear before
lower-rated courses.
● Description: Test that the system displays essential course information in the
recommendation list, such as the course name, university, difficulty level, rating,
and URL.
● Expected Result: Each recommended course should display its name, university,
difficulty level, rating, and a link to the course URL.
● Steps:
1. Perform a search query (e.g., "Web Development").
2. Ensure that the displayed information is accurate and matches the course
data from the Kaggle dataset
CRT-01 User searches for a course The system displays the Pass
best matching courses for
the search term.
Page 28 of 50
CRT-03 User performs a broad or The system should provide Pass
unspecified search (e.g., top-rated or relevant
"Data"). courses, even with vague
search terms.
CRT-04 User searches for a course The system sorts the Pass
(e.g., "Machine Learning") recommended courses by
and verifies the course rating. rating in descending order.
Page 29 of 50
CHAPTER-04
RESULTS/OUTPUTS
4.1.1. Outcome: The system suggests relevant courses based on the keyword or topic
entered by the user in the search bar. It uses Coursera data to recommend the most
suitable courses based on course titles and descriptions [9].
4.1.2. Results:
(a). Course Suggestions: When a student searches for a specific course or topic,
the system uses the course data (e.g., course name, description, and university) to
suggest related courses [2].
(b). Improved Course Discovery: Students can easily discover new courses
relevant to their interests by simply typing a keyword or course name into the
search bar [9].
4.1.3. Example:
(a). A student searches for "Python Programming", and the system suggests:
Page 30 of 50
4.2. Course Information and Details
4.2.1 Outcome: The platform provides students with detailed information about the
courses, including course names, ratings, universities, skills learned, and descriptions
[4].
4.2.2. Results:
(a). Enhanced Decision Making: Students can view important information about
each course before enrolling, allowing them to make informed decisions [8].
4.2.3. Example:
4.3.1. Outcome: Students can enroll in their desired courses directly through the
platform, making the learning process seamless [2].
4.3.2. Results:
(a). Easy Enrollment: Upon choosing a course, students can click on the course
link, which redirects them to the course platform (e.g., Coursera) to enroll [7].
4.3.3. Example:
(a). After exploring a recommended course, a student clicks "Enroll Now", which
takes them to the course enrollment page on Coursera [9].
Page 31 of 50
4.4. Admin Dashboard and Analytics
4.4.1. Outcome: Admins can access detailed analytics about course views, enrollments,
and course ratings [3].
4.4.2. Results:
(a). Real-time Monitoring: Admins can track user engagement, the number of
enrollments, and the most popular courses. This helps in identifying areas for
improvement and managing the platform efficiently [6].
4.4.3. Example:
(a). Admins can see reports showing that the course “Introduction to Data
Science” has had a 90% enrollment rate and the highest ratings among all the
available courses [6].
4.5.1. Outcome: The system is scalable to handle a growing number of students and
courses. It is hosted on cloud platforms to ensure reliability and minimize downtime [5].
4.5.2. Results:
(a). Seamless Scaling: As the platform grows, additional courses and users can be
added without affecting performance [7].
(b). High Availability: The platform remains responsive even under heavy
traffic, thanks to cloud hosting and load balancing [8].
4.5.3. Example:
(a).The platform remains available 99.9% of the time, ensuring that students can
always search and enroll in courses without downtime [9].
Page 32 of 50
CHAPTER–05
5.1. Results:
5.2. Discussion/Analysis:
Page 33 of 50
5.2.2. Instructor Tools:
The course management system is intuitive, but adding features like automatic
grading or AI-based feedback could make it even more powerful [3].
5.2.5. User Experience:
The platform’s UI/UX is intuitive and mobile-friendly, but user testing across different
devices and demographics could uncover areas for further improvement [9].
Page 34 of 50
CHAPTER-06
CONCLUSIONS / RECOMMENDATIONS
6.1. Conclusions:
6.1.2. Course Management and Interaction: Instructors have easy-to-use tools for
creating, managing, and modifying their courses [3]. Students can interact with the
content and other learners through comments and discussions, promoting a dynamic
learning environment. The integration of multimedia content such as videos, quizzes, and
articles makes the learning process more engaging and effective [4].
6.1.3. Scalability and Flexibility: With the system built on the MERN stack (MongoDB,
Express.js, React.js, Node.js), Smart Learning is designed to be highly scalable, ensuring
that the platform can handle increased users and growing content libraries seamlessly [5].
Cloud services such as Vercel and MongoDB Atlas support the infrastructure, providing
flexibility for future expansion.
Page 35 of 50
6.1.4. Security and Reliability: The platform incorporates JWT for secure user
authentication and Bcrypt for secure password storage [8]. These security measures
ensure that user data, including personal information and payment details, is protected.
Additionally, the platform is designed for high availability, with robust error handling
mechanisms in place.
6.2. Recommendations:
6.2.2. Mobile App Development: Expanding the Smart Learning platform to include a
mobile application would significantly improve accessibility, allowing students and
instructors to interact with the platform from anywhere and at any time. Mobile learning
is especially beneficial for students who prefer learning on-the-go or have limited access
to desktop devices [7].
6.2.4. More Payment Options: While the platform currently supports payment through
Razorpay, incorporating additional payment gateways (e.g., PayPal, Stripe, etc.) could
broaden the platform's reach, catering to users from different regions who may prefer
different methods of payments.
Page 36 of 50
REFERENCES
[6] T. Chen and C. Guestrin, "XGBoost: A Scalable Tree Boosting System," in Proc. 22nd ACM
SIGKDD International Conference on Knowledge Discovery and Data Mining, 2016, pp.
456-479. [Online].
[7] Tailwind CSS, "Tailwind CSS Documentation," Tailwind CSS, 2021. [Online].
Page 37 of 50
[9] Coursera, "About Coursera," Coursera, 2021. [Online]. Available: https://www.coursera.org/.
[Accessed: 30-Jan-2025].
Page 38 of 50
CHAPTER-08
APPENDICES
The dataset used for the course recommendation system is sourced from Kaggle and
includes information on various Coursera courses. Below is a sample of the data used for
recommendations:
Page 39 of 50
8.2. Appendix B: Course Recommendation Algorithm (Simplified)
Code :
import os
import pickle
import streamlit as st
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
import requests
courses_list = pickle.load(open('courses.pkl','rb'))
similarity = pickle.load(open('similarity.pkl','rb'))
def recommend(course):
index = courses_list[courses_list['course_name'] == course].index[0]
distances = sorted(list(enumerate(similarity[index])), reverse=True, key=lambda x:
x[1])
recommended_course_names = []
for i in distances[1:7]:
course_name = courses_list.iloc[i[0]].course_name
recommended_course_names.append(course_name)
return recommended_course_names
Page 40 of 50
course_list = courses_list['course_name'].values
selected_course = st.selectbox(
"Type or select a course you like :",
courses_list
)
Page 41 of 50
8.3.Appendix C: Screenshots of the Smart Learning Platform
Page 42 of 50
8.3.2. SignUp Page :
Page 43 of 50
8.3.3. Login Page
Page 44 of 50
8.3.4. Dashboard Page :
Page 45 of 50
8.3.5. Enrolled Courses Page :
Page 46 of 50
Figure 8.3.6.1 Course Content Page
8.3.7. Change Password Page
Page 47 of 50
8.3.9. Contact Us Page :
Page 48 of 50
8.3.10. Course Recommendation Page :
Page 49 of 50
Page 50 of 50