The Assignment - Develop an Asset Condition Assessment Tool
Develop a Condition Assessment App which has two components
- An App, which, depending on where it is run will show:
o A condition assessment App that runs on a phone (using Bootstrap) and allows the user to capture the condition of an asset
o An asset location setting App for use in a browser (using Bootstrap) and allows the user to put a new asset on the map
- A data API that saves the Asset locations to the database from the asset location App and serves the asset locations to the condition App. The condition App then records the condition of each asset and saves it to the database.
All assets are located as POINTS on the map
Condition App/Asset Location App - (Leaflet/Bootstrap)
This App should detect whether you are opening it on a mobile phone or on a larger screen. If it is the latter then the asset location version is launched, if the former then the condition App is launched. Both versions (known as the Condition App and the Asset Location App) should make use of the same underlying code as well as including functionality that is only used in one of the versions - _i.e. they are really one App.
Condition App
Once launched, the App should track the movement of the user. When they are close to a given asset point, the App should prompt the user to answer a multiple-choice question about the condition. The form to assess the asset condition should look like this (using radio buttons for the condition options):
Asset Name: XXX Asset ID: XXXX
- Element is in very good condition
- Some aesthetic defects, needs minor repair
- Functional degradation of some parts, needs maintenance
- Not working and maintenance must be done as soon as reasonably possible
- Not working and needs immediate, urgent maintenance
-
<< SAVE CONDITION BUTTON>>
The user will then select the condition of the asset from the list, which will be saved to the database. When the user moves to a different location, the condition of a different asset can be recorded.
NB: one asset can have many condition reports. User ID of the person reporting the condition must also be saved.
Asset Location App
A browser-based App (Web Application) that will allow the system to do the following:
1. Create a new asset by clicking on a point on a Leaflet map and adding the asset and required details. The asset should be stored in a database via a RESTful Data API. Details for the asset are as follows:
Asset Name
Installation Date
Note that the App (both for mobile and large screen) MUST use the Bootstrap template we use in class
You must use the provided database tables to store your asset locations and condition values.
NodeJS RESTful Data API (NodeJS Express)
The asset locations (points) created in the Asset Location App should be stored in a database, and read from the database by the Condition App when the Condition App is launched. The answers (condition values) that the user gives should also be uploaded back to the database. You are therefore required to write the RESTful Data API (node.js) code to do the following:
1. Allows an administrator to store a list of asset points and details to a database, via the Asset location App (when the screen is browser sized)
2. Generates the list of Asset locations and details to send to the Condition App when the Condition App is launched (i.e. when the screen is mobile sized)
3. Stores the condition that are sent from the condition App
4. Includes the code you need to support any advanced functionality you develop (see marking scheme below)
The required API end points must be used EXACTLY as given in the SQL file that goes with this assignment.
Note: You may choose the assets that your system includes and test them at your home location. We will add additional assets when we are testing your code. If it is safe to do so, you should select locations that are OUTSIDE to maximize the opportunity for getting a good GPS fix.
Anyone using your App should only be able to create condition reports for assets that you have created ? _you should use your user_id and the provided SQL to ensure that this is the case.