{"id":24572799,"url":"https://github.com/rafiulgits/iothub","last_synced_at":"2025-04-23T06:49:17.782Z","repository":{"id":37454709,"uuid":"259195015","full_name":"rafiulgits/IotHub","owner":"rafiulgits","description":"Cloud based IoT system solution. MQTT Broker, MQTT Agent, SignalR Hub, Data Source API","archived":false,"fork":false,"pushed_at":"2023-03-03T23:31:01.000Z","size":146,"stargazers_count":46,"open_issues_count":3,"forks_count":14,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-04-23T06:49:11.737Z","etag":null,"topics":["broker","iot","iothub","mqtt","signalr"],"latest_commit_sha":null,"homepage":"https://rafiulgits.github.io/IotHub/","language":"C#","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/rafiulgits.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}},"created_at":"2020-04-27T03:28:37.000Z","updated_at":"2025-03-20T22:24:13.000Z","dependencies_parsed_at":"2023-01-25T10:00:12.010Z","dependency_job_id":null,"html_url":"https://github.com/rafiulgits/IotHub","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rafiulgits%2FIotHub","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rafiulgits%2FIotHub/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rafiulgits%2FIotHub/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rafiulgits%2FIotHub/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rafiulgits","download_url":"https://codeload.github.com/rafiulgits/IotHub/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250386744,"owners_count":21422026,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["broker","iot","iothub","mqtt","signalr"],"created_at":"2025-01-23T19:44:42.349Z","updated_at":"2025-04-23T06:49:17.744Z","avatar_url":"https://github.com/rafiulgits.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv\u003e\n\t\u003cp align=\"center\"\u003e\u003cimg src=\"./docs/images/logo.svg\" /\u003e\u003c/p\u003e\n   \t\u003ch2 align=\"center\"\u003eA cloud based IoT solution\u003c/h2\u003e\n\u003c/div\u003e\n\nIotHub provides an abstract solution of any IoT infrastructure including Broker system, API management, Authentication, Agent management system, so that it can be extended to any preferable IoT solution like  **home automation system, supply chain management**.\n\n\n\n[Documentation](https://rafiulgits.github.io/IotHub)\n\n\n\n****\n\n### Solution Structure\n\n* **IotHub.Agent**\n\n  A .NET web project to establish the channel between `MQTT` broker and `SignalR` broker. This agent will publish all `MQTT` broker messages to `SignalR` clients  (dashboard, control panel) and send all commands from `SignalR` clients to `MQTT` clients. Agent is using [MQTTnet](https://github.com/chkr1011/MQTTnet)  `managed client` to connect with `MQTT` broker.\n\n* **IotHub.API**\n\n  A .NET web API project to provide and manage all data sources of the solution. This project use.\n\n* **IotHub.Broker**\n\n  A .NET web project to establish a MQTT broker server. Broker is using [MQTTnet](https://github.com/chkr1011/MQTTnet) `server`.\n\n* **IotHub.Common**\n\n  A .NET classlib project to provide all common models, enums, exceptions and other stuffs. \n\n* **IotHub.DataTransferObject**\n\n  A .NET classlib project, using to transfer data from service layer to service, controller and other service consumers.\n\n* **IotHub.DB**\n\n  A .NET classlib project, to provide all database context and settings. Solution is using `MongoDB` as primary database. \n\n* **IotHub.DomianModels**\n\n  A .NET classlib project, to provide domain level models.\n\n* **IotHub.Repositories**\n\n  A .NET classlib project, to communicate with database or data source and response in domain level. Only `IotHub.Services` have the access to use repository to provide a security level to access domain models.\n\n* **IotHub.Services**\n\n  A .NET classlib project, to provide all common services e.g authentication service, user management service, profile management services.\n\n\n\n\n\n\n\u003cdiv\u003e\n    \u003cp align=\"center\"\u003e\n        \u003cimg src=\"./docs/images/solution_architecture.svg\" /\u003e\n    \u003c/p\u003e\n    \u003cbr/\u003e\n  \t\u003ch6 align=\"center\"\u003eSolution Architecture\u003c/h6\u003e\n\u003c/div\u003e\n\n\n\n***\n\n\n\n\u003cdiv\u003e\n    \u003cp align=\"center\"\u003e\n        \u003cimg src=\"./docs/images/broker_architecture.svg\" /\u003e\n    \u003c/p\u003e\n    \u003cbr/\u003e\n  \t\u003ch6 align=\"center\"\u003eBroker Architecture\u003c/h6\u003e\n\u003c/div\u003e\n\n\n\n***\n\n### How to use (development)\n\nVery first clone the project using `git clone https://github.com/rafiulgits/IotHub.git` or download the project by clicking on download button.\n\n \n\n**Required Environments**\n\n* .NET Core 3.1 or later\n* MongoDB\n\n\n\n**Execution**\n\n* Build the solution by `dotnet build`\n* Go to `src/IotHub.API` and from `appsettings.json` set your internal custom credential and use this credential create some new users (including agent one) and profiles\n* Run the `src/IotHub.Broker` development server by `dotnet watch run`\n* Go to `src/IotHub.Agent` , set agent credentials that you created earlier  and run the development server by `dotnet watch run`\n\n\n\nDevelopment environment is ready to use!\n\nFor testing with MQTT clients, [MQTT fx](https://mqttfx.jensd.de/index.php/download) is a good solution. [iothub-dashboard](https://github.com/rafiulgits/iothub-dashboard) is a Reactive example dashboard that will help to find out how to use IotHub solution.\n\n\n\n***\n\n\n\n### Full Documentations\n\n* [IotHub.Agent Doc](./docs/agent_doc.md)\n\n* [IotHub.Broker Doc](./docs/broker_doc.md)\n\n* [IotHub.API Doc](./docs/api_doc.md)\n\n***\n\n\n\n## License\n\nThis repository is licensed with the [MIT](./LICENSE) license.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frafiulgits%2Fiothub","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frafiulgits%2Fiothub","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frafiulgits%2Fiothub/lists"}