Fix #721: Implement Omnichannel Notification Delivery & Template Life#726
Merged
Renu-code123 merged 1 commit intoRenu-code123:mainfrom Feb 21, 2026
Conversation
…emplate Lifecycle Engine
|
@SatyamPandey-07 is attempting to deploy a commit to the Renu's projects Team on Vercel. A member of the Team first needs to authorize it. |
🎉 Thanks for the PR, @SatyamPandey-07!We really appreciate you taking the time to contribute to ExpenseFlow! 💙 ⭐ Love this project?Please give us a star! It helps the project grow and reach more developers! 🌟 🔗 https://github.com/Renu-code123/ExpenseFlow ✅ PR ChecklistBefore we review, please ensure:
🙌 Thank You for Contributing!We truly appreciate your interest in contributing to this project.
We'll review your PR as soon as possible. Keep up the great work! ✨ |
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
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.
Key Features Implemented:
Omnichannel Template Engine: Created
models/NotificationTemplate.js
, allowing notification content to be defined as data in MongoDB. Each template supports content for Email, Push, SMS, and In-App feeds, enabling "Write Once, Route Anywhere" efficiency.
Granular User Preferences: Developed
models/NotificationPreference.js
, which gives users fine-grained control over which notifications they receive and through which channels. It includes support for global unsubscription and per-slug channel toggling.
Intelligent Dispatch Orchestrator: Built
services/notificationOrchestrator.js
, the central brain of the notification system. It handles template retrieval, user preference enforcement, and multi-channel routing (simulating real integration with SendGrid, FCM, etc.).
Flexible Template Resolver: Created
utils/templateResolver.js
, an interpolation utility that safely injects runtime variables (like transaction amounts or user names) into templates across all channels.
Anti-Spam Security Guard: Implemented
middleware/notificationGuard.js
, which enforces frequency caps and rate limiting to prevent notification flooding and ensure a premium user experience.
Expanded Content Library: Heavily refactored
templates/notificationTemplates.js
to include over 20 professional templates for budgets, security, onboarding, and monthly reports, providing a robust starting point for the engine.
Service-Wide Decoupling:
Refactored
listeners/EmailListeners.js
to trigger onboarding and security alerts through the orchestrator.
Updated
listeners/AuditListeners.js
to automatically dispatch multi-channel budget alerts when high-value transactions are detected.
Management API: Created
routes/notifications.js
, providing endpoints for auditing templates and manually triggering system notifications for administrative use.
Technical Specification: Documented the entire design and integration flow in
NOTIFICATION_SPEC.md
closes #721