Description
Students can browse and search courses, but they currently have no way to save interesting courses for later without enrolling.
Add a persistent wishlist that allows authenticated students to bookmark courses and manage them from a dedicated dashboard section.
Proposed Features
-
Add a bookmark button to:
- Course cards
- Course detail pages
-
Add a dedicated Saved Courses page.
-
Store bookmarks per authenticated user.
-
Prevent duplicate bookmarks.
-
Allow bookmarks to be removed.
-
Show whether a course is already saved.
-
Add filters by:
- Category
- Free or paid
- Course availability
-
Add sorting by:
- Recently saved
- Course title
- Price
-
Display a saved-course count in navigation.
-
Remove or clearly mark deleted courses.
-
Add optimistic UI updates with rollback on failure.
-
Include loading, empty, and error states.
Backend Requirements
Create bookmark endpoints to:
- Save a course
- Remove a saved course
- Retrieve the current user’s saved courses
- Check whether one or more courses are saved
Store bookmarks using either:
- A dedicated bookmark model, or
- A user wishlist field containing course references
Enforce uniqueness using user ID and course ID.
Frontend Requirements
Create reusable components or hooks such as:
BookmarkButton
SavedCourses
useBookmarks
The bookmark state should stay consistent across catalog cards, course details, and the saved-courses page.
Acceptance Criteria
Kindly assign this issue to me under ECSOC26
Description
Students can browse and search courses, but they currently have no way to save interesting courses for later without enrolling.
Add a persistent wishlist that allows authenticated students to bookmark courses and manage them from a dedicated dashboard section.
Proposed Features
Add a bookmark button to:
Add a dedicated Saved Courses page.
Store bookmarks per authenticated user.
Prevent duplicate bookmarks.
Allow bookmarks to be removed.
Show whether a course is already saved.
Add filters by:
Add sorting by:
Display a saved-course count in navigation.
Remove or clearly mark deleted courses.
Add optimistic UI updates with rollback on failure.
Include loading, empty, and error states.
Backend Requirements
Create bookmark endpoints to:
Store bookmarks using either:
Enforce uniqueness using user ID and course ID.
Frontend Requirements
Create reusable components or hooks such as:
BookmarkButtonSavedCoursesuseBookmarksThe bookmark state should stay consistent across catalog cards, course details, and the saved-courses page.
Acceptance Criteria
Kindly assign this issue to me under ECSOC26