Online Course Management Platform

Track tasks and technologies for platform development

Notes

Task Description
Lazy Loading and Performance Improvements

By implementing lazy loading for resources and optimizing critical services, the page load time was reduced by 3 seconds. This change allows for faster initial page rendering and better resource management, leading to an overall improvement in user experience.

Redis and Caching System

Redis caching has been implemented across several services to improve performance and reduce database load. Popular queries, such as fetching all courses, filtering by name or instructor, and course recommendations, are now cached, resulting in faster responses for users.

Favorite Section

A purchase system has been implemented where users can buy courses. Payment processing is handled through Stripe, ensuring secure and seamless transactions. Once purchased, the course is unlocked, and the user gains full access to its content.

Gamification

A gamification system has been integrated, rewarding users with badges and points for reaching specific milestones.

Course Purchase Feature

Users can securely purchase courses using Stripe. Purchased courses are unlocked for full access.

Tasks for Online Course Management Platform

Task Description
Similar Course Recommendation System

A recommendation system has been implemented using TF-IDF (Term Frequency - Inverse Document Frequency) and Cosine Similarity. The system identifies and ranks the top 5 most similar courses based on their descriptions. This feature provides students with personalized suggestions, enhancing their learning experience.

User Registration and Authentication

Users can sign up with email, password, and name. Passwords will be encrypted securely.

User Role Management

Supports multiple roles: Instructor, Student, Admin with different platform access.

Login and JWT Authentication

Users log in using email and password and receive a JWT token for authentication.

Course Creation and Management

Instructors can create courses by providing details like title, description, and category. They can also edit or delete courses.

Course Enrollment

Students can browse available courses and enroll. They can also check if the course is full.

Lesson Management

Instructors can add lessons to their courses, including titles, content, and optional video URLs.

Course List and Search

Students can search and filter courses by name, category, or instructor. Paginated course list for large numbers.

Student Dashboard

Students can view their enrolled courses, mark lessons as completed, and track their progress.

Instructor Dashboard

Instructors can manage their courses and students, view enrollments, and update/delete lessons.

Admin Panel

Admins can manage users, courses, enrollments, approve/reject courses, and manually enroll students.

Course Completion Tracking

Students can track their progress, marking lessons as completed to show course completion.

Payment System Integration

Integration with Stripe or PayPal for course purchases, handling payments and issuing receipts.

Course Rating and Review System

Students can rate and review courses after completing them, helping other students make informed decisions.

Notification System

Notifications for course updates, enrollments, and other important actions (email or platform notifications).

Analytics and Reports for Admins

Admins can view reports on active users, popular courses, enrollments, and payments in easy-to-read graphs/tables.

Security and Data Protection

All user data, including passwords, is securely stored and transmitted with encryption and authorization checks.

Forum Feature

Task Description
Forum Integration

A new forum section has been added to the Online Course Platform, allowing instructors and students to engage in meaningful discussions.

Question and Answer System

Students can post questions related to course topics, and instructors can provide answers. This feature facilitates better learning and interaction between users.

Like and Comment Features

Answers can be liked and commented on, enabling collaborative and community-driven discussions.

Instructor Moderation

Instructors have the ability to moderate discussions, ensuring a productive and respectful environment in the forum.

Technologies for Online Course Management Platform

Technology Description
Spring Boot

Backend framework for building RESTful APIs, managing security, and user data.

MySQL or PostgreSQL (MongoDB Provided)

Relational databases to store user, course, lesson, and enrollment data.

Spring Security

Comprehensive security framework for authentication, authorization, and role-based access control (RBAC).

JWT

Stateless authentication using JSON Web Tokens for secure communication between the client and the server.

Stripe or PayPal

Payment gateways for handling course purchases, payments, and receipts.

Redis

Used for caching and improving application performance, reducing database load.

Docker

Containerization technology for developing, deploying, and scaling the application efficiently.

Tests

Test Description
Create Lesson Tests

createLesson_Success: The lesson was successfully created.

createLesson_CourseNotFound: Appropriate error message is returned when the course is not found.

Update Lesson Tests

updateLesson_Success: The lesson was successfully updated.

Delete Lesson Tests

deleteLesson_Success: The lesson was successfully deleted.

Create Course Tests

createCourse_Success: The course was successfully created and an email was sent to the instructor.

createCourse_CourseAlreadyExists: An exception was thrown when attempting to create a course with an already taken name.

Delete Course Tests

deleteCourse_Success: The course was successfully deleted and an email was sent to the instructor.

deleteCourse_CourseNotFound: Appropriate error message was returned when trying to delete a non-existent course.

Update Course Tests

updateCourse_Success: The course was successfully updated.

updateCourse_CourseNotFound: An error message was returned when trying to update a non-existent course.

Course Recommendation Test

testRecommendCourses: Cosine Similarity is successfully running.

Gamification Tests

addPointsToUser_Success: Points were successfully added to the user and appropriate badges were awarded.

addPointsToUser_UserNotFound: Appropriate error message was returned when the user was not found.

Email Service Tests

sendEmail_Success: The email was successfully sent.

sendEmail_NullValues: Appropriate error message was returned when null values were passed.

SearchService Tests

getAllCourses_Success: All courses were successfully retrieved.

filterByName_Success: Courses were successfully listed by name filter.

filterByInstructorName_Success: Courses were successfully filtered by instructor name.

AdminService Tests

getAllUsers_Success: All users were successfully retrieved.

getUserById_Success: User was successfully retrieved by user ID.

deleteUserById_Success: User was successfully deleted.

getAllCourses_Success: All courses were successfully retrieved.

getCourseById_Success: Course was successfully retrieved by course ID.

deleteLessonById_Success: Lesson was successfully deleted.

getEnrollmentsWithinRange_Success: Enrollments within the specified date range were successfully retrieved.

Cosine Similarity Tests

testCosineSimilarity_Success: Cosine Similarity algorithm ran successfully.

View Full Project