Background¶
Nova Labs announces events and registers participants with Meetup.com. Nova Labs display event schedules and other information with Xibo. Meetup2xibo replaces a manual process for downloading Meetup.com event information into Xibo.
The Players¶
Nova Labs is a makerspace in Reston, Virginia with over 300 members (as of April 2019). Nova Labs members can access a woodshop, a metal shop, laser cutters, 3D printers, an electronics bench, sewing and embroidery machines, vinyl cutters, a blacksmithing forge, and many other maker tools. To build communities of makers, Nova Labs offers a busy schedule of classes, meetings, workshops, and other events to its members and guests.
Meetup.com is a web-based service that helps organize physical events for people with similar interests. Meetup.com maintains a database of events, provides event web pages, and handles attendee registration details. Equally important, Meetup.com suggests other related events to participants, helping event organizers to reach potential new attendees.
Nova Labs maintains its full calendar of events on Meetup.com. Figure 1 shows the Meetup.com calendar for one week of Nova Labs events.
Xibo is an open source, web based, digital signage system. The Xibo CMS allows administrators to design sign layouts and schedule them on sign displays. The Xibo CMS is written in PHP and stores data in a MySQL database. Xibo client software runs on Windows- or Android-based compters connected to display monitors.
Nova Labs installed Xibo in August 2017 to control sign display monitors at the entrance door, the front desk, and elsewhere. Nova Labs has created dozens of sign layouts including a daily agenda (Figure 2), event announcements, and photos of past activities.
The Manual Process¶
For 18 months, Nova Labs administrators copied event data from Meetup.com to Xibo using a manual process.
Once or twice a week, a Xibo administrator used a web browser to request event data from Meetup.com’s API. Meetup.com provided for 200 current and upcoming events. The JSON formatted data was saved to a file. Figure 3 shows an example of the JSON data.
The Xibo administrator then ran a 70-line Python script to extract and convert pertinent information from the JSON file. The script saved the extracted information in a CSV formatted file. The administrator could open the file with Microcoft Excel to review the conversion and correct errors. Figure 4 shows an example of the converted data.
The Xibo admininstator used a web browser to import the CSV formatted event data into a Xibo CMS dataset, replacing all previous data. Xibo displayed the import dialog box shown in Figure 5. The administrator had to check certain boxes and correct the column order before uploading the file.
The Xibo admininstrator completed the process by reviewing the event data in the Xibo dataset. Figure 6 shows how Xibo displays event data for review. Xibo computes rightmost three field (start time, days till start, and minutes past end). The administrator can click on any row to edit the data.
Lessons Learned¶
Nova Labs members were pleased with the Xibo displays of event agendas.
Members were disappointed that the displayed agendas often were out-of-date compared with Meetup.com. The twice-weekly manual process could not keep up with the dozen or more Meetup.com changes entered by event administrators each day. For example, when an event was assigned to a different room shortly before the start time, Meetup.com would show the new room assignment, but the Xibo still displayed the old location.
Xibo administrators had to precisely follow the manual process. Occasional mistakes led to outdated events getting loaded into Xibo.
Xibo administrators had to repeatedly correct some faulty data entered into Meetup.com. Some events included variations on room names. Occasionally an event showed no location at all. The Python script grew to accomodate frequently needed event edits and provide default values.
Eventually the timeliness concerns and the tediousness of the manual process motivated the development of an automated solution, meetup2xibo.