My queue is super full (as is most of the other current devs I think), so I thought I’d put this request out there. If you are a javascript/typescript/flutter/angular/dart/react/whatever-you-prefer sort of web frontend dev and want to help out/make a cool new open-source component that you would ‘own’, here’s my proposal:
So the mqtt (and soon the riot.im bridge) stuff has a small server component that uses the MQTT packets from devices that have opted to call in. This means we could do a cool live “map view”, also we could show some live stats on # of nodes connected etc…
I suck a such front-ends (and my queue is full). But if anyone else wanted to make this front end (must be client side javascript when finally built - because our server is currently dumb), I could easily make the following available:
A few REST endpoints that you could http GET to get JSON blobs of interesting server stats, recent public nodes we’ve heard from etc…
A websocket stream of JSON if you wanted a live stream of public text messages and node position messages.
Hosting of your built javascript
No pressure, but I bet it would be a lot of fun. You don’t need to be an expert but at least be a kinda serious about trying to make this go (so I don’t bother making endpoints that aren’t used)
Do we have an existing preferred map service api and /or js map component library to use under the hood?
To be clear, is the scope here to produce a js component that will eventually be consumed by hub.meshtastic or to produce the hub.meshtastic web app itself with said component as a starting point?
I would love to at least help with this effort. I love the idea of a live websocket stream of node packets and that should scale really nicely as the userbase grows. I think some crude mockups / wireframes would go a long way in giving this project a good direction.
Looks very neat, and it seems to have a lot of usage and support. If the end goal is a reusable component for primary usage in the future hub.meshtastic web app, maybe we could use something like this under the hood to create an extensible / customizable web-component?
GoTenna mesh actually has a map interface to display some based information about nodes: https://imeshyou.gotennamesh.com/
I think we can do better than that and show more details about the nodes.
@geeksville, I know we include the node’s hardware now in the packets which will be cool to show, but one other thing that occurred to me this map that would be neat to see… If we can tell if a node is a dedicated relay / repeater somehow. The only way that occurs to me is if its is_router and has a fixed position, but that may be involving too many assumptions.
@sachaw, when you get that scaffolded out and pushed up, I’d love to contribute where you think you can plug me in.
oops the instructions I gave above for building/running the backend locally were slightly wrong. I just added continuous-integration on github to test these new instructions: