{"id":20832705,"url":"https://github.com/anmol-srv/realtime-notification-system","last_synced_at":"2026-04-11T17:36:05.935Z","repository":{"id":248836114,"uuid":"825125572","full_name":"Anmol-Srv/Realtime-Notification-System","owner":"Anmol-Srv","description":"A microservices-based real-time notification system built with Node.js, Express, MongoDB, RabbitMQ, and Socket.IO. It handles high-volume message processing and delivers real-time notifications to users. Key features include JWT authentication, role-based access control, Swagger API documentation, and retry mechanisms for failed message processing.","archived":false,"fork":false,"pushed_at":"2024-08-05T14:19:58.000Z","size":65,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-10-25T12:39:20.967Z","etag":null,"topics":["aws","express","jwt","mongodb","node","rabbitmq","socket-io"],"latest_commit_sha":null,"homepage":"https://realtime-notification-system.onrender.com","language":"JavaScript","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/Anmol-Srv.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}},"created_at":"2024-07-06T21:16:59.000Z","updated_at":"2024-07-17T08:42:16.000Z","dependencies_parsed_at":"2025-01-18T20:58:58.397Z","dependency_job_id":null,"html_url":"https://github.com/Anmol-Srv/Realtime-Notification-System","commit_stats":null,"previous_names":["anmol-srv/realtime-notification-system"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Anmol-Srv/Realtime-Notification-System","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Anmol-Srv%2FRealtime-Notification-System","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Anmol-Srv%2FRealtime-Notification-System/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Anmol-Srv%2FRealtime-Notification-System/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Anmol-Srv%2FRealtime-Notification-System/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Anmol-Srv","download_url":"https://codeload.github.com/Anmol-Srv/Realtime-Notification-System/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Anmol-Srv%2FRealtime-Notification-System/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31689762,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-11T13:07:20.380Z","status":"ssl_error","status_checked_at":"2026-04-11T13:06:47.903Z","response_time":54,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: 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":["aws","express","jwt","mongodb","node","rabbitmq","socket-io"],"created_at":"2024-11-18T00:12:57.975Z","updated_at":"2026-04-11T17:36:05.913Z","avatar_url":"https://github.com/Anmol-Srv.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Realtime Notification System\n\nThis is a microservices-based real-time notification system built using Node.js, Express, MongoDB, RabbitMQ, and Socket.IO. The system handles high-volume message processing and delivers real-time notifications to users.\n\n## Features\n\n- User authentication with JWT\n- Notification creation and retrieval\n- Real-time notifications using WebSocket (Socket.IO)\n- Message queuing with RabbitMQ\n- Swagger API documentation\n- Role-based access control (RBAC)\n- Pagination for GET endpoints\n- Retry mechanism for failed message processing\n\n## Technologies Used\n\n- Node.js\n- Express\n- MongoDB\n- Mongoose\n- RabbitMQ\n- Socket.IO\n- JSON Web Tokens (JWT)\n- Swagger\n- amqplib\n\n## Getting Started\n\n### Prerequisites\n\n- Node.js\n- npm or yarn\n- MongoDB\n- RabbitMQ\n\n### Installation\n\n1. Clone the repository:\n\n   ```bash\n   git clone https://github.com/your-username/realtime-notification-system.git\n   cd realtime-notification-system```\n  \n2. Install dependencies:\n```\nnpm install\n```\n\n3. Create a .env file in the root directory and add the following environment variables:\n```\nMONGODB_URI=\u003cyour_mongodb_uri\u003e\nJWT_SECRET=\u003cyour_jwt_secret\u003e\nRABBITMQ_URI=\u003cyour_rabbitmq_uri\u003e\n```\n\n### Running the Project\n1. Start the MongoDB server.\n\n2. Start the RabbitMQ server.\n\n3. Start the Node.js server:\n```\nnpm start\n```\n\n4. Start the notification consumer service:\n   ```npm run consumer```\n\n5. Open http://localhost:3000 in your browser to access the application.\n\n## API Documentation\nSwagger is used to document the API. You can access the Swagger UI at:\n```http://localhost:3000/api-docs```\n\n## Project Structure\n```arduino\nrealtime-notification-system/\n│\n├── public/\n│   └── index.html\n├── src/\n│   ├── config/\n│   │   └── swagger.js\n│   ├── controllers/\n│   │   ├── authController.js\n│   │   └── notificationController.js\n│   ├── middlewares/\n│   │   └── authMiddleware.js\n│   ├── models/\n│   │   ├── user.js\n│   │   └── notification.js\n│   ├── routes/\n│   │   ├── auth.js\n│   │   └── notifications.js\n│   ├── services/\n│   │   └── notificationConsumer.js\n│   ├── utils/\n│   ├── app.js\n│   └── server.js\n├── .env\n├── package.json\n├── Procfile\n└── vercel.json\n```\n\n## License\nThis project is licensed under the MIT License - see the LICENSE file for details.\n\n\n### Summary\n\nThis `README.md` file provides a comprehensive guide to setting up, running, and deploying your project. It includes sections for prerequisites, installation, project structure, running the project, API documentation, and deployment instructions. \n\nFeel free to modify the content to better suit your specific project details and requirements. If you encounter any issues or have specific questions, feel free to ask!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fanmol-srv%2Frealtime-notification-system","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fanmol-srv%2Frealtime-notification-system","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fanmol-srv%2Frealtime-notification-system/lists"}