DJ Drone

home

Admin Interface

The admin interface for DJ Drone allows the organizer of an event running the DJ Drone system to monitor the operation of drones in the air.

Active drones and their flight paths are drawn on the display as red markers and blue lines. Jobs are shown as red music notes, and the event boundaries are shown as red lines. Stats about a drone or a job can be viewed by clicking on the map icon. The event boundary can be edited by clicking on it and then selecting the "Edit (Top/Left/Bottom/Right)" option at the top right of the screen.

The admin interface is intended to give a birdseye view of event operations and aims to allow the organizer of an event to be able to review exactly what every drone is doing at any time.

The interface is implemented in HTML5 and Javascript on the frontend, using the Google maps API. When the user clicks on different elements of the map (drones, jobs, geofence, etc), a small dialog pops up providing information about the object in question. Location/job information is obtained and updated in real-time by periodically polling our internal DJ Drone API, which is implemented on the backend using PHP and MySQLi. Using AJAX calls to the server, we can frequently update the map asynchronously without causing lag in the frontend. Additionally, since polling is done continuously, this allows the interface to recover quickly from any sort of crash or instability in other parts of the system.

The DJ Drone backend is really an interface for our MySQL database. Several PHP scripts form the API by which the database is accessed, allowing the user interface to access a wide variety of data about the system in a generic JSON format that can be easily used to display the information in any way suitable to the user. The MySQL database overall is used to synchronize data not just between the front/backend of the admin interface, but also throughout the rest of the DJ Drone system as well.

The MySQL database contains several tables containing information about events currently using DJDrone, any active jobs, all active drones, and songs available to the user. This serves as the primary datastore for the system, and is constantly synchronized between different components as the system is running.