We produced applications to allow us to take a feed from the remote DB team, who produced the result input side of the operation and to drive the VizRT lower thirds scene from News graphics. We did this in two parts, mainly. Firstly, a C# app that listened to the feed and gave an API to drive the Viz through shared memory commands. This app then talked to the web interface used by the operator to control the content on the lower third. It controlled the visibility and timing of each of the three sections – the current count of seats, votes, the vidiprinter display of the results coming in and the block showing which states were due to declare in the next time period. The graphic shows the layers on the Viz scene.
We wrote the web interface in React as News graphics are moving to that standard for their other applications. We decided not to stretch our learning to include Redux, but I think we would use that next time, as the application complexity became more involved than first planned. It worked well in the end, although we had the usual confused conversations about corrections and such from the results team. As they were all new to the area, it seems that all the experience of the team was lost as they moved. Perhaps it will be easier for the next election, now that they have this experience. Lots of chat on Slack helped, but we should have had a more consistent set of tests. The C# app used Swagger to produce the API and that worked really well. It can produce a mock interface before the real data is ready, so can be ready for early tests before the full implementation.
Trello was used to track progress. The diagram is below. It shows a slow start, but I was doing Ryder Cup work til week 39 so bear that in mind. Once working on the project, we had steady progress at a good speed. Producers became involved about week 42, hence the spike in requirements. We probably should have limited some of these, but pushed for as much as we could fit in and I think we covered more than they used on the night itself.
There was also a small node.js app to monitor the twitter feed from the neverno cloud. NeverNo gave some CORS errors, so I used node.js to both get around that and to simplify the feed into the web app.