{"id":34622376,"url":"https://github.com/muhammadranju/push-notifications","last_synced_at":"2026-04-15T10:31:39.997Z","repository":{"id":310234981,"uuid":"1038166405","full_name":"muhammadranju/push-notifications","owner":"muhammadranju","description":"A real-time push notification system built with React.js, Node.js, Firebase Cloud Messaging (FCM), and Socket.IO. This project allows sending and receiving push notifications on the web, with token management and real-time updates.","archived":false,"fork":false,"pushed_at":"2025-09-06T18:39:38.000Z","size":202,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-12-26T04:42:49.154Z","etag":null,"topics":["firebase","mongodb","nodejs","notifications","push-notifications","react","reactjs","real-time","socket-io"],"latest_commit_sha":null,"homepage":"https://push-notifications-seven.vercel.app","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/muhammadranju.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-08-14T18:18:09.000Z","updated_at":"2025-09-06T18:39:42.000Z","dependencies_parsed_at":"2025-08-19T00:02:23.216Z","dependency_job_id":null,"html_url":"https://github.com/muhammadranju/push-notifications","commit_stats":null,"previous_names":["muhammadranju/push-notifications"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/muhammadranju/push-notifications","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/muhammadranju%2Fpush-notifications","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/muhammadranju%2Fpush-notifications/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/muhammadranju%2Fpush-notifications/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/muhammadranju%2Fpush-notifications/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/muhammadranju","download_url":"https://codeload.github.com/muhammadranju/push-notifications/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/muhammadranju%2Fpush-notifications/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31837117,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-15T10:26:52.245Z","status":"ssl_error","status_checked_at":"2026-04-15T10:26:51.649Z","response_time":63,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["firebase","mongodb","nodejs","notifications","push-notifications","react","reactjs","real-time","socket-io"],"created_at":"2025-12-24T15:32:39.579Z","updated_at":"2026-04-15T10:31:39.985Z","avatar_url":"https://github.com/muhammadranju.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🔔 Push Notification Web App\n\nA **real-time push notification system** built with **React.js**, **Node.js**, **Firebase Cloud Messaging (FCM)**, and **Socket.IO**.  \nThis project allows sending and receiving push notifications on the web, with token management and real-time updates.\n\n---\n\n## 🚀 Features\n\n- 🔑 **User Token Management** – Generate and store FCM device tokens.\n- 📩 **Send Notifications** – Trigger notifications from the backend.\n- ⚡ **Real-time Updates** – Delivered instantly using **Socket.IO**.\n- 🔔 **Firebase Cloud Messaging Integration** – Reliable cross-browser push delivery.\n- 🌐 **React.js Frontend** – Clean and responsive UI for managing notifications.\n- 🔒 **Secure Token Handling** – Tokens stored safely with cookies/localStorage.\n\n---\n\n## 🛠️ Tech Stack\n\n### Frontend\n\n- **React.js** + **Vite** (fast bundler)\n- **TailwindCSS** (for styling)\n- **Firebase Web SDK** (FCM integration)\n- **React Hot Toast** (beautiful notifications)\n\n### Backend\n\n- **Node.js** + **Express.js**\n- **Socket.IO** (real-time communication)\n- **Firebase Admin SDK** (server-side push notification handling)\n- **JWT Authentication** (optional for secure users)\n\n---\n\n## 📂 Project Structure\n\n```\n\npush-notification-app/\n│── client/                # React.js frontend\n│   ├── src/\n│   │   ├── firebase.js    # Firebase config\n│   │   ├── App.jsx        # Main UI\n│   │   └── ...\n│── server/                # Node.js backend\n│   ├── index.js           # Express + Socket.IO server\n│   ├── firebaseAdmin.js   # Firebase Admin SDK config\n│   └── ...\n│── README.md\n\n```\n\n---\n\n## ⚙️ Setup \u0026 Installation\n\n### 1️⃣ Clone Repository\n\n```bash\ngit clone https://github.com/your-username/push-notification-app.git\ncd push-notification-app\n```\n\n### 2️⃣ Setup Firebase\n\n1. Go to [Firebase Console](https://console.firebase.google.com/).\n2. Create a new project.\n3. Enable **Cloud Messaging**.\n4. Get your **Firebase Config** and add it to `client/src/firebase.js`.\n5. Download `serviceAccountKey.json` and place it inside `server/`.\n\n### 3️⃣ Install Dependencies\n\n```bash\n# Frontend\ncd client\nnpm install\n\n# Backend\ncd ./server\nnpm install\n```\n\n### 4️⃣ Run the Project\n\n```bash\n# Start backend\ncd server\nnpm run dev\n\n# Start frontend\ncd ./client\nnpm run dev\n```\n\n---\n\n## 📡 API Endpoints\n\n| Method | Endpoint    | Description                       |\n| ------ | ----------- | --------------------------------- |\n| POST   | `/send`     | Send push notification to a token |\n| GET    | `/tokens`   | Get registered device tokens      |\n| POST   | `/register` | Register new token                |\n\n---\n\n## 🔔 How It Works\n\n1. User opens the frontend → **Firebase generates a device token**.\n2. Token is sent \u0026 stored in the backend.\n3. Backend (via API or Socket.IO) sends notification requests.\n4. **Firebase Cloud Messaging** delivers push notifications to the browser.\n5. React frontend listens and displays notifications in real-time.\n\n## 🚧 Roadmap\n\n- [ ] User Authentication (JWT + Firebase Auth)\n- [ ] Notification Groups / Topics\n- [ ] Mobile PWA Support\n- [ ] Admin Panel for sending notifications\n\n---\n\n## 🤝 Contributing\n\nPull requests are welcome!\nFor major changes, open an issue first to discuss what you’d like to change.\n\n---\n\n## 📜 License\n\nMIT License © 2025 Muhammad Ranju\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmuhammadranju%2Fpush-notifications","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmuhammadranju%2Fpush-notifications","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmuhammadranju%2Fpush-notifications/lists"}