An electron app to emulate an Internet of Things (IoT) space. Made as part of the research paper "E-IoT: Emulator to Develop and Test IoT Application" by "Ahmed E. Khaled, et al." at Northeastern Illinois University.
The project is split into various folders based on their functionality.
/
The root directory contains the starting point for the Electron app, including the package information and commands to start the application using npm
. The file main.js
(...)
/assets/
The assets directory contains the bootstrap files and other important files for the interface!
/components/
The components directory includes folders used to create and delete virtual machine
-
/create-vm-dialog/
This folder contains HTML and CSS code to create virtual machine. Documents folder contains a folder called 'Vagrant'. It contains all the sub-directories of the virtual machines. -
/delete-vm-dialog/
This folder contains HTML and CSS code to delete virtual machine. The virtual machine operating system sub-directory is deleted upon request. -
/Pages/
The pages directory incldues three sub foler. These folder hold the JS and HTML files for each and every tab in the interface
/editor/
The editor sub-directory within pages contains JS, HTML and CSS folder to the editor tab. The editor tab is used to create or edit programs. It is easy access tool to edit your code before uploading it for testing
/index/
The index sub-directory within pages contains HTML and CSS for the tab itself. The HTML code is within these sub-directories
/spaceman-assets/
The spaceman-assets sub-directory within pages contain the code for the smart space visualizer's "space manager". The space manager contains the webpage with illustrations for representing the smart devices, allowing the user to visualize the smart space and interact with them. The current version of the space manager does not allow the user to connect smart devices with each other, or change their statuses. The user can (by interacting with the GUI) add comments to each device and modify the name given to it, and drag the devices around, etc. (Although, if they are familiar with the API/functions provided by SpaceManager, they can manipulate the devices in all sorts of way using console commands)
Within the directory you have a self-contained HTML page, JS files, and CSS required to use the visualizer via browser yourself if you serve that folder to a browser.
/tester/
The tester sub-directory within pages is the main folder of this interface. This folder contains JS, HTML and CSS of the tester tab. The tester tab is divided into three sections. The first section is used to select and upload the program to virtual machine. The second part is where the output of the program is written. The third part utilizes the spaceman-assets to create a graphical user interface. It allows your to select LED and Sensor to be utilized for the program.
- NodeJS: Link. For building & running the emulator GUI.
- Vagrant: Link. For creating the virutal machines for operating systems like RaspbianOS that the emulator interfaces with.
- Virtual Box Link. Virtual Box is used in the background to host the virtual machines.
- Download and install NodeJS, Vagrant and Virtual box
- Clone the code from this repo using:
git clone https://github.com/sebinsuresh/smart-device-emulator.git
- Open terminal or command prompt.
- Locate to the folder "smart-devices-emulator".
- Run "npm install".
- Now execute it by running "npm start"
- Download and install NodeJS, Vagrant and Virtual box
- Download Smart devices and Emulator from the website.
- Follow the instructions to install it.
- Run the application.
- [email protected] Ahmed Khaled, CS department at Northeastern Illinois University.
- [email protected] Mohammed Ashfaq, Northeastern Illinois University.
- [email protected] Sebin Puthenthara Suresh, Northeastern Illinois University.