{"id":15187671,"url":"https://github.com/sangamprashant/desktop-notifier","last_synced_at":"2026-01-24T14:45:48.464Z","repository":{"id":251436001,"uuid":"837398334","full_name":"sangamprashant/desktop-notifier","owner":"sangamprashant","description":"🔔 Real-time desktop notifications with WebSocket support. 💻🔧 Customize alerts with your own icon and handle errors robustly. Easy setup with minimal configuration. 🚀📦","archived":false,"fork":false,"pushed_at":"2024-08-11T21:52:19.000Z","size":41237,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-10-27T06:34:32.745Z","etag":null,"topics":["expressjs","nativewind","node","python","react-native-app","real-time-alerts","websocket"],"latest_commit_sha":null,"homepage":"https://desktop-notifier.onrender.com","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sangamprashant.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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}},"created_at":"2024-08-02T22:08:58.000Z","updated_at":"2024-08-11T21:12:47.000Z","dependencies_parsed_at":"2024-08-06T01:44:18.150Z","dependency_job_id":null,"html_url":"https://github.com/sangamprashant/desktop-notifier","commit_stats":null,"previous_names":["sangamprashant/desktop-notifier"],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/sangamprashant/desktop-notifier","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sangamprashant%2Fdesktop-notifier","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sangamprashant%2Fdesktop-notifier/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sangamprashant%2Fdesktop-notifier/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sangamprashant%2Fdesktop-notifier/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sangamprashant","download_url":"https://codeload.github.com/sangamprashant/desktop-notifier/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sangamprashant%2Fdesktop-notifier/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28730193,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-24T10:24:43.181Z","status":"ssl_error","status_checked_at":"2026-01-24T10:24:36.112Z","response_time":89,"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":["expressjs","nativewind","node","python","react-native-app","real-time-alerts","websocket"],"created_at":"2024-09-27T18:41:50.837Z","updated_at":"2026-01-24T14:45:48.439Z","avatar_url":"https://github.com/sangamprashant.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n   \u003cimg src=\"./assets/icon.png\" width=\"200px\" alt=\"icon\"\u003e\n\u003c/p\u003e\n\n---\n\n# Desktop Notifier\n\nDesktop Notifier is a comprehensive project comprising a React Native mobile application, an Express server with WebSocket support, and a Python desktop application. The system is designed to send real-time notifications to desktop applications based on specific project IDs.\n\nThis repository consists of five projects:\n\n1. **`:root/index.js`**: An Express server that handles WebSocket connections to send messages.\n2. **`:root/desktop-notifier-mobile-app`**: A React Native mobile app that uses the Express server to send messages.\n3. **`:root/desktop-notifier-windows/gui_with_server`**: A Python project with a GUI that sends mobile notifications to the desktop.\n4. **`:root/desktop-notifier-windows/gui_without_server`**: A Python project with a GUI but without a server.\n5. **`:root/desktop-notifier-windows/without_gui_with_server`**: A Python project without a GUI but with a server.\n\n## Features\n\n- Real-time notifications from a React Native app to desktop applications.\n- WebSocket-based communication for instant updates.\n- Notifications are filtered and sent to the appropriate project-specific clients.\n\n## Project Structure\n\n- **React Native App**: Sends notifications to the server.\n- **Express Server**: Manages WebSocket connections and routes notifications to the appropriate clients.\n- **Python Desktop Application**: Listens for notifications from the server and displays them using system notifications.\n\n## Installation\n\n### Prerequisites\n\n- Node.js and npm installed.\n- Python installed.\n\n### 1. Clone the Repository\n\n```bash\ngit clone https://github.com/sangamprashant/desktop-notifier.git\ncd desktop-notifier\n```\n\n### 2. Setup the Express Server\n\n#### Install Dependencies\n\n```bash\nnpm install\n```\n\n#### Configure Environment Variables\n\nCreate a `.env` file in the root directory of the project with the following content:\n\n```\nPORT=8000\n```\n\n#### Start the Server\n\n```bash\nnpm start\n```\n\n### 3. Setup the React Native App\n\n#### Install Dependencies\n\n```bash\ncd desktop-notifier-mobile-app\nnpm install\n```\n\n#### Run the App\n\n```bash\nnpm start\n```\n\n### 4. Setup the Python Desktop Application\n\n#### Install Dependencies\n\n```bash\ncd desktop-notifier-windows\npython -m venv env\nsource env/bin/activate\npip install -r requirements.txt\n```\n\n#### Run the Application\n\n```bash\npython main.py\n```\n\n## Usage\n\n### Sending Notifications\n\n1. Open the React Native app (Desktop Notifier).\n2. Enter the project ID (ID should be the same as the receiver's end).\n3. Enter the title and message.\n4. Send the notification.\n\n### Receiving Notifications\n\n1. Ensure the Python desktop application is running on all devices.\n2. Each desktop application should register with the server using its specific project ID.\n3. Notifications sent from the React Native app will be received by the appropriate desktop applications.\n\n## Contributing\n\nContributions are welcome! Please fork the repository and submit a pull request for any enhancements or bug fixes.\n\n## License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n## Additional Information\n\n- Ensure that the WebSocket connection URL in the Python script matches your server's URL.\n- You can customize the notification icon by replacing `\"icon.ico\"` with the path to your desired icon file.\n- The project ID should be unique for each project to ensure that notifications are sent to the correct clients.\n\nBy following this guide, you'll be able to set up and run the Desktop Notifier project, allowing you to send real-time notifications from a React Native app to desktop applications using WebSocket and system notifications.\n\n## Download the Builds\n\n\u003cp align=\"center\"\u003e\n   \u003ca href=\"https://github.com/sangamprashant/desktop-notifier/releases\"\u003e\n   \u003cimg src=\"./assets/download.png\" alt=\"Download\" height=\"50\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n## Screenshots of the Mobile App\n\nThe UI is built using Tailwind CSS with NativeWind for styling.\n\n### General Layout\n\n\u003cdiv style=\"display: flex; justify-content: space-between; flex-wrap: wrap;\" align=\"center\"\u003e\n   \u003cimg src=\"./assets/1.jpg\" style=\"width: 48%;\" alt=\"Screenshot 1\"\u003e\n   \u003cimg src=\"./assets/2.jpg\" style=\"width: 48%;\" alt=\"Screenshot 2\"\u003e\n\u003c/div\u003e\n\u003cdiv style=\"display: flex; justify-content: space-between; flex-wrap: wrap; margin-top: 10px;\" align=\"center\"\u003e\n   \u003cimg src=\"./assets/3.jpg\" style=\"width: 48%;\" alt=\"Screenshot 3\"\u003e\n   \u003cimg src=\"./assets/4.jpg\" style=\"width: 48%;\" alt=\"Screenshot 4\"\u003e\n\u003c/div\u003e\n\u003cdiv style=\"display: flex; justify-content: space-between; flex-wrap: wrap; margin-top: 10px;\" align=\"center\"\u003e\n   \u003cimg src=\"./assets/5.jpg\" style=\"width: 48%;\" alt=\"Screenshot 5\"\u003e\n\u003c/div\u003e\n\u003cimg src=\"./assets/6.png\" style=\"width: 100%;\" alt=\"Screenshot 6\"\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsangamprashant%2Fdesktop-notifier","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsangamprashant%2Fdesktop-notifier","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsangamprashant%2Fdesktop-notifier/lists"}