Howdy all! I’m working on a dashboard using Electron for our pits and public facing game information. The biggest hurtle I’ve encountered is the lack of Wi-Fi at events. I’m also aware that hotspots are frowned upon and wish to respect that- being said I need to be able to call the FRC (Or Blue Alliance) API to retrieve the information to display. For those that are running dashboards, how have you gotten around this issue? Is there a way to query APIs, or is it not realistic?
What sort of data are you trying to gather? If you are trying to build a list of matches, you can call the API once to return the list of matches and the teams competing in them just in the morning before you leave. The match list is usually fully built before matches even start, and doesn’t often change. To get team stats (OPR, DPR, etc.) you might need to have someone step outside (or somewhere with service or decent Wi-Fi) and quickly call the stats you need, or set it to automatically update. If your data is collected in a web server (or some other cloud storage) you can have the data refresh itself on a regular basis without any sort of human interaction.
For the Django app (it was hosted via SSH and could be accessed with the proper IP address from a computer or cell phone with any service or wifi) I made a function that an admin user could call that queried TBA for the list of teams to populate our teams list, as well as matches so we could see the match number and teams involved. We only really needed to do this one time (at the beginning of the first day) because the actual statistics (points per game, scoring methods, etc.) was gathered by scouters in the stands.
If you host your own webserver, you can create a tableau web connector to the data you have on your webserver that can be a TBA API data or your own scouting data.
If using google sheets, that will usually integrate with any desktop or cloud based data visualization tool you want to use.
That depends on the event. Sometimes in FiM teams do not come to the load-in on Thursday night, because they are relatively close to the venue. They show up on Friday morning. So the schedule can’t be created until everyone gets there. And sometimes it gets delayed a little longer when they are trying to figure out if that last team is coming or not - someone with the team needs to be contacted.
Surely the match list will always be fully built before the first match. It just might be the morning if day 1 instead of the evening of day 0. I think this is still good advice that if you want a match schedule, you can figure out how to pull it once rather than needing a constant connection.
I suspect, though, that OP wants to show results or other real time info.
I didn’t quote enough of Newton’s post. He was saying that you could pull down the data “before you left” in the morning. I was only trying to say that the schedule might not be done until it was near time for matches to start.
This was my goal, real time match events and updates. I have allocated enough resources to get a tethered hotspot. I will still get a schedule and stuff built first in case there is no connection available at all. It’s being written with electron and will be calling The Blue Alliance API as they provide web hooks.
If you get a key to access it (it’s easy to get one from TBA website) you can programmatically call any amount of data from it (there’s a JSON that you can get, which can be called for the actual data collection). That was mostly the whole point of my earlier post. The morning of example was just how it worked for me, and I understand that it might be different for you. I’m just saying if all goes well, you should have the complete match list some time before match 1, regardless of the specifics. The event I was referencing earlier was a district event that the team had to travel to and stay the night at a hotel, so I was able to pull the locked-in match list before leaving it that morning.
Yeah, I’ll probably include that functionality built in as a backup in the case something doesn’t work. I’ve also looked into hosting a full web version of it for my team so we can view a web version of it on mobile with data if all else fails.
Don’t forget about the parents and fans who weren’t able to travel with you to the event. Many of these folks can get bogged down in either the FRC-Events webpage or The Blue Alliance webpage. Having a full web version that is specific to your teams that remote fans can check in on throughout the day will help them follow the action and stay engaged in the event.
An example of a different system that had a positive impact on these remote fans is FRC Queuer. It has been tested at several off season events. One of the teams I know went to one of these events. FRC Queuer allows you to connect the service to a Slack Channel, which the team did. Then parents at home could have the live stream running. When they got notifications that their team was progressing through the queue, they could stop and watch their team in the live stream. The parents and other remote fans loved it because they didn’t have to stay glued to the live stream and they were able to follow the progress of the team without much effort.
I know this wasn’t the intent of your original post. The conversation was drifting this direction. I wanted to highlight how all the work you’re doing can help the people at the event with you; and it can be a great help to your remote fans as well.
Good luck with this. It sounds like a fun project.
Thank you for highlighting this! Given that I’m using electron to write this, it should be no issue to move over to a web application hosted on a dedicated server as a separate measure. It seems that my original plans have evolved to a more advanced way to communicate vital info to those participating and viewing the event. I can’t wait to have something ready for release, but that’s a ways out. If life doesn’t get me caught up in stuff, I should be posting first releases and stiff late February at the latest. I appreciate you greatly!