Skip to content

feat: gift-a-course, tag input, leaderboard, study reminders - #301

Open
Hovibby wants to merge 1 commit into
Hamplard-Hub:mainfrom
Hovibby:feat/gift-tagsinput-leaderboard-reminders
Open

feat: gift-a-course, tag input, leaderboard, study reminders#301
Hovibby wants to merge 1 commit into
Hamplard-Hub:mainfrom
Hovibby:feat/gift-tagsinput-leaderboard-reminders

Conversation

@Hovibby

@Hovibby Hovibby commented Aug 27, 2026

Copy link
Copy Markdown

closes #146
closes #152
closes #149
closes #148

Summary

Implements four new features. Closes #[issue_id]


a. Gift-a-Course Flow

  • Gift this course button on course detail page next to Enroll
  • Gift checkout form (RHF + Zod) — recipient email, delivery date, optional message
  • Confirmation page with shareable link, copy button, Web Share API, downloadable gift card
  • Claim page handles pending/claimed/expired states; course added to recipient dashboard on claim
  • giftsApi service with localStorage fallback

b. Multi-Select Tag Input

  • TagInput component at src/components/ui/TagInput.tsx
  • Debounced API suggestions after 2+ characters
  • Keyboard nav: ↑↓ Enter Esc , Backspace-removes-last
  • Pill tags with × removal, max 10 enforced, live count display
  • Integrated into course creation form

c. Leaderboard

  • New /leaderboard route with This Week / This Month / All Time tab switcher
  • Top-3 podium with gold/silver/bronze medals
  • Table: rank, avatar, name, courses completed, hours, streak days
  • Current user row highlighted and pinned below top 10 if not in it
  • Leaderboard link added to student sidebar

d. Study Reminder Scheduler

  • Day-of-week checkboxes, time picker, custom message (140 chars)
  • Persists in localStorage across page refresh
  • Requests browser Notification permission on first save
  • Fires browser notification at scheduled time via setTimeout
  • Falls back to toast (ToastProvider) if notifications are blocked
  • Mounted in /dashboard/settings

Closes #[issue_id]

- Gift flow: checkout form (RHF/Zod), confirmation page with
  shareable link + gift card download, claim page; adds Gift
  this course button to course detail
- TagInput: debounced suggestions, pill tags, max 10, full
  keyboard nav (Enter/Backspace/up/down/Esc)
- Leaderboard: /leaderboard route, tab switcher (week/month/
  all-time), top-3 podium, medal icons, current-user row;
  sidebar nav link added
- StudyReminder: day/time/message scheduler, localStorage
  persistence, Web Notifications API + toast fallback

Closes #[issue_id]
@drips-wave

drips-wave Bot commented Aug 27, 2026

Copy link
Copy Markdown

@Hovibby Great news! 🎉 Based on an automated assessment of this PR, the linked Wave issue(s) no longer count against your application limits.

You can now already apply to more issues while waiting for a review of this PR. Keep up the great work! 🚀

Learn more about application limits

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

1 participant