Skip to content
This repository has been archived by the owner on Nov 29, 2022. It is now read-only.

Architectural overview

John Tigue edited this page May 24, 2015 · 18 revisions

Introduction

SEANetMap is a join project between M-Lab and Code for Seattle with the goal of developing a liberally licensed, open source codebase for citizens to run broadband network performance tests and compare their results with what other people are experiencing across the area and network providers. The aggregate results dataset is to be publicly available as a social good for further analysis, yet provided in a fashion that respects concerns regarding personally identifiable information.

Initially, the project will be specific to Seattle, yet it is a goal to make the codebase reusable for deployment in other localities.

This document is an architectural overview of the project.

Caution regarding development risks

Even though SEANetMap is a not-for-profit open source project rather than a commercial product, it is intended to be quickly consumed by non-technical end users at a decent volume of traffic. As such it may well be wise to not go further out on any more technology limbs than is required.

Consider a 2015-03-30 article, entitled Choose Boring Technology, which councils caution regarding the explore-versus-exploit trade-offs implicit in architectural choices. Basically, the article provides a list of self-check questions for any architect.

"Let's say every company gets about three innovation tokens. You can spend these however you want, but the supply is fixed for a long while."

This mindset has guided the choices as described in this document, at least for the first major release which is all this document is concerned with.

Limitations

Limitations of the technical solution are enumerated in this section

  • Internet Explorer 8 and below are not supported due to SEANetMap's dependency on AngularJS 1.3.
  • There are currently some AWS dependencies on the sever side as deployed (e.g. Amazon Lambda is use) yet those could easily be rewire to another infrastructure provider context.

Project by component

M-Lab has certainly provided all the basis code needed for a modern looking web site to act as a client of M-Lab's NDT test service and aggregated test results data. In M-Lab's terminology, the codebase that Code for Seattle is working on is called a "portal."

The main goal at this time is to build out a Seattle specific portal. Yet it is very clearly a longer term goal to have a codebase which can easily be deployed by other localities. The Seattle specific site will be useful for Seattle, but might best be viewed as the "pilot system" version 1.0 as we warm up and learn what reusable code will look like and what feature it will have. For example, how will it be white labeled, re-skinned, localized, etc.

Currently, the two codebases provided by M-Lab are still being integrating into the SEANetMap codebase. Those two codebases being:

The only other concretely define novel feature at this time is:

  • a Leaflet map report with test speeds aggregated by Seattle City Council districts

Simply the above two goals with a fully fleshed out dev and deploy process is the current milestone being aimed for. Achieving that would be significant: a new project off the ground, on its own terms, with deployed client and server code. Yet from a longer term perspective that really is only Step One. Although clearly we know where we want to go roughly, many details need to be fleshed out.

For further reading see