0

Firebase Push Notification System

Server-client push notification architecture using Firebase Cloud Messaging with admin panel and background service.

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: