Retail Marketing Experiences
By David Nimon
Onsite real time retail display management and data collection.
Online CMS portal to control marketing displays remotely. Each marketing display is supported by a control unit (typically an Intel NUC or Raspberry PI type device). During a multi-year engagement, we were responsible for all design, implementation and support for both the CMS and the control units.
The combined purpose of the portal and control units is to help businesses with physical storefronts market their products through the use of various types of electronic displays (projectors, mounted displays, custom tower devices).
Details:
- Developed backend architecture using Laravel, a framework for PHP in conjunction with a frontend using React & React Router, coupled with Bootstrap components
- Built a React component wrapper around the React Data Table component, improving upon tech debt by reducing code duplication
- Built a conversion system for videos uploaded by customers to run on the displays controlled by the CMS using two architectures:
- A python script designed to run FFmpeg & pushing the result to a S3 bucket
- Then switching to AWS Elemental MediaConvert for increased performance
- Designed the application running on the Linux-based control unit managing the media displays, initially using Electron, with HTML/Javascript and Node components
- Developed a second version of the control unit application, combining a node backend and with a Chrome instance, both running on the control unit and supporting GPU rendering using a fault tolerant WebSocket communication protocol between the two layers
- Designed a novel communication method between the CMS server and the media control unit that replaced a RabbitMQ server with a reliable protocol based on interfacing all control units to a pair of S3 buckets, providing improved scaling, performance, and fault tolerance
- Built an automation subsystem to manage (create and deploy) OpenVPN profiles to support remote debugging of thousands of media control units via SSH and remote login
- Migrated CMS deployment from direct component installations (e.g., PHP, gulp) on the EC2 to a newer version that used Docker Compose on the EC2 instance