Overview
A complete push notification system built on Firebase Cloud Messaging (FCM), featuring an admin panel for notification dispatch and an Android client with reliable background delivery.
The project demonstrates mobile infrastructure patterns: background services, topic subscriptions, and server-side messaging.
Architecture
Server Component
- Admin interface: Web-based notification composition
- FCM integration: Server-side message dispatch
- Topic management: Subscriber group organization
- Delivery tracking: Message status monitoring
Client Component
- Background service: AlarmManager-based reliability
- Topic subscription: Category-based notification opt-in
- Rich notifications: Expandable content, action buttons
- Offline handling: Queue-based retry mechanism
Technical Implementation
Server-Side (Admin Panel)
// Firebase Admin SDK integration
FirebaseMessaging.getInstance()
.send(message)
.addOnCompleteListener(task -> {
// Track delivery status
});Client-Side (Android)
// Background service for reliable delivery
public class NotificationService extends FirebaseMessagingService {
@Override
public void onMessageReceived(RemoteMessage message) {
// Handle incoming notification
}
}Features
For Administrators
- Compose and send notifications
- Target specific user groups or topics
- Schedule delayed delivery
- View delivery analytics
For Users
- Subscribe to notification categories
- Customize notification preferences
- Rich notification display
- Notification history
Use Cases
- App announcements and updates
- Promotional campaigns
- Transactional notifications
- Real-time alerts
Repository
Two repositories available:
- Admin Panel - Server component
- Client App - Android client