Skip to content
Regina edited this page Sep 14, 2015 · 25 revisions

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

Table of Contents

Revision History

Revision Date Author Notes
1.0 07/28/2015 EKI Initial Version

Acceptance

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

Background and Overview

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.

Document Purpose

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.

System Access

OpenGrid has to be customized to an end user security systems in order to gain access.

User Roles

Functional Requirements Ref: 2.1

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.

Login/Logout

Functional Requirements Ref: 2.2.1-2.2.4, 2.2.6

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.

Session Timeout

Functional Requirements Ref: 2.2.5

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**

Application Home/Landing Page

Page Layout

Functional Requirements Ref: 2.3.1-2.3.2

The main application page is shown below.

![](https://github.com/Chicago/opengrid/blob/master/docs/media/image33.png) ) ![](https://github.com/Chicago/opengrid/blob/master/docs/media/image7.png)

**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)

Map

Base Map

Functional Requirements Ref: 2.8.1.1-2.8.1.2

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.

![](https://github.com/Chicago/opengrid/blob/master/docs/media/image8.png)

**Figure 5. Selecting Aerial View from the Layer Control**

#### Layers
Functional Requirements Ref: 2.8.1.3-2.8.1.5

In 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.

Map Navigation

Functional Requirements Ref: 2.9

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.

Measurement Tools

Functional Requirements Ref: 2.15

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

![](https://github.com/Chicago/opengrid/blob/master/docs/media/image9.png)

**Figure 6. Measuring an Area Using Polygon Tool**

Queries

Quick Search

Functional Requirements Ref: 2.12.4, 2.4.1

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>&lt;latitude&gt;, &lt;longitude&gt;</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>&lt;name of place&gt;</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 &lt;keyword&gt;</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 &lt;zip code&gt;</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.

Advanced Search

Functional Requirements Ref: 2.4, 2.10, 2.11-2.12 excluding 2.12.4

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.

Saved Queries

Functional Requirements Ref: 2.13

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.

Data Views

Functional Requirements Ref: 2.14

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.

Map View

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.
Tabular/Grid View

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**

Heat Map View

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**

Graph/Chart View

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**

Tile Map View

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.

Clearing Advanced Search Results

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

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

User Administration

Functional Requirements Ref: 2.16

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).

Group Administration

Functional Requirements Ref: 2.18-2.19

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

![](https://github.com/Chicago/opengrid/blob/master/docs/media/image25.png) ![](https://github.com/Chicago/opengrid/blob/master/docs/media/image26.png)

**Figure 16. Manage Groups Screen**

  • Add one or more owners to a group
![](https://github.com/Chicago/opengrid/blob/master/docs/media/image27.png) ![](https://github.com/Chicago/opengrid/blob/master/docs/media/image28.png)

**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)

![](https://github.com/Chicago/opengrid/blob/master/docs/media/image29.png) ![](https://github.com/Chicago/opengrid/blob/master/docs/media/image30.png)

**Figure 18. Manage Alerts Screen**

System Help

Functional Requirements Ref: 2.20

The System Help will cover a list of topics as the current OpenGrid application. Relevant screens will be refreshed from the OpenGrid 1.0.


Back to Top

Weekly meeting notes

Roadmap proposals

Scope and Planning

Clone this wiki locally