A SaaS to concentrate all glucose measures using node-RED IBM message broker and MQTT IBM protocol to comunicate with the Glukose Gateways.
The Glukose Cloud Architecture:
The Glukose Cloud node-RED Designer:
- NodeJS: Event-driven I/O server-side JavaScript environment based on V8. Includes API documentation, change-log, examples and announcements.
- ExpressJS: Express is a minimal and flexible Node.js web application framework that provides a robust set of features for web and mobile applications.
- MongoDb:MongoDB is the next-generation database that lets you create applications never before possible.
- Node-Red: A visual tool for wiring the Internet of Things.
- Mosca: MQTT broker as a module http://mosca.io
- Bunyan: a simple and fast JSON logging module for node.js services
- Loopback: LoopBack is a highly-extensible, open-source Node.js framework. Compare with other frameworks. Quickly create dynamic end-to-end REST APIs.
- socket.io: Socket.IO enables real-time bidirectional event-based communication.
- MomentJs: Parse, validate, manipulate, and display dates in JavaScript.
- RequireJS: RequireJS is a JavaScript file and module loader.
- Require DomReady: An AMD loader plugin for detecting DOM ready.
- JQuery: jQuery: The Write Less, Do More, JavaScript Library.
- JQuery UI: jQuery UI is a curated set of user interface interactions, effects, widgets, and themes built on top of the jQuery JavaScript Library.
- Angular: AngularJS is what HTML would have been, had it been designed for building web-apps.
- Angular Couch Potato: Lazy-Load and Register Components in AngularJS Applications.
- Angular Resource: A factory which creates a resource object that lets you interact with RESTful server-side data sources.
- Angular UI Router: The de-facto solution to flexible routing with nested views in AngularJS.
- Angular Animate: AngularJS provides animation hooks for common directives.
- Angular Bootstrap: Bootstrap components written in pure AngularJS by the AngularUI Team.
- angular-socket-io: Socket.IO component for AngularJS.
- angular-toastr:Angular port of CodeSeven/toastr.
- socket.io: Socket.IO enables real-time bidirectional event-based communication.
- Bootstrap: Bootstrap, a sleek, intuitive, and powerful mobile first front-end framework for faster and easier web development.
- DarkVelvet: Free UI Kits built on Bootstrap for any developer that wants to build a cool looking and functional website.
- MomentJs: Parse, validate, manipulate, and display dates in JavaScript.
- Datatable: DataTables is a plug-in for the jQuery Javascript library.
Install mosca message broker with bunyan logger and start it:
npm install mosca bunyan -g
mosca -v | bunyan
+++.+++: ,+++ +++; '+++ +++.
++.+++.++ ++.++ ++,'+ `+',++ ++,++
+` +, +: .+ .+ +; +; '+ '+ +` +`
+` +. +: ,+ `+ ++ +; '+ ;+ + +.
+` +. +: ,+ `+ +' '+ + +.
+` +. +: ,+ `+ :+. '+ +++++.
+` +. +: ,+ `+ ++ '+ +++++.
+` +. +: ,+ `+ ++ '+ + +.
+` +. +: ,+ `+ +: +: '+ ;+ + +.
+` +. +: .+ .+ +; +; '+ '+ + +.
+` +. +: ++;++ ++'++ ++'+' + +.
+` +. +: +++ +++. ,++' + +.
[2016-03-30T12:56:57.005Z] INFO: mosca/14565 on miguel-Dell-System-XPS-L502X: server started (mqtt=1883)
Execute npm to install node packages:
npm install
Execute bower to install ui packages:
bower install
Access Web Glukose
http://localhost:4000
Access Web Glukose JSON API Back-end
http://localhost:4000/export
Access Node-Red Web designer
http://localhost:4000/red
Copy and import this flow from node-red import clipboard
[{"id":"4d1060c0.b2efa","type":"mqtt-broker","z":"f2181939.0de7e8","broker":"localhost","port":"1883","clientid":"","usetls":false,"verifyservercert":true,"compatmode":true,"keepalive":"60","cleansession":true,"willTopic":"","willQos":"0","willRetain":"false","willPayload":"","birthTopic":"","birthQos":"0","birthRetain":"false","birthPayload":""},{"id":"9a3f0709.65c0f8","type":"debug","z":"f2181939.0de7e8","name":"out debug","active":true,"console":"false","complete":"payload","x":457,"y":60,"wires":[]},{"id":"ec611d7f.139ee","type":"catch","z":"f2181939.0de7e8","name":"","scope":null,"x":190,"y":222,"wires":[["bb6a5bca.4495a8"]]},{"id":"bb6a5bca.4495a8","type":"debug","z":"f2181939.0de7e8","name":"error","active":true,"console":"false","complete":"payload","x":356,"y":222,"wires":[]},{"id":"cbec3d13.3413c","type":"function","z":"f2181939.0de7e8","name":"persist","func":"console.log('Start persist node');\n\nvar loopback = context.global.loopback;\nvar Device = loopback.models.Device;\n\n// convert from string to JSON\nmsg.payload = JSON.parse(msg.payload);\n\nDevice.registerMeasure(msg.payload, function(err, device) {\n if (err) node.error(\"registerMeasure device error\", msg);\n \n node.send(msg);\n});\n \nreturn;","outputs":1,"noerr":0,"x":266,"y":60,"wires":[["9a3f0709.65c0f8"]]},{"id":"682e54c8.97d1ac","type":"mqtt in","z":"f2181939.0de7e8","name":"glukose mqtt","topic":"glukose","broker":"4d1060c0.b2efa","x":110,"y":60,"wires":[["cbec3d13.3413c"]]}]
The source code is released under Apache 2.0.