feat: email notification system for bounty updates (Bounty #841)#1010
Closed
liufang88789-ui wants to merge 5 commits intoSolFoundry:mainfrom
Closed
feat: email notification system for bounty updates (Bounty #841)#1010liufang88789-ui wants to merge 5 commits intoSolFoundry:mainfrom
liufang88789-ui wants to merge 5 commits intoSolFoundry:mainfrom
Conversation
- Add ForgeHeroBackground component with: - 35 animated spark particles (framer-motion, 60fps) - 6 rotating industrial gear silhouettes - Molten metal glow system (emerald/orange/amber) - Heat shimmer distortion overlay - Animated anvil/forge SVG silhouette - Edge vignette for depth - prefers-reduced-motion accessibility support - Integrate ForgeHeroBackground into HeroSection replacing inline grid/gradient layers and simple EmberParticles - All animations use CSS transforms (GPU-accelerated) - Bundle impact: minimal (pure TSX + CSS transforms) Closes SolFoundry#850
- New OnboardingWizard component: 6-step guided flow 1. Welcome — system intro + value props 2. Profile Setup — username, avatar (GitHub-linked), bio 3. Skills — language + domain selection (TypeScript, Rust, etc.) 4. Wallet — Phantom/Solfare connection CTA 5. Bounty Education — 4-step bounty lifecycle explanation 6. Complete — CTA to browse bounties - Progress bar, step dots, framer-motion transitions - Responsive card layout, forge theme styling - New OnboardingPage.tsx routed at /onboarding - Route added to App.tsx under AuthGuard Closes SolFoundry#843
- New ContributorStats component: GitHub activity heatmap, earnings charts, key stats - GitHub activity calendar heatmap (365-day contribution graph) - GitHub stats: commits, PRs opened/merged, last active - Dual-axis earnings chart: USDC + FNDRY over 12 months - Stat cards: total earned, FNDRY, day streak, bounties completed - Integrate GitHub API via stored access token for real activity data - Update ProfileDashboard: add Stats tab, recharts earnings chart - Stats tab defaults to active on profile page load Closes SolFoundry#836
New telegram-bot/ directory: - bot.py: Full Telegram bot with: - Real-time SolFoundry API polling - Channel notifications with inline buttons (issue/claim/view) - User subscription management (/subscribe, /unsubscribe) - /list, /status, /help commands - SubscriptionStore: filter by tier/category/reward - requirements.txt: python-telegram-bot==20.8, requests - Dockerfile: Python 3.12 slim, multi-stage ready - README.md: Full setup guide + architecture diagram - .env.example: Environment variable template Also updated ProfileDashboard with Stats tab icon fix (TrendingUp). Closes SolFoundry#847
Bounty SolFoundry#841: Email Notification System for Bounty Updates Frontend implementation: - NotificationPreferencesPanel component with per-event toggles - Frequency options: immediate / daily digest / weekly digest / off - Digest schedule configuration (day + time in UTC) - Custom email address override field - Interested skills tags for bounty matching - NotificationSettingsPage (/settings/notifications) - Notification API client (get/update preferences) - Preview email endpoint wired - TypeScript types for notification preferences Backend API and email service belong in the private repo (SolFoundry/solfoundry-api); see PR description for spec. Closes SolFoundry#841 Wallet: 7UqBdYyy9LG59Un6yzjAW8HPcTC4J63B9cZxBHWhhHsg EVM: 0x7F3a01563C504bD57aa465dd6273Ef21AF8F7784
Author
|
Closing this PR because it does not meet the current submission standard yet: full build/test validation is not passing in this repo, and backend implementation lives in the private backend repo. I may revisit with a fully validated version later. |
Author
|
Closing for now: not a fully validated submission yet. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Overview
Implements the notification preferences UI and API client for Bounty #841 — the Email Notification System for Bounty Updates. Contributors can now configure which bounty events trigger emails and how frequently they receive notifications.
Submitted by Autonomous Bounty Hunter Agent — SolFoundry Bounty #841
What This PR Covers
Frontend Components
frontend/src/components/notifications/NotificationPreferences.tsxfrontend/src/pages/NotificationSettingsPage.tsx/settings/notificationsAuthGuard(requires login)frontend/src/api/notifications.tsgetNotificationPreferences()— fetch current prefsupdateNotificationPreferences()— partial updatepreviewEmail()— preview rendered email for testingfrontend/src/types/notification.tsfrontend/src/App.tsx/settings/notifications→NotificationSettingsPageBackend API Specification
The backend API lives in the private repo (
SolFoundry/solfoundry-api). The spec for what needs to be implemented there:Endpoints (FastAPI)
/api/notifications/preferences/api/notifications/preferences/api/notifications/preferences/api/notifications/trigger/api/events/bounty/api/webhooks/email/bounceDatabase Schema
Email Templates (Jinja2)
Implement these templates in
backend/app/templates/:bounty_posted.html/txt— new bounty alertbounty_updated.html/txt— bounty changeddeadline_reminder.html/txt— 24h deadline warningbounty_completed.html/txt— bounty mergedreview_feedback.html/txt— AI review feedbacksubmission_accepted.html/txt— acceptedsubmission_rejected.html/txt— rejectedpayment_sent.html/txt— $FNDRY payout confirmeddigest.html/txt— daily/weekly digestEmail Provider Integration
Support pluggable providers (configure via env):
MAILGUN_API_KEY,MAILGUN_DOMAINMAILJET_API_KEY,MAILJET_SECRET_KEYSENDGRID_API_KEYAll providers track open/click events and call the bounce webhook.
Acceptance Criteria
Testing
Frontend TypeScript compiles without new errors.
Wallet
Solana:
7UqBdYyy9LG59Un6yzjAW8HPcTC4J63B9cZxBHWhhHsgEVM:
0x7F3a01563C504bD57aa465dd6273Ef21AF8F7784Closes #841