Call for Proposals - Administrative & User Facing Application

M-Lab invites bids for contractual services to develop an Administration & User Facing Application for our grant sub-award from Simmons University, “Measuring Library Broadband Networks for the National Digital Platform”, (award #LG-71-18-0110-18) from by the Institute of Museum and Library Services (IMLS) National Leadership Grant for Libraries program.

Under this program, M-Lab will design and produce an open source, replicable broadband measurement platform consisting of three primary components:

  • IoT Device Management Platform
  • Measurement System containerized code
  • Administration & User Facing Application

This call solicits proposals for the Administration & User Facing Application component.

Proposal Submission and Project Timeline

Please send us your proposals to contact@measurementlab.net by March 31st, 2019 for full consideration. Proposals will be reviewed as they are received.

The expected timeline for this project is March 2019 - June 2019, following the schedule below:

  • Mid-to-late March 2019 - Receive and review proposals, select contractor, open contract
  • April - May 2019 - Development of Administrative & User Facing Application, and iterative changes in coordination with UI/UX and project team
  • June 2019 - Acceptance testing and completion

Scope of Project Work

The Administration & User Facing Application will be a web-based user management tool using Flask or other suitable web framework. This application should be deployable on a virtual machine within a cloud provider like Google Cloud, Linode, AWS, Azure or Heroku. It may make sense to compartmentalize the components of the application to be run individually or as a single application.

We envision the Administration & User Facing Application will consist of the following general components:

  • User Management Tools - A website portal for users to interact with data generated by devices
  • Data Management Tools
  • Data Analysis & Visualization Tools - A component of the User Portal, specifically the visualizations of data being collected by devices, as well as other sources of data

User Management Tools

Required:

  • User login service, providing options for logins including Oauth providers (GSuite, etc.) or local accounts only. The login service should be single sign on across all three components of the Administration & User Facing Application
  • Provides multiple roles for authorizing users’ access (admin, user)

Nice to have:

  • Integrate with the IoT Device Management Platform (e.g. API or SDK) to
    • Add a new device to the platform, configuring the base OS image & provisioning the new device
    • Customize the device configuration, e.g. assign environment variables to devices, configure measurement devices, select which measurement tests to run on specific devices, etc.

Data Management Tools

Required:

  • A data store: The IoT Device code currently outputs the data from the measurements in JSON. This system can either leverage the existing data formats, or parse the raw data into a database
  • Support for backing up the data to another device or network location

Nice to have:

  • Ability to add other data sources than the data collected by the IoT devices, e.g. through a plugin architecture to support connections to other network systems (i.e.: SNMP, Netflow) or the ability to upload this data

Data Analysis & Visualization Tool

With support from the project team, develop a series of usable data visualization and analysis tools (e.g. charts, annotation, data entry) for measurements and other data collected by the platform. As part of this project, the core team will be working with users to develop needs and user workflows through a human-centered design process, which will provide the information for the interface needs. We expect this process to be iterative, with feedback from users fed back to the project team and selected contractor. Based on initial workshops with users, the following needs have been identified, but these are likely to evolve as the research continues:

Required:

  • Visualizations of test data from NDT, Speedtest.net, and DASH tests
    • Actionable, contextual visualization accessible to non technical users
    • Selectable date ranges
    • Metrics to be visualized include:
      • NDT & Speedtest.net
        • Download and upload speeds in Mbps
        • Latency (RTT)
        • Jitter
        • Packet loss
      • DASH
        • Connect latency
        • Median bitrate
        • Min. playout delay
    • Visualization and comparison of test data with SNMP or Netflow data from plugin, if available
    • Comparison of test data with regional aggregate M-Lab data
    • Data export function - ability to export all data, combinations of selected data, or generate reports

Nice to have:

  • Data annotation function - ability to annotate views of time series data with local/external events or other information
  • Report generation function - ability to assemble data from various sources (measured, internally uploaded, annotations/notes, external information, etc.) into downloadable reports
  • Identify and import, or use data feeds from data sources about overall Internet health and status, to identify externalities

Resources Available

Appendix - Complete Measurement System Description

Under this program, M-Lab will design and produce an open source, replicable broadband measurement platform consisting of three primary components:

  • IoT Device Management Platform
  • Measurement System containerized code
  • Administration & User Facing Application

While this call seeks proposals for the Administration & User Facing Application, we present a more complete system description in this appendix to aide developers who may submit bids in order to understand how this component fits within the complete system.

IoT Device Management Platform

The program team has selected Balena Cloud to provision and manage devices for this project. Program staff are also evaluating the recently released OpenBalena self-hosted server as a functional replacement for Balena.io’s vendor hosted service.

We envision a complete broadband measurement system that will operate with either the Balena Cloud hosted service, or with a self-hosted OpenBalena server. The image below represents the completed system:

IMLS Proposed Broadband Measurement System

As described in the system diagram above, the Balena Cloud service or the balena-cli is used to register and configure new project devices, configure base OS images to be flashed onto each device’s SD card, push and update code running on remote devices, and to manage the entire device fleet.

Measurement System containerized code

The measurement system code running in each device’s application container includes measurement tests that are run from each provisioned device using a Python wrapper script. The tests we intend to run are, from Measurement Kit: NDT, Neubot DASH, Paris Traceroute, and this open source Speedtest.net test. Results from each test are stored in JSON format.

Administration & User Facing Application

Described in full in the section above, Scope of Project Work.

Back to Top