-
Notifications
You must be signed in to change notification settings - Fork 53
Functional Design
OpenGrid 1.0
Functional Design
Version 1.2
Submitted for Review and Approval To
Department of Innovation & Technology
Submitted By
Electronic Knowledge Interchange
May, 2015
- Revision History
- Background and Overview
- System Access
- Application Home/Landing Page
- Queries
- Administration
- System Help
Revision | Date | Author | Notes |
---|---|---|---|
1.0 | 07/28/2015 | EKI | Initial Version |
The signatures below indicate that the City of Chicago concurs with the functional design described in this document prepared by Electronic Knowledge Interchange.
_____________________________________________________
Department of Innovation & Technology Date
OpenGrid is an enterprise geographical information system. Developed to support situational awareness, incident monitoring and responses, historical data retrieval, and real-time advanced analytics. OpenGrid utilizes MongoDB, a NoSQL database optimized to handle big spatially-enabled data. From the application layer, users may query data by type, time and distance from a point or within a boundary, while retrieving real-time or historical data. Queries and data flow through a web service to ensure data security.
OpenGrid (1.0) has a HTML/JavaScript interface modernized to support usage on mobile devices and terminals in public safety vehicles. The user interface is clean, intuitive, and again, translates well to mobile devices.
This document provides the detailed Functional Design for the OpenGrid 1.0 application. This design document is one of the deliverables in the Design Phase of the project and is the basis for application low-level design.
OpenGrid has to be customized to an end user security systems in order to gain access.
The 5 roles below will be used to restrict user access to certain functions as shown in the table below.
Role Name | Privileges | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Add/Remove Users to AD Group | View Real-time Data | View Non/Near-Real-time Data | Subscribe to Group | Add Group | Modify Group | Add/Remove Group Owner | Modify User Email | Manage Email Alerts | Manage Pending Group Members | Add/Remove Group Member | |
Administrator | √ | √ | √ | √ | √ | √ | √ | √ | √ | √ | √ |
Group Owner | √ | √ | √ | √ | |||||||
Full-access - Real-time (a.k.a. Level 1 Real-time) | √ | √ | |||||||||
Full-access – Reporting (a.k.a. Level 1 - Reporting) | √ | √ |
This is the same way WindyGrid’s user roles are structured today.
When the application is initially opened on the browser and no active OpenGrid 1.0 session exists, a login window will be displayed. See Figure 1 below.
![](https://github.com/Chicago/opengrid/blob/master/docs/media/image3.png)**Figure 1. OpenGrid 1.0 Login Page**
Figure X. Mobile: OpenGrid 1.0 Login Page (Mobile versions of the screens will be provided later)
The Login button will be disabled until both User Name and Password have been entered. When the Login button is clicked, the user credentials will be validated by the system.
If the login failed, an error message will be displayed saying “The login failed due to invalid username/password or you do not have permissions to access the system.” The system will allow the user to enter the user name or password again. (Figure 2)
![](https://github.com/Chicago/opengrid/blob/master/docs/media/image4.png)**Figure 2. Login Error Message**
If the login is successful, the main application page is displayed. See Section 4.1 for more details.
When there has been no server activity on OpenGrid application after 15 minutes, the user will be logged out automatically and a message similar to the one on Figure 3 below will be displayed.
![](https://github.com/Chicago/opengrid/blob/master/docs/media/image5.png)**Figure 3. Message when Session Expires**
![](https://github.com/Chicago/opengrid/blob/master/docs/media/image33.png) ) ![](https://github.com/Chicago/opengrid/blob/master/docs/media/image7.png)The main application page is shown below.
**Figure 4. OpenGrid 1.0 Landing Page**
Page Element # | Element Name/Description |
---|---|
1 | Quick Search box; clicking on the quick hint icon will display a “cheat sheet” with all the available commands and syntax |
2 | Command bar; “Clear Data” will clear the map (enabled only if there is data on the map/table) and table view; “Advanced Search” will bring up the search panel; “Tile Maps” will display list of available tile maps and options and “Manage”, the administration screens. The Manage button is only visible to administrators and group managers. |
3 | User panel, displaying the name of the currently logged in user, system data/time (not based on workstation date/time, source TBD) and Help link. |
4 | Zoom-in/out controls ; Reset zoom ; Geo-location control |
5 | Measurement tools |
6 | Zoom box control ; Full-screen control |
7 | Layer control ; this will let the user switch between Street View and Aerial View and display list of available layers |
8 | Main map display |
9 | Expandable table view panel |
10 | Map attribution; this will display a link for any copyright information, terms of use, etc. |
Figure X. Mobile: OpenGrid 1.0 Main Page (to be supplied later)
![](https://github.com/Chicago/opengrid/blob/master/docs/media/image8.png)The default map view will display the street base layer. Using the map layer control, an aerial view can be instead selected. See figure below.
**Figure 5. Selecting Aerial View from the Layer Control**
#### LayersIn addition to the aerial view, the list of layers will be made available via the Layer Control. The list will be built dynamically based on what is available from the Map Service. Figure 5 above shows the list of available layers as part of the Layer Control.
A dynamic legend will be displayed to indicate what the objects and icons on the map represent, whenever one or more layers are selected. A sample dynamic legend can also be seen in Figure 5 above.
The initial map zoom level is configurable (OpenGrid has been configured to display the entire City Of Chicago by default.). Using the Map Navigation Controls, the user should be able to zoom in/out, pan in any direction and reset the zoom level to default. Once the map zoom has been customized by the user, it will not reset to the default zoom until the user logs out and logs back in or the Reset Zoom icon is clicked.
The user should also be able to zoom in on a specific rectangular area by using the Zoom-In navigation tool. The Current Location tool can be used to zoom where the user is currently located by using the Location Services on the mobile device or laptop/workstation, if available and with the user’s permission.
By Clicking on the Measure button on the command bar, measurement tools can be turned on to enable measurement of the following:
-
Distance between points
-
Distance around a point
**Figure 6. Measuring an Area Using Polygon Tool**
A Quick Search box can be used to perform common searches that will support the following commands/inputs:
<tr>
<td>Latitude and Longitude</td> <TD>Displays a marker to show location of latitude and longitude entered</TD> <TD><latitude>, <longitude></TD> <TD>41.8270, -87.6423</TD> <TD>N/A; simply displayed as marker on the map</TD>
</tr>
<tr>
<td>Place Name</td> <TD>Shows location of the place specified</TD> <TD><name of place></TD> <TD>Daley Center</TD> <TD>N/A; simply displayed as marker on the map</TD>
</tr>
<tr>
<td>Tweets</td> <TD>Displays recent tweets matching keyword, if provided. Keyword can be a bareword or a double-quoted set of words.</TD> <TD>tweet <keyword></TD> <TD>tweet</TD> <TD><ul><li>Date</li> <li>Screen Name</li> <li>Text</li> <li>City</li></ul></TD>
</tr>
<tr>
<td>Weather</td> <TD>Displays a point in the middle of the map showing weather information for the zip code</TD> <TD>weather <zip code></TD> <TD>weather 60601</TD> <TD><ul><li>Temperature in (Fahrenheit)</li> <li>Wind</li> <li>Conditions</li> <li>Humidity</li> <li>Forecast</li></ul></TD>
</tr>
Query Type | Description | Command Syntax | Sample | Display Columns on Search Result |
---|---|---|---|---|
Address | Finds the specified address using the Map/GIS Service | <number><direction><streetname> | 50 W. Washington | N/A; simply displayed as marker on the map |
The search results for the above type of search will appear as either points on the map or as custom icons, when applicable (a bus icon for a bus search, for example). Quick search results will also be displayed in the grid section as rows of data. In general, any type of query whether performed via Quick search or Advanced Search will display on both the map and the grid. In some cases, there will only be one row of data on the grid (weather or bus ID search, for example). Quick search results can be cleared/reset by clicking on the Clear Data button from the command bar. This action will also stop all data auto-refresh activities, if any, happening in the background. See Figure 7 below.
Quick searches for the following datasets will be automatically refreshed every set interval depending on the type of data:
- Tweets (30 seconds)
Clearing Quick Search Results
Quick Search results can be cleared/reset by clicking on the Clear Data button from the command bar. This action will also stop all data auto-refresh activities, if any, happening in the background.
![](https://github.com/Chicago/opengrid/blob/master/docs/media/image10.png) ![](https://github.com/Chicago/opengrid/blob/master/docs/media/image11.png)**Figure 7. Quick Search on Tweets**
Popups of tweets will have a link that, when clicked, will open in new browser window so users can see tweeted content, such as articles or photos of a location.
The user must be able to select one or more data sets to include in the search. He/she must also be able to enter a combination of common criteria such as date range and filters specific to the dataset,for example.
To further filter the search results, a geo-spatial filter can be specified by drawing a polygon or selecting one of the pre-defined boundaries listed below and selecting one or more values from the list of valid values:
- ZIP Code
On the advanced search screen, the user must be able to specify if the query will be auto-refreshed and by what interval in seconds (minimum of 20 seconds, maximum of 600 seconds or 10 minutes.).
The user must be able to customize the color, size and opacity of the resulting points.
Finally, a query can be saved along with the selected options on how the points are displayed and any customizations performed by the user to the tabular view e.g. column sizes, column arrangement, etc.
![](https://github.com/Chicago/opengrid/blob/master/docs/media/image12.png) ![](https://github.com/Chicago/opengrid/blob/master/docs/media/image13.png)**Figure 8. Advanced Search Screen**
When a query is submitted, the application will display a message when the query execution times out (after X number of minutes (application-wide setting). It will also display a message when the search service returns no data.
After search criteria has been entered, the user will have the option to save the query by clicking on the Save button. The user can type in a preferred name for the query (a default name of “My Query <mm/dd/yyyy>” will be used but can be replaced). The user will also be given the option to save the query using an existing name (effectively updating the definition of the old query) on the same window. The Cancel button will cancel the save action.
![](https://github.com/Chicago/opengrid/blob/master/docs/media/image14.png) ![](https://github.com/Chicago/opengrid/blob/master/docs/media/image15.png)**Figure 9. Saved Queries Screen**
All previously saved queries are accessible from the Manage Saved Queries tab on the main. When this option is selected, a list of the user’s Saved Queries is displayed where he/she can submit/run, share or delete the query. The name of the query is an active link that will open on the “Build Query” tab when clicked. Queries shared with the user (or groups that the user belongs to) are indicated by the Group icon and cannot be edited, re-shared or deleted.
Running a saved query will invoke the query and used the user options saved along with the search criteria. See also Section 4.3.2 on what user options are saved.
Recently saved queries can also be opened from the Build query tab. Selecting a specific query from the Load Saved Query dropdown will load the saved query. At this point the user can choose to submit the query as-is or update the query definition to add more datasets or change the query filter and save it as a query under a different name.
Query results will be limited to X rows (application-wide configuration, to be determined based on performance testing) per data type. If there are results more than X rows, a message is displayed asking the user to refine the search criteria.
For any spatially relevant dataset, the resulting data points will be displayed as dot/circles on the map, with the user-specified size, color and opacity. Details on the data point will be displayed as the point is clicked. Refer to figure below.
The user will be able to export the map (as displayed, including points, currently selected layers and dynamic legend) as a PDF file by clicking on Export button on the table view panel, and selecting PDF format (Figure 11).
To playback data points over time, from the Advanced Search panel, go to the Data Playback tab. From there the relevant dataset and filters can be selected (similar to Build Query tab with restrictions imposed on dataset selection). Playback will be limited to one day’s worth of data and maximum of X data points per day. (Note that based on performance tests, we will adjust restrictions on the maximum data points that can be retrieved and displayed on the map during payback). When a Data Playback is requested, playback navigation controls become visible. See figure below.
![](https://github.com/Chicago/opengrid/blob/master/docs/media/image16.png)**Figure 10. Map Showing Data Points and Playback Controls**
Playback Controls | |
---|---|
1 – Date Time Display | This will display the date and time as the playback slider is moved (or whenever data is played back) |
2 – Play Button/Time Slider | Play will "animate" the data over time within the day, while the Time Slider will let the user control the time manually. |
A tabular view will be displayed for each result set. The columns displayed will vary by the type of dataset selected. The table columns will be resizable, sortable and can be re-arranged to user’s liking. If there are multiple datasets selected, the tab corresponding to the selected dataset will use the same color as the data point color as selected by the user. (This will help distinguish one dataset of from another of the same type, in cases where more than 1 dataset of the same type is included in the query.)
The user will be able to export the tabular data into a CSV or a XLS/XLSX file by clicking on the Export button and selecting the respective format.
![](https://github.com/Chicago/opengrid/blob/master/docs/media/image17.png) ![](https://github.com/Chicago/opengrid/blob/master/docs/media/image18.png)**Figure 11. Sample Tabular View of Data**
A heat map can be generated on-the-fly based on the data points currently displayed on the map by clicking on the View Heat Map button. The heat map will be based on the density of the data points.
![](https://github.com/Chicago/opengrid/blob/master/docs/media/image19.png) ![](https://github.com/Chicago/opengrid/blob/master/docs/media/image20.png)**Figure 12. Heat map View of Data**
A user must be able to generate a pie, line or bar graph showing the data grouped using a column that the user has selected. The graph can be exported as a PDF file.
![](https://github.com/Chicago/opengrid/blob/master/docs/media/image21.png)**Figure 13. 311 Graph Grouped by Status**
A choropleth map can be generated on-the-fly based on the data currently displayed on the table by clicking on the View Tile Map button. The data will be grouped by the selected predefined boundary from dropdown (as listed on Section 3.3.2) and will be based on the density of the data points. See Figure 11 above.
Advanced Search results can be cleared/reset by clicking on the Clear Data button from the command bar. This action will also stop all data auto-refresh activities, if any, happening in the background.
Administration screens can be accessed by clicking on the “Manage” button on the application command bar. The “Manage” button will be made visible only to Group Owners and Administrators.
A Group Owner will be able to perform the following tasks:
-
Manage email alerts
-
Manage pending group members – approve or deny subscription requests
-
Add/remove group members
In addition to the above tasks, an Administrator will be able to perform the following tasks:
-
Add/Remove users to Active Directory group
-
Add a OpenGrid group
-
Modify an existing OpenGrid group
-
Add/remove group owner
-
Modify user email
On the application’s administration page, users with Administrator role should be able to add and remove users from OpenGrid groups. From the Manage pane, when the Manage Users option is selected from the menu, a user search screen is displayed where users can be searched by typing in the user name (user ID) or given name (will require both First and Last Name).
![](https://github.com/Chicago/opengrid/blob/master/docs/media/image24.png)**Figure 15. Manager Users Screen**
The results will be displayed on a list. From the list, the administrator should be able to do one of the following operations:
a) Add or remove the user to/from a OpenGrid group (Security Group).
The administrator must be able to create a OpenGrid group and manage a group’s membership.
On the group administration screen, the administrator should also be able to:
-
Add a new group
-
Update an existing group
**Figure 16. Manage Groups Screen**
- Add one or more owners to a group
**Figure 17. Manage Group Owners Screen**
-
View and approve/deny user requests to subscribe to a group
-
Update denial email response on-the-fly when denying user subscription requests individually or in bulk.
-
Create email alerts for the group
-
Designate a personal query as a group query
-
View all email alerts and enable/disable one or more alerts at a time (See Manage Alerts screen below)
**Figure 18. Manage Alerts Screen**
The System Help will cover a list of topics as the current
OpenGrid application. Relevant screens will be refreshed from the
OpenGrid 1.0.
- 2020-01-13
- 2019-09-30
- 2019-08-26
- 2019-06-10
- 2019-06-03
- 2019-05-13
- 2019-05-06
- 2019-04-29
- 2019-04-22
- 2019-02-25
- 2019-01-28
- 2019-01-07
- 2018-12-10
- 2018-12-03
- 2018-11-26
- 2018-11-19
- 2018-11-05
- 2018-10-29
- 2018-10-22
- 2018-10-15
- 2018-10-01
- 2018-09-24
- 2018-09-17
- 2018-09-10
- 2018-08-27
- 2018-08-20
- 2018-08-13
- 2018-08-06
- 2018-07-30
- 2018-07-23
- 2018-07-16
- 2018-07-09
- 2018-07-02
- 2018-06-25
- 2018-06-18
- 2018-06-11
- 2018-06-04
- 2018-05-21
- 2018-05-14
- 2018-05-07
- 2018-04-30
- 2018-04-23
- 2018-04-16
- 2018-04-09
- 2018-04-02
- 2018-03-26
- 2018-03-19
- 2018-03-12
- 2018-02-26
- 2018-02-05
- 2018-01-22
- 2018-01-22
- 2017-12-04
- 2017-10-30
- 2017-10-23
- 2017-10-02
- 2017-09-25
- 2017-09-11
- 2017-08-14
- 2017-08-07
- 2017-07-31
- 2017-07-24
- 2017-07-10
- 2017-06-26
- 2017-06-12
- 2017-05-22
- 2017-05-08
- 2017-05-01
- 2017-04-17
- 2017-03-28
- 2017-03-20
- 2017-03-13
- 2017-02-15
- 2017-02-06
- 2017-01-25
- 2017-01-20
- 2017-01-13
- 2017-01-06
- 2016-12-16
- 2016-12-09
- 2016-12-01
- 2016-11-09
- 2016-11-04
- 2016-10-28
- 2016-10-21
- 2016-10-14
- 2016-10-07
- 2016-09-30
- 2016-09-23
- 2016-09-16
- 2016-09-09
- 2016-09-01
- 2016-08-26
- 2016-08-19
- 2016-08-12
- 2016-08-04
- 2016-07-29
- 2016-07-22
- 2016-07-15
- 2016-07-08
- 2016-06-30
- 2016-06-24
- 2016-06-17
- 2016-06-10
- 2016-06-03
- 2016-05-27
- 2016-05-20
- 2016-05-13
- 2016-05-06
- 2016-04-29
- 2016-04-22
- 2016-04-15
- 2016-04-08
- 2016-04-01
- 2016-03-25
- 2016-03-18
- 2016-03-11
- 2016-02-26
- 2016-02-19
- 2016-02-05
- 2016-01-28