Skip to content

Feature/mailing system - #931

Open
AnnCKaroki wants to merge 11 commits into
icipe-official:testfrom
AnnCKaroki:feature/mailing-system
Open

Feature/mailing system#931
AnnCKaroki wants to merge 11 commits into
icipe-official:testfrom
AnnCKaroki:feature/mailing-system

Conversation

@AnnCKaroki

Copy link
Copy Markdown
Collaborator

Key Changes

Subscription & Campaign Backend

  • Subscription Lifecycle: Implemented the full flow: Subscribe48h Verification WindowUnsubscribe.
  • Campaign Mutations: Added two new GraphQL mutations:
    • queueDatasetCampaign (Themed/logged as blue)
    • queueNewsCampaign (Themed/logged as green)
  • Worker Optimization: Configured subscriber data streaming to chunk in batches of 500 records.

Frontend Routes

Added 5 new pages mapping to the subscription and administrative workflows:

  • /subscribe & /unsubscribed-success
  • /verify-success & /verify-expired
  • /admin (Subscriber management portal)

Admin Registry

  • Implemented a paginated subscriber data table.
  • Added functionality for manual subscriber additions and an Excel export feature.

@AnnCKaroki
AnnCKaroki force-pushed the feature/mailing-system branch 3 times, most recently from 70ca2bd to 4870e71 Compare August 23, 2026 18:01
Backend:
- Add email subscription with 48h verification tokens
- Add unsubscribe flow with secure per-user tokens
- Add admin GraphQL queries: paginated registry, manual add
- Add campaign mutations: dataset alerts (blue) and newsletters (green)
- Implement streamVerified() for memory-efficient bulk emailing
- Throttle campaigns at 5 emails/sec
- Add unit tests for campaign logic

Frontend:
- Add /subscribe page with GraphQL mutation
- Add /verify-success, /verify-expired, /unsubscribed-success pages
- Add /admin email registry dashboard
- Update footer with subscribe link
@AnnCKaroki
AnnCKaroki force-pushed the feature/mailing-system branch from 4870e71 to 3a89a65 Compare August 23, 2026 18:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant