In this project we would like you to develop an Ruby on Rails application to manager LoRaWan nodes. For more information about LoRa check this website: [url removed, login to view]
The nodes will be communicating with an existing network infrastructure and server ([url removed, login to view]).
The RoR application needs to communicate with this server using the JSON-RPC API as described in the previous link. (we can provide a live test server) Besides the node information that will be provided using the LoRa server API, additional information needs to be stored in a database.
The idea is that a user is able to create a project instance where he or she can assign nodes to. The nodes can then be enriched with more information and placed on a map that the user can import.
This will be the first part of a larger project where we want to add more functionality. For instance in the next part we would like to show real-time information from the nodes in the RoR application using a MQTT broker and the ability to send data to the nodes also using MQTT.
Tests should be made and Bootstrap can be used for the layout.
The RoR application needs to have the following functionality/requirements:
- An admin section:
- Ability to manager (CRUD) LoRa applications and the nodes on the LoRa server (see API docs)
- Ability to manage (CRUD) users accounts (Devise gem)
- Ability to assign nodes to users
- A user section:
- List the nodes by DevEUI that are not assign to a project. In this fase only the DevEUI value from the nodes should be visible
- Ability to search the nodes based on the DevEUI value
- Ability to manage (CRUD) projects. Projects have a name, phase and city value
- Ability to assign nodes to a project
- Ability to import maps (JPG, PNG, PDF) per project
- Ability to show the maps and place nodes on a map using drag & drop
- Ability to enrich the nodes that are assigned to a project with additional information: street, building number, floor and room
- Ability to view the node information when clicked on via the map
- When a project is deleted the nodes will placed in the list of unassigned nodes and the addition node data needs to be deleted as well.