Broadcast Scheduler Project

Live365 Broadcast Scheduler

Project Goals
Create a web-based internet radio station program scheduler application, to allow Live365 broadcasters to create multiple "shows" for their station and assign them to specific start/stop/repeat times over a weekly calendar.
Skills used
Mason, PERL, HTML, Javascript
Details
Prior to this project, Live365 broadcasters had the capability to create multiple playlists for their stations and manually switch among them. Live365 stations also had a user-editable description. Fundamentally, this project involved creating a timer-based system which would automatically switch playlists and also update the station's description. A broadcaster needed to be able to modify his/her schedule and leave it as a work-in-progress without making those changes public; listeners needed to be able to view the currently-active schedule independently of the broadcaster's "scrachpad" view. These criteria led to the creation of two database tables, one to store the broadcaster's scheduler view, then once published, the other table stores the public listeners' view. Database interaction is handled by a PERL module, and timing is handled by a crontab'd PERL script. My role in this project primarily involved creating the dynamic web UI to display both views of the scheduler (broadcaster vs. public) plus the event-edit pages. Accommodating global time zones and daylight-savings proved to be one of the most challenging aspects of this project.
Examples/Links
http://www.live365.com/stations/jimgskoop/schedule (a typical station schedule)
Broadcaster's Scheduler View (screenshot)
Event Edit Page (screenshot)
Hourly Program Guide (a demo/proposal for a site-wide "now playing" list of radio shows on Live365 which leverages Scheduler functionality)
Selected Source Code
Scheduler Main Page
Event Editor Page