Giter Site home page Giter Site logo

tomeshnet / node-list Goto Github PK

View Code? Open in Web Editor NEW
4.0 6.0 1.0 6.52 MB

The list of all Toronto Community Network nodes

Home Page: https://chat.tomesh.net/#/room/#monitoring:tomesh.net

License: Creative Commons Zero v1.0 Universal

Ruby 10.25% Python 89.75%
json community-networks mesh-networking

node-list's Introduction

node-list

Build Status

This repository contains the list of nodes that are part of the Toronto Community Network. Each node is recorded with geolocation and technical information as according to schema.json. The list of nodes is organized as a JSON file at tomeshnet-node-list.json.

Other Formats

Travis CI converts the tomeshnet-node-list.json) file into several formats.

Currently:

  • Keyhole Markup Language (KML)
    • Good for viewing the nodes in mapping programs like Google Earth/Maps
  • GeoJSON
    • Good for applications that are already expecting GeoJSON, like Leaflet

These files are always available on the Releases page.

Latest Files

If you want to link to the latest version of these files, use these special URLs.

Images

The images folder contains images referenced in tomeshnet-node-list.json. The images are named according to their associated node, with the following naming convention.

Name Description Example
[nodename].[ext] The view from that node sn1a1.jpg
[nodename]-[type].[ext] With picture type sn1a1-hw.jpg for hardware
[nodename]-[type]-[index].[ext] With multiple pictures of the same type sn1a1-hw-2.jpg for the second hardware picture

Validation

In this repository, Travis CI is configured to validate tomeshnet-node-list.json) against schema.json using Ruby JSON Schema Validator. The validation tool currently supports up to JSON Schema Draft 4, so schema files must conform to the Draft 4 standard.

You can use JSON Schema Lint to validate manually.

node-list's People

Contributors

benhylau avatar darkdrgn2k avatar dasanchez avatar dcwalk avatar dependabot[bot] avatar garrying avatar makew0rld avatar shrinks99 avatar thatguy83 avatar wankyoung avatar yurkowashere avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

Forkers

msgpo

node-list's Issues

New Map Submission (mesh-bridlewood)

I would like to add my node to the Toronto Mesh node list. I've provided the data below describing my node.

   {
     "name": "mesh-bridlewood",
     "latitude": 43.7956074,
     "longitude":-79.32741190000002,
     "cardinalDirection": "East",
     "floor": 3,
     "status": "proposed",
     "dateAdded": "2018-09-30T12:51:48.936Z"
   }

Add CONTRIBUTING file

Some ideas on what to include:

  • Where one can generate their node contribution
  • Quick reference of terminology and what is required
  • Code of Conduct
  • Some kind of privacy disclaimer (Node will be visible on a map on tomesh.net etc.)

Define Schema for integration with monitoring (Stage 2)

From #1, Stage 2 discussion with @garrying, @darkdrgn2k @Shrinks99 identified:

  • description (hardware stack, software stack, community)
  • thinking about connecting to dynamic info needed for monitoring

and going to copy in @Pedro-on-a-bike 's proposal for quick reference:

{
    "$schema": "http://json-schema.org/draft-04/schema#",
    "title": "Toronto Mesh Nodes",
    "type": "array",
    "nodes": {
        "title": "Node Detail",
        "type": "object",
        "properties": {
            "name": {
                "type": "string"
            },
            "latitude": {
                "type": "number"
            },
            "longitude": {
                "type": "number"
            },
            "onlineStatus": {
                "type": "string",
                "enum": ["Online", "Offline"]
            },
            "cardinalDirection": {
                "type": "string",
                "enum": ["North", "North East", "East", "South East", "South", "South West", "West", "North West", "Omni"]
            },
            "floor": {
                "type": "integer"
            },
            "meshHardware": {
                "type": "string",
                "enum": ["Low Power Omni", "High Power Directional", "No H/W, Potential Location"]
            },
            "IPV6Address": {
                "type": "string"
            },
            "contact": {
                "type": "string"
            },
            "dateAdded": {
                 "type": "date-time"
            },
        "required": ["name", "nodeLocation", "online", "cardinalDirection", "floor", "meshHardware", "IPV6Address"]
        }
    }
}

Free Geek Node - Information Sheet/Screen

With the new Free Geek node up and running, Free Geek has asked us to prepare a page informing the public of what exactly the node is. They will put it next to the node. This sounds like a great opportunity to get exposed by the public.

Additional we have the option of using one of their may screens to show some information on it during the day.

Thoughts?

Expansion of IPv6 Address

Expand specs IPv6 to include Yggdrsail

Suggestions

Backwards compatibility

   {
     "name": "Free Geek Toronto",
     "latitude": 43.641920944151614,
     "longitude":-79.4252866754631,
     "cardinalDirection": "Omni",
     "floor": 1,
     "status": "active",
     "IPV6Address":"fcc5:480e:20d6:dd89:12e1:19f8:23b9:f6ab",
     "IPV6Yggdrasil":"fcc5:480e:20d6:dd89:12e1:19f8:23b9:f6ab",
     "dateAdded": "2018-04-19T23:52:59.804Z"
},

Little more descriptive

   {
     "name": "Free Geek Toronto",
     "latitude": 43.641920944151614,
     "longitude":-79.4252866754631,
     "cardinalDirection": "Omni",
     "floor": 1,
     "status": "active",
     "IPV6CJDNS": "fcc5:480e:20d6:dd89:12e1:19f8:23b9:f6ab",
     "IPv6Yggdrasil":"fcc5:480e:20d6:dd89:12e1:19f8:23b9:f6ab",
     "dateAdded": "2018-04-19T23:52:59.804Z"
}

Or create an array as such

   {
     "name": "Free Geek Toronto",
     "latitude": 43.641920944151614,
     "longitude":-79.4252866754631,
     "cardinalDirection": "Omni",
     "floor": 1,
     "status": "active",
     "IPV6Address": [
          "cjdns":"fcc5:480e:20d6:dd89:12e1:19f8:23b9:f6ab",
          "yggdrasil":"fcc5:480e:20d6:dd89:12e1:19f8:23b9:f6ab"
      ],
     "dateAdded": "2018-04-19T23:52:59.804Z"
}

New Map Submission (LibreMesh-59bf)

I would like to add my node to the Toronto Mesh node list. I've provided the data below describing my node.

   {
     "name": "LibreMesh-59bf",
     "latitude": 51.960440646753135,
     "longitude":5.966175190145464,
     "cardinalDirection": "Omni",
     "cardinalDirectionAntenna": "Omni",
     "floor": 3,
     "status": "proposed",
     "contact": "[email protected]",
     "IPV6Address": "",
     "dateAdded": "2019-05-16T11:46:05.311Z"
   }

Ps: I'm not from Toronto :)

Switch to json object vs. array in node list

Copying over @garrying & @darkdrgn2k 's comment from #6:

Should this be an object instead of an array? Referencing the schema

@darkdrgn2k

The code i got from Pedro seems to reference it as an array, so the site is coded to look for an array. I would have to go back and change the code to treat it as an object. I ran the Schema and the Node List via http://www.jsonschemavalidator.net/ and it checks out. In fact Javascript and above site errors out parsing { instrad of [

@garrying

We'd need to add keys to the node objects for to it validate. I'd be okay with keeping it as is for now.

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.