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. |