This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules.
Currently, two official plugins are available:
- @vitejs/plugin-react uses Babel for Fast Refresh
- @vitejs/plugin-react-swc uses SWC for Fast Refresh
If you are developing a production application, we recommend updating the configuration to enable type-aware lint rules:
export default tseslint.config({
extends: [
// Remove ...tseslint.configs.recommended and replace with this
...tseslint.configs.recommendedTypeChecked,
// Alternatively, use this for stricter rules
...tseslint.configs.strictTypeChecked,
// Optionally, add this for stylistic rules
...tseslint.configs.stylisticTypeChecked,
],
languageOptions: {
// other options...
parserOptions: {
project: ['./tsconfig.node.json', './tsconfig.app.json'],
tsconfigRootDir: import.meta.dirname,
},
},
})You can also install eslint-plugin-react-x and eslint-plugin-react-dom for React-specific lint rules:
// eslint.config.js
import reactX from 'eslint-plugin-react-x'
import reactDom from 'eslint-plugin-react-dom'
export default tseslint.config({
plugins: {
// Add the react-x and react-dom plugins
'react-x': reactX,
'react-dom': reactDom,
},
rules: {
// other rules...
// Enable its recommended typescript rules
...reactX.configs['recommended-typescript'].rules,
...reactDom.configs.recommended.rules,
},
})A React-based dashboard for managing overlay notifications via Firebase Cloud Messaging (FCM).
- Configure and send overlay notifications to devices
- Upload CSV files containing FCM device tokens
- Preview overlay notifications before sending
- Track success/failure rates with detailed error reporting
- Two authentication options:
- Directly provide an FCM OAuth token
- Upload a Firebase service account JSON file to generate an FCM token
- Clone the repository
- Install dependencies:
npm install
- Start the development server:
npm run dev
You can directly provide an FCM OAuth token obtained from the Google Cloud Platform. This token should include the "Bearer" prefix.
Alternatively, you can upload a Firebase service account JSON file, which the application can use to generate an FCM token.
Important Note: The service account authentication method requires a backend implementation. The frontend code includes placeholders for making API calls to a server endpoint that would handle JWT signing using the service account's private key. For security reasons, private keys should never be processed directly in the browser.
To fully implement the service account authentication method, you need to:
-
Create a server endpoint (e.g.,
/api/generate-fcm-token) that:- Accepts service account details
- Creates and signs a JWT with the appropriate claims
- Exchanges the JWT for an OAuth token via Google's token endpoint
- Returns the token to the frontend
-
Update the
generateFCMTokenFromServiceAccountfunction insrc/services/firebaseTokenService.tsto call your backend endpoint instead of throwing an error.
- Choose your authentication method (FCM Token or Service Account)
- Configure your overlay notification (title, description, actions, etc.)
- Upload a CSV file containing FCM device tokens
- Click "Send Overlay" to dispatch the notifications
- View results and any errors in the summary dialog
The CSV file should contain a column named "token" with FCM device tokens:
token
cGz0BFK5QA:APA91bG...
f-VQiQTQRGS:APA91bF...