NotificationService - Thông báo đa kênh
📋 Tổng quan
Ngôn ngữ lập trình: Node.js 20 + Express + MongoDB + FCM + Redis + RabbitMQ
Cơ sở dữ liệu: MongoDB (notification_db)
Trạng thái: ✅ Sẵn sàng production
Dịch vụ Notification quản lý việc gửi thông báo đến người dùng qua nhiều kênh khác nhau (Push, Email, SMS, In-app) với khả năng tùy chỉnh và theo dõi chi tiết.
🎯 Chức năng chính
📱 Thông báo đẩy
-
Firebase Cloud Messaging
- Gửi thông báo đến thiết bị iOS
- Gửi thông báo đến thiết bị Android
- Hỗ trợ rich notification (ảnh, action buttons)
- Silent push cho cập nhật nền
-
Quản lý token thiết bị
- Đăng ký token FCM
- Cập nhật token tự động
- Xóa token khi logout
- Theo dõi token hết hạn
-
Hỗ trợ nhiều thiết bị
- Một người dùng nhiều thiết bị
- Đồng bộ trạng thái đọc
- Gửi đến tất cả thiết bị
- Quản lý thiết bị chính
📧 Thông báo Email
-
Tích hợp NodeMailer
- Gửi email SMTP
- Hỗ trợ Gmail, SendGrid, AWS SES
- Retry tự động khi thất bại
- Queue email để xử lý
-
Template email HTML
- Sử dụng Handlebars template engine
- Responsive email design
- Personalization (tên, nội dung động)
- Preview template
-
Cấu hình SMTP
- Cấu hình linh hoạt
- Hỗ trợ nhiều SMTP server
- TLS/SSL encryption
- Authentication
-
Quản lý hàng đợi email
- Queue với Redis
- Batch sending
- Rate limiting
- Theo dõi trạng thái gửi
📨 Thông báo SMS
-
Tích hợp nhà cung cấp
- Twilio integration
- VNPT SMS gateway
- Hỗ trợ nhiều provider
- Fallback provider
-
Template SMS
- Template có biến động
- Giới hạn ký tự
- Unicode support
- Shortlink tự động
-
Theo dõi gửi tin
- Trạng thái gửi (sent, delivered, failed)
- Delivery report
- Cost tracking
- Analytics