Coder Social home page Coder Social logo

projectbismark / networkdashboard Goto Github PK

View Code? Open in Web Editor NEW
10.0 10.0 6.0 4.97 MB

front-end for BISMark

Home Page: http://networkdashboard.org/

License: GNU General Public License v2.0

Python 9.48% Perl 0.04% Shell 0.13% CSS 23.63% JavaScript 66.73%

networkdashboard's Introduction

This repository does not currently contain any code of its own -- it is a container for project-wide issues and wiki pages to be stored. Code is stored in many of the bismark-* repositories.

Wiki: https://github.com/projectbismark/projectbismark/wiki

Project-wide issues: https://github.com/projectbismark/projectbismark/issues

Overall issue dashboard: https://github.com/organizations/projectbismark/dashboard/issues

Project Page and Dataset: http://projectbismark.net.s3.us-east-2.amazonaws.com/index.html

BISmark Poster

networkdashboard's People

Contributors

abhishekjain89 avatar aroberts3 avatar feamster avatar sburnett avatar woodrow avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

networkdashboard's Issues

Merge bismark-authn-server into dashboard

Given that bismark-authn-server already maintains a username and password for BISmark users, we should port all its functionality into dashboard. This would let us share credentials, simplify the user experience, and boost usage of dashboard.

It won't actually be very hard, since we can probably just move files over and update a few URL mappings to avoid collisions.

Dashboard should integrate with bismark-registration

We're about to deploy a registration system for Bismark, which will let users supply information about their ISP the first time they turn on their router. We should use this information to populate the dashboard, so people don't have to enter the same information twice.

Issues for Steve

  1. Fix widgets on map and disable streetview if possible.
  2. Prompt user to edit information if there is none.

GeoIP for dashboard landing page

The pins on the maps should reflect all the routers that are reporting to us. Steve and I are working on the backend, which should be ready very soon; can you work on the geoip module? It should work like this:
a) Look up the IP addresses of all the devices in a table and map it to a location using the geoip db. We're working on populating the table, but the schema is ready; I'll email it to you.
b) The table also has the last reported timestamp. Devices that have reported in the past 6 hours (say) are "active", that have reported in the past week are "dormant" and the others are "inactive". We can have 3 colors for them.
c) Filter out the Gatech IPs.

Display flags when a router changes ISPs

Network Dashboard doesn't care that my router has been behind 4 ISPs. It would be great if we displayed markers on the timeseries graphs when a router changes ISPs. This wouldn't need to be automatic; we could just provide a "I changed ISPs" button where the user could enter the new information and date of the switch.

See http://www.highcharts.com/stock/demo/flags-placement for examples of the kinds of flags I'm talking about.

Strip OW from MAC addresses

On the main page, it would be nice if I could enter something like OW123456789AB,
since that's the format used by other BISmark tools.

Issues for Alfred

  1. Spacing on left-hand box on device page. -done
  2. Gap interpolation
  3. Remove map sidebar w/ locations -done
  4. "Edit" and "download" buttons (sometimes?) are misaligned. -done
  5. Reskin using the projectbismark.net CSS, remove navbar

Edit form should preserve changes when there's an error

What happens now: if the edit form doesn't validate (e.g., you forget to fill in one field), you get a new page with a very generic, unhelpful error message ("One for more fields were invalid.") and must click a button to try again. Once you click the button, all form fields are reverted to their unedited state.

What should happen: if the form doesn't validate, the form should be redisplayed with an error message at the top and brief markers (eg., an X) near each invalid field. The form's contents should exactly match before and after the invalid submission; you shouldn't discard changes.

There are standard techniques for doing this in Django. See https://docs.djangoproject.com/en/dev/topics/forms/

Issues for Abhishek

  1. "Zoom" gets rendered improperly if a graph isn't visible when it's rendered.
  2. Rewrite ORM queries for the graphs
  3. Move legend to the bottom of the graph
  4. Tooltips should not show decimal points
  5. Tooltip should show multiple points

Issues for Sam

  1. Add instructions on index page for viewing your own data via your router

GeoIP should be cached

Right now, every request to the dashboard front page causes:

  1. A new connection to postgres.
  2. Creation of a new pygeoip handle.
  3. Geolocation of all IP addresses, which don't change very often.

This explains why loading the front page takes >10 seconds.

Instead, we should precompute router locations (e.g., every hour) and store them in a database or static file so we can hand them out quickly.

Throughput - target IPs

If I remember right, currently downstream vs upstream tests are differentiated by using the Tech *.173 IP address. Now that we are targeting MLab nodes, this is no longer valid for the new routers. Older routers still follow this.

To fix this - the query needs to check the value in the "direction" column - it's either "up" or "dw"..

Add option to sort

Add option to sort by "Device Count" or "Active". Sometimes I just want to see the countries that have most active devices, because that makes more sense for certain kinda of data.

To implement this -
Make the title("Device count"/"Active") clickable and make it add a parameter to the GET request like ?sort=active&type=desc

Permalinks should load proper graph position

Once you navigate to a particular view on one of the graphs, generating a permalink should store that information. I'm sure there's a permalink generation module for Django to make this easier.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.