Code Monkey home page Code Monkey logo

iothub's Introduction

A cloud based IoT solution

IotHub 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.

Documentation


Solution Structure

  • IotHub.Agent

    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 managed client to connect with MQTT broker.

  • IotHub.API

    A .NET web API project to provide and manage all data sources of the solution. This project use.

  • IotHub.Broker

    A .NET web project to establish a MQTT broker server. Broker is using MQTTnet server.

  • IotHub.Common

    A .NET classlib project to provide all common models, enums, exceptions and other stuffs.

  • IotHub.DataTransferObject

    A .NET classlib project, using to transfer data from service layer to service, controller and other service consumers.

  • IotHub.DB

    A .NET classlib project, to provide all database context and settings. Solution is using MongoDB as primary database.

  • IotHub.DomianModels

    A .NET classlib project, to provide domain level models.

  • IotHub.Repositories

    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.

  • IotHub.Services

    A .NET classlib project, to provide all common services e.g authentication service, user management service, profile management services.


Solution Architecture


Broker Architecture

How to use (development)

Very first clone the project using git clone https://github.com/rafiulgits/IotHub.git or download the project by clicking on download button.

Required Environments

  • .NET Core 3.1 or later
  • MongoDB

Execution

  • Build the solution by dotnet build
  • 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
  • Run the src/IotHub.Broker development server by dotnet watch run
  • Go to src/IotHub.Agent , set agent credentials that you created earlier and run the development server by dotnet watch run

Development environment is ready to use!

For testing with MQTT clients, MQTT fx is a good solution. iothub-dashboard is a Reactive example dashboard that will help to find out how to use IotHub solution.


Full Documentations


License

This repository is licensed with the MIT license.

iothub's People

Contributors

rafiulgits avatar sepppenner avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

iothub's Issues

How the agent subscribe broker?

First this is a awesome project ,I really love it
I had few confuse
If any device send message to broker, then how the agent get that message?
In agent project when "MqttClientService.StartAsync" start or what this function mean?

can't work ok

thinks for your's iothub
when i flow doc start application,when i login in websit,it nothing data message, can you share db data?
thinks

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.