LearningPlatform
LearningPlatform
LEARNING PLATFORM
Bachelor of Technology In
Computer Science and Engineering
To
IKG Punjab Technical University, Jalandhar
SUBMITTED BY:
Name: Akshit Saini
Roll no.: 2220846
Semester: 6th
Batch: 2022-26
Certified that Project work entitled Learning Platform is a bonafide work carried out in the 6th
semester by Akshit Saini(2220846) and team members, Aryan Kumar(2220869), Abhishek
Saini(2220836), Amit Kumar Singh(2220851) for Project1(BTCS 603-18) as a part of
Bachelor of Technology in Computer Science & Engineering at CGC- College of
Engineering, Landran from I.K.Gujral Punjab Technical University, Jalandhar.
This is to certify that the above statement made by the candidate is correct to
best of my knowledge.
Sukhdeep Dhindsa
i
ACKNOWLEDGEMENT
We would like to express our sincere gratitude to the Director-Principal, Prof. Anuj Kumar
Gupta(CGC College of Engineering, Landran), for providing this opportunity to carry out the
present work.
The constant guidance and encouragement received from Head, Dr. Sushil Kamboj,
Department of ComputerScience and Engineering, Landran has been of great help in
carrying our present work and helped me in completing this project with success.
We would like to express a deep sense of gratitude to my Project Supervisor Sukhdeep Dhindsa
CSE department for the guidance and support in defining the problem and towards the
completion of our project work. Without her wise counsel and able guidance, it would have been
impossible to complete the project in this manner.
We are also thankful to all the faculty and staff members of Department of Computer Science
and Engineering for their intellectual support throughout the course of this work.
Team Members
Aryan Kumar - 2220869
Amit Kumar Singh – 2220851
Abhishek Saini - 2220836
ii
ABSTRACT
This project implements a full-stack Learning Management System (LMS) using React.js,
Node.js/Express, and MongoDB, featuring JWT authentication with rolebased access control for
users and administrators. The system integrates YouTube videos for live classes through
automated ID parsing, includes an interactive quiz module with automated scoring and
leaderboard tracking, and provides discussion forums with thread/reply functionality. Developed
with Vite for optimized performance, the application employs React Bootstrap for responsive UI
components while ensuring security through bcrypt password hashing and protected routes. The
backend utilizes Mongoose schemas for efficient data modeling of users, quizzes, and courses,
with RESTful APIs handling all clientserver interactions. Key innovations include a points-based
reward system with admin controls, personalized learning paths based on user interests, and
contextaware routing that dynamically adapts to user roles. This modular implementation
demonstrates a scalable solution for modern e-learning needs, successfully bridging content
iii
Table of Contents
Page No.
Certificate ..................................................................................................................................... i
Acknowledgement ....................................................................................................................... ii
Abstract ...................................................................................................................................... iii
Table of Content ......................................................................................................................... iv
Chapter 1
1. Introduction .......................................................................................................................... 1
1.1 Overview of Work
1.2 Feasibility Analysis
1.2.1 Technical Feasibility
1.2.2 Operational Feasibility
1.2.3 Economic Feasibility
1.2.4 Legal and Social Feasibility
Chapter 2
2. Software Requirement Specification .................................................................................... 3
2.1 ER Diagram
2.2 Purpose of the System
2.3 Functional Requirements (Detailed)
2.3.1 User Authentication
2.3.2 Dashboard Access
2.3.3 Course Management (Admin Only)
2.3.4 Course Enrollment
2.3.5 Routing and Navigation
2.3.6 Protected Routes
2.3.7 Frontend-Backend Communication
2.4 Non-Functional Requirement
2.5 System Requirements
2.5.1 Software Requirements
2.5.2 Hardware Requirements
2.6 Assumptions and Dependencies
iv
Chapter 3
3. System Technologies .......................................................................................................... 11
3.1 Introduction
3.2 Software Architecture
3.3 Detailed Technology Breakdown
3.3.1 Frontend Technologies
3.3.2 Backend Technologies
3.3.3 Database Technologies
3.4 Integration Technologies
3.5 Development Tools
3.6 Justification of Technology Choices
Chapter 4
4. System Design .................................................................................................................... 14
4.1 Introduction
4.2 Architectural Design
4.2.1 Client-Server Model
4.3 System Components and Their Design
4.3.1 Frontend Components
4.3.2 Backend Components
4.4 Database Design
4.5 Data Flow Diagram (DFD)
4.6 Sequence Diagram (Quiz Submission)
4.7 UI/UX Design Overview
Chapter 5
5. System Implementation ...................................................................................................... 20
5.1 Introduction
5.2 Technologies Used
5.3 Project Setup
5.4 Key Implementation Features
5.4.1 User Authentication
5.4.2 Course Upload (Admin)
5.4.3 Course Listing and Viewing
5.4.4 Role-based Access
5.4.5 Course Enrollment
5.5 Challenges Faced
5.6 Result
v
Chapter 6
6. Implementation (Modules) ................................................................................................. 23
6.1 Module Overview
6.2 Module-wise Implementation Details
6.2.1 Authentication Module
6.2.2 User Management Module
6.2.3 Content Management Module
6.2.4 Assessment Module
6.3 Critical Implementations
6.3.1 Role-Based Access Control
6.3.2 Live Class Integration
6.3.3 Discussion Forum
6.4 Module Integration
Chapter 7
7. Testing and Evaluation ....................................................................................................... 27
7.1 Introduction
7.2 Testing Strategy
7.3 Unit Testing
7.4 Integration Testing
7.5 User Acceptance Testing (UAT)
7.6 Performance Testing
7.7 Bug Fixes and Improvements
Chapter 8
8. Screenshots ......................................................................................................................... 30
Chapter 9
9. Conclusion and Future Scope ............................................................................................. 36
9.1 Conclusion
9.2 Future Scope
9.3 Final Thoughts
Chapter 10
10. References ...................................................................................................................... 38
vi
Chapter 1 : Introduction
1
1.2.4 Legal and Social Feasibility
There are no legal constraints in building this project as it adheres to standard data handling
practices and avoids collecting sensitive personal information. The platform promotes education
and digital literacy, aligning well with the national goals of inclusive learning and digital India
initiatives. It can be integrated into rural education schemes and NGOs promoting learning for
underprivileged communities.
2
Chapter 2: Software Requirement Specification
2.1 ER Diagram
3
2.2 Purpose of the System
The purpose of this web-based learning platform is to offer an organized and user-friendly
environment where:
• Students can register, browse available courses, and consume educational content at their
convenience.
• Admins can upload, manage, and monitor courses and user activities.
• Educators can deliver content digitally with structured modules and track student
engagement.
It seeks to replace traditional and static learning websites with a more dynamic, modern, and
scalable solution, enhancing learner engagement and learning outcomes.
4
2.3.2 Dashboard Access
Backend:
• GET /api/users/dashboard - Returns:
o Enrolled courses
o Progress tracking
o Recent activity
o Points/achievements
Frontend:
• Dashboard layout with:
o Course progress visualization
o Quick access to ongoing courses
o Personalized recommendations
• Responsive design for all devices
2.3.3 Course Management (Admin Only)
Backend:
• CRUD endpoints:
o POST /api/courses - Create course
o PUT /api/courses/:id - Update course
o DELETE /api/courses/:id - Delete course
o GET /api/courses - List all courses
• Course schema includes:
o Title, description
o Category/tags
o Thumbnail image
o Access level (free/premium)
o Quiz/assignment details
5
Frontend:
• Admin panel with:
o Course creation form
o Rich text editor for content
o Image upload capability
o Course status management
2.3.4 Course Enrollment
Backend:
• POST /api/enroll/:courseId - Enrollment endpoint
• Check for existing enrollment
• Add to user's enrolled courses
• Return success/error response
Frontend:
• Course cards with "Enroll" button
• Enrollment confirmation modal
• Immediate access to course after enrollment
• Visual feedback for enrollment status
2.3.5 Routing and Navigation
Frontend:
• Dynamic routes:
o /course/:id - Course detail page
o /learn/:courseId/:moduleId - Learning interface
o /quiz/:courseId - Quiz component
• Breadcrumb navigation
• Persistent sidebar for course navigation
• 404 handling for invalid routes
6
2.3.6 Protected Routes
Backend:
• Middleware to verify:
o JWT token validity
o User role permissions
o Course access rights
Frontend:
• Higher-Order Components (HOCs) for:
o Authentication checks
o Admin privilege verification
o Course enrollment verification
• Redirect to login when unauthorized
2.3.7 Frontend-Backend Communication
Backend:
• REST API design:
o Standardized response format:
{
"success": boolean,
"data": object,
"message": string,
"error": object
}
• Rate limiting
• CORS configuration
• API documentation (Swagger/Postman)
Frontend:
• Axios instance with:
o Base URL configuration
o Request/response interceptors
o Error handling
7
• Loading states during API calls
• Toast notifications for API responses
Implementation Notes for Your GitHub Repositories:
1. Backend Structure Suggestions:
o Organize routes by feature (auth, courses, users)
o Implement proper middleware chain
o Use mongoose models for all database operations
o Add comprehensive error handling
2. Frontend Structure Suggestions:
o Feature-based component organization
o Context API for global state (user/auth)
o Custom hooks for API calls
o Proper environment variable setup
3. Security Considerations:
o Input validation on both ends
o Sanitize user-generated content
o Implement CSRF protection
o Secure file uploads
4. Performance Optimizations:
o Implement caching for frequent API calls
o Lazy loading for course content
o Optimized image handling
o Code splitting in React
8
• Security:
o JWT-based authentication to protect user sessions.
o Secure handling of user credentials using hashing (bcrypt).
• Maintainability:
o Modular codebase with clearly defined components and routes.
o Easy to update or extend.
• Usability:
o Clean and intuitive UI built using Tailwind CSS.
o Responsive design for mobile and desktop users.
2.5 System Requirements
9
2.6 Assumptions and Dependencies
10
Chapter 3: System Technologies
3.1 Introduction
This chapter details the comprehensive technology stack powering the Learning Management
System. The selection prioritizes:
• Modular architecture for maintainability
• Performance optimization through modern tooling
• Security best practices for user data protection
• Scalability to accommodate growing user base
3.2 Software Architecture
The system follows a 3-tier architecture:
1. Presentation Layer: React-based responsive frontend
2. Application Layer: Express.js REST API middleware
3. Data Layer: MongoDB with Mongoose schema validation
3.3 Detailed Technology Breakdown
3.3.1 Frontend Technologies
Implementation Highlights:
• Role-based component rendering
• JWT storage in localStorage for session persistence
• Mobile-first responsive design
11
3.3.2 Backend Technologies
Key Modules:
app.use(express.json());
app.use('/api', authMiddleware);
3.3.3 Database Technologies
12
3.4 Integration Technologies
Sample Integration:
// YouTube embed in AdminLiveClasses.js
<iframe
src={`https://www.youtube.com/embed/${videoId}`}
allowFullScreen
/>
3.5 Development Tools
• Postman: API testing and documentation
• MongoDB Compass: Database management
• ESLint: Code quality enforcement
• Git: Version control
3.6 Justification of Technology Choices
1. React + Vite: Enabled rapid UI development with optimized builds
2. MongoDB: Flexible schema for evolving learning content models
3. JWT: Stateless authentication suitable for horizontal scaling
4. Bootstrap: Accelerated development of responsive interfaces
13
Chapter 4: System Design
4.1 Introduction
System Design is a crucial phase in software development that translates the requirements
outlined in the Software Requirement Specification (SRS) into a blueprint for implementation.
This chapter presents both high-level and low-level design components of the Custom Learning
Platform, ensuring a modular, scalable, and maintainable architecture.
The project follows a MERN-like architecture (MongoDB, Express.js, React.js, Node.js) with
separation of concerns between the frontend and backend.
• Client (Frontend):
o Built using React.js and Vite for fast performance and modularity.
• Server (Backend):
• Quiz System:
14
• Live Classes:
All components use React Bootstrap for responsive UI with role-based access control.
Authentication:
User Management:
Learning Content:
15
Discussion System:
Data Services:
User Schema:
"name": String,
"email": String,
"password": String,
"role": "user|admin",
"points": Number,
"completedQuizzes": [{
"quiz": ObjectId,
"score": Number,
"attemptedAt": Date
}],
"interests": [String]
Quiz Schema:
"title": String,
"description": String,
"questions": [{
16
"questionText": String,
"options": [String],
"correctAnswer": String
}],
"topicId": ObjectId
"title": String,
"videoId": String,
"description": String,
"thumbnail": String,
"addedBy": ObjectId
Discussion Schemas:
"Thread": {
"title": String,
"content": String,
"author": ObjectId,
"replies": [ObjectId]
},
"Reply": {
"content": String,
"author": ObjectId,
"thread": ObjectId
17
}}
Level 1:
1. Authentication Flow:
User → Login API → JWT Generation → Client Storage
2. Content Delivery:
User → Content Request → API → Aggregated Data Response
3. Admin Operations:
Admin → Management API → Database Modification → Audit Logging
4. Learning Interactions:
User → Quiz API → Score Calculation → Leaderboard Update
1. Submit Answers
2. Validate Attempt
3. Calculate Score
5. Return Results
• Interactive Elements:
18
This revised documentation accurately reflects your implemented system with:
19
Chapter 5: System Implementation
5.1 Introduction
Implementation refers to the process of transforming design into a working system. In the
Custom Learning Platform project, implementation was carried out using a modular and
component-driven approach with modern web technologies including React.js, Node.js,
Express, and MongoDB. This chapter outlines the technologies used, core implementation.
Frontend React JS
Styling Bootstrap 5
Database Mongo DB
Auth JWT
API RESTful
Frontend Setup
Backend Setup
20
5.4 Key Implementation Features
Admins can create and upload new courses from the admin panel. Each course contains a title,
description, category, and video lessons.
Users can browse all available courses and access the ones they’re enrolled in. Each course has
multiple lessons which can be opened individually.
21
5.6 Result
At the end of the implementation phase, the application was fully functional and capable of:
22
Chapter 6: Implementation (Modules)
6.1 Module Overview
The system is implemented through 8 core modules, each handling specific functionality:
1. Authentication Module
5. Assessment Module
6. Discussion Module
7. Administration Module
8. Analytics Module
Components:
Key Features:
process.env.JWT_SECRET,
{ expiresIn: '1h' }
);
23
6.2.2 User Management Module
Components:
Implementation:
completedQuizzes: [{
score: Number
}]
});
});
Components:
• liveClassController.js
• topicRoutes.js
24
Workflow:
// AdminLiveClasses.js
<Card.Img
src={`https://img.youtube.com/vi/${videoId}/hqdefault.jpg`}
/>
Components:
• quizModel.js
• quizController.js
Scoring Logic:
// quizRoutes.js
await User.updateOne(
{ _id: userId },
);
});
// authMiddleware.js
25
6.3.2 Live Class Integration
Implementation Flow:
return url.match(regex)[1];
};
Thread-Reply Architecture:
// threadModel.js
// replyController.js
const reply = new Reply({ content, author: req.user.id, thread: threadId });
26
Chapter 7: Testing and Evaluation
7.1 Introduction
Testing is a crucial phase in the software development life cycle to ensure that the developed
system performs as expected and meets all functional and non-functional requirements. The
Custom Learning Platform underwent various types of testing, including unit testing,
integration testing, user acceptance testing (UAT), and performance testing. This chapter
outlines the testing methodologies adopted and evaluates the system’s effectiveness based on
test results and user feedback.
End-to-End Testing To simulate real user scenarios and test the entire workflow.
User Acceptance
To ensure the system meets the end-user requirements.
Test
27
7.4 Integration Testing
Feedback Summary:
28
7.7 Bug Fixes and Improvements
Bug/Issue Resolution
Course page reload issue Handled state management via React Router
29
Chapter 8 : Screenshots
30
Fig. 8.3 Quizzes Page
31
Fig. 8.5 Profile Page
32
Fig. 8.7 Chatbot Page
33
Fig. 8.9 Admin Quizzes Page
34
Fig. 8.11 Discussion Form Page
35
Chapter 9 : Conclusion and Future Scope
9.1 Conclusion
The Custom Learning Platform was designed and developed as a full-stack application to provide
an engaging and efficient online education experience. The platform allows educators to create
and manage content-rich courses, while enabling learners to access and engage with that content
seamlessly. By implementing modern technologies such as Next.js, Tailwind CSS, Prisma,
PostgreSQL, and Stripe, the platform provides secure authentication, reliable payments,
responsive design, and real-time interaction capabilities.
Throughout the development cycle, various aspects such as user interface design, database
integration, file uploads, course previews, and user management were carefully implemented and
tested. The platform successfully passed multiple layers of testing, including unit tests,
integration tests, and user acceptance tests. The feedback collected from users highlighted the
ease of navigation, effectiveness of features, and overall performance of the application.
This project not only deepened the understanding of modern web technologies and software
architecture but also demonstrated the importance of real-world problem solving, user-centric
design, and iterative development. It served as an excellent example of how decentralized or
custom-built systems can be used to deliver flexible and scalable learning solutions.
36
6. Multilingual Support
• Supporting content in multiple languages to cater to a diverse audience across different
regions.
7. Analytics Dashboard
• Creating a robust analytics dashboard for both learners and instructors to track progress,
performance, and engagement metrics.
8. Blockchain-based Certification
• Exploring decentralized solutions for issuing certificates and verifying learner
achievements using blockchain technology.
37
Chapter 10: References
38