A full-stack IoT application : from cross-compiling to user interface - Zhou, Song (Nanyang Technological University, 2021)
The work presented here illustrates a full-stack engineering practice focused on the development of an IoT application based on the WhizNano Gateway. This powerful Gateway is capable of connecting thousands of sensors under the TVWS intranet but lacks the functionality to transfer data to the internet and display it appropriately. Although Azure offers a range of SDKs, they are not sufficient to cover situations where customers do not wish to upload data to any cloud. Therefore, a full-stack IoT application connected to a local server was developed, consisting of a cross-compiled client that acts as a bridge for transferring data between the Internet and the intranet; a Node-Red-based back-end that processes the data and provides several APIs for front-end access accordingly; and a front-end that provides a live web interface built from Vue.js to monitor real-time sensor readings and an interactive management view with history query functionality where users can add/remove sensors to monitor and check past data. Developed primarily in JavaScript and compiled in a Node.js environment, this application works with Mosquitto, Grafana, MySQL and InfluxDB and does not utilise any external or online services, which allows it to be deployed locally. Implementing the concept of separation and encapsulation, this application was structured in a way that was easy to understand and develop further. In addition, the application was packaged by docker technology, making it both ready to present to customers and to develop for colleagues on any ordinary computer without complex configuration.