![Page 1: An administrative solution for Boulder’s own KGNU Radio Station. Tom Buzbee Bryan Callahan Eric Freese Stephanie Pitts Wil St. Charles](https://reader031.vdocument.in/reader031/viewer/2022032723/56649d015503460f949d381d/html5/thumbnails/1.jpg)
An overview of
comrad(community radio)
An administrative solution for Boulder’s own KGNU Radio Station.
Tom BuzbeeBryan CallahanEric FreeseStephanie PittsWil St. Charles
1
![Page 2: An administrative solution for Boulder’s own KGNU Radio Station. Tom Buzbee Bryan Callahan Eric Freese Stephanie Pitts Wil St. Charles](https://reader031.vdocument.in/reader031/viewer/2022032723/56649d015503460f949d381d/html5/thumbnails/2.jpg)
The speakers:
….Tom Buzbee
….Bryan Callahan
….Wil St. Charles
….Stephanie Pitts
….Eric Freese
2
![Page 3: An administrative solution for Boulder’s own KGNU Radio Station. Tom Buzbee Bryan Callahan Eric Freese Stephanie Pitts Wil St. Charles](https://reader031.vdocument.in/reader031/viewer/2022032723/56649d015503460f949d381d/html5/thumbnails/3.jpg)
Today’s Focus
Project Overview User Interface Design Architecture Software Demo
3Stephanie Pitts
![Page 4: An administrative solution for Boulder’s own KGNU Radio Station. Tom Buzbee Bryan Callahan Eric Freese Stephanie Pitts Wil St. Charles](https://reader031.vdocument.in/reader031/viewer/2022032723/56649d015503460f949d381d/html5/thumbnails/4.jpg)
Today’s Focus
Project OverviewThe ClassThe ProblemThe Solution
User Interface Design Architecture Software Demo
4Stephanie Pitts
![Page 5: An administrative solution for Boulder’s own KGNU Radio Station. Tom Buzbee Bryan Callahan Eric Freese Stephanie Pitts Wil St. Charles](https://reader031.vdocument.in/reader031/viewer/2022032723/56649d015503460f949d381d/html5/thumbnails/5.jpg)
The Class
Computer Science Capstone 13 student led projects. Other projects:
Dine n’ Dash○ Red Robin
Graphics Programming on a Giant Spherical Screen○ Craft Technologies
5Stephanie Pitts
![Page 6: An administrative solution for Boulder’s own KGNU Radio Station. Tom Buzbee Bryan Callahan Eric Freese Stephanie Pitts Wil St. Charles](https://reader031.vdocument.in/reader031/viewer/2022032723/56649d015503460f949d381d/html5/thumbnails/6.jpg)
The Problem
Radio Station administration is complexScheduling showsKeeping show logsScheduling ticket giveawaysTracking underwritingEntering show information…
6Stephanie Pitts
![Page 7: An administrative solution for Boulder’s own KGNU Radio Station. Tom Buzbee Bryan Callahan Eric Freese Stephanie Pitts Wil St. Charles](https://reader031.vdocument.in/reader031/viewer/2022032723/56649d015503460f949d381d/html5/thumbnails/7.jpg)
The Problem
Multitude of techniques to store informationPaper and PencilPHP DatabasePlaylist entryAdministrative backend
7Stephanie Pitts
![Page 8: An administrative solution for Boulder’s own KGNU Radio Station. Tom Buzbee Bryan Callahan Eric Freese Stephanie Pitts Wil St. Charles](https://reader031.vdocument.in/reader031/viewer/2022032723/56649d015503460f949d381d/html5/thumbnails/8.jpg)
The Solution
Uses of comrad Major Requirements
Uses EnvironmentalFunctional
Conceptual View of comrad
8Stephanie Pitts
![Page 9: An administrative solution for Boulder’s own KGNU Radio Station. Tom Buzbee Bryan Callahan Eric Freese Stephanie Pitts Wil St. Charles](https://reader031.vdocument.in/reader031/viewer/2022032723/56649d015503460f949d381d/html5/thumbnails/9.jpg)
Uses
For recording information related to the day to day activities of KGNUSchedule showsRecord information about:
○ song plays○ new items○ emergency broadcasting tests○ etc…
9Stephanie Pitts
![Page 10: An administrative solution for Boulder’s own KGNU Radio Station. Tom Buzbee Bryan Callahan Eric Freese Stephanie Pitts Wil St. Charles](https://reader031.vdocument.in/reader031/viewer/2022032723/56649d015503460f949d381d/html5/thumbnails/10.jpg)
Environmental Requirements Software Environment
Client○ Internet Explorer 8.0○ Firefox 3.0○ Safari 4.0○ Chrome 3.0○ Opera 10.0○ JQuery 1.0○ HTML 4.0○ RSS 2.0
10Stephanie Pitts
![Page 11: An administrative solution for Boulder’s own KGNU Radio Station. Tom Buzbee Bryan Callahan Eric Freese Stephanie Pitts Wil St. Charles](https://reader031.vdocument.in/reader031/viewer/2022032723/56649d015503460f949d381d/html5/thumbnails/11.jpg)
Environmental Requirements Software Environment
Server○ Linux○ Apache 2.0○ MySQL 5.0○ PHP 5.0
11Stephane Pitts
![Page 12: An administrative solution for Boulder’s own KGNU Radio Station. Tom Buzbee Bryan Callahan Eric Freese Stephanie Pitts Wil St. Charles](https://reader031.vdocument.in/reader031/viewer/2022032723/56649d015503460f949d381d/html5/thumbnails/12.jpg)
Environmental Requirements Hardware Environment
Client○ Mac○ PC○ Linux
Server○ KGNU’s current server
12Stephanie Pitts
![Page 13: An administrative solution for Boulder’s own KGNU Radio Station. Tom Buzbee Bryan Callahan Eric Freese Stephanie Pitts Wil St. Charles](https://reader031.vdocument.in/reader031/viewer/2022032723/56649d015503460f949d381d/html5/thumbnails/13.jpg)
Functional Requirements
Role defined user interface Scheduling database (recursive) Events database (time slice) Music Catalog database (music) Interface for:
scheduling showsentering event metadatascheduling recurring events
13Stephanie Pitts
![Page 14: An administrative solution for Boulder’s own KGNU Radio Station. Tom Buzbee Bryan Callahan Eric Freese Stephanie Pitts Wil St. Charles](https://reader031.vdocument.in/reader031/viewer/2022032723/56649d015503460f949d381d/html5/thumbnails/14.jpg)
Conceptual view of comrad
14Stephanie Pitts
![Page 15: An administrative solution for Boulder’s own KGNU Radio Station. Tom Buzbee Bryan Callahan Eric Freese Stephanie Pitts Wil St. Charles](https://reader031.vdocument.in/reader031/viewer/2022032723/56649d015503460f949d381d/html5/thumbnails/15.jpg)
Today’s Focus
Project Overview User Interface Design
Basic use○ Roles○ Login/Portal
ShowbuilderCalendar
Architecture Software Demo
15Eric Freese
![Page 16: An administrative solution for Boulder’s own KGNU Radio Station. Tom Buzbee Bryan Callahan Eric Freese Stephanie Pitts Wil St. Charles](https://reader031.vdocument.in/reader031/viewer/2022032723/56649d015503460f949d381d/html5/thumbnails/16.jpg)
Roles
16Eric Freese
![Page 17: An administrative solution for Boulder’s own KGNU Radio Station. Tom Buzbee Bryan Callahan Eric Freese Stephanie Pitts Wil St. Charles](https://reader031.vdocument.in/reader031/viewer/2022032723/56649d015503460f949d381d/html5/thumbnails/17.jpg)
Login/Portal
17Eric Freese
![Page 18: An administrative solution for Boulder’s own KGNU Radio Station. Tom Buzbee Bryan Callahan Eric Freese Stephanie Pitts Wil St. Charles](https://reader031.vdocument.in/reader031/viewer/2022032723/56649d015503460f949d381d/html5/thumbnails/18.jpg)
Today’s Focus
Project Overview User Interface Design
Basic useShowbuilderCalendar
Architecture Software Demo
18
Eric Freese
![Page 19: An administrative solution for Boulder’s own KGNU Radio Station. Tom Buzbee Bryan Callahan Eric Freese Stephanie Pitts Wil St. Charles](https://reader031.vdocument.in/reader031/viewer/2022032723/56649d015503460f949d381d/html5/thumbnails/19.jpg)
Showbuilder
19
DJ’s main interaction with system
Used for adding songs, news, etc. to a show
Dynamic interaction with databases
Eric Freese
![Page 20: An administrative solution for Boulder’s own KGNU Radio Station. Tom Buzbee Bryan Callahan Eric Freese Stephanie Pitts Wil St. Charles](https://reader031.vdocument.in/reader031/viewer/2022032723/56649d015503460f949d381d/html5/thumbnails/20.jpg)
Today’s Focus
Project Overview User Interface Design
Basic useShowbuilderCalendar
Architecture Software Demo
20Eric Freese
![Page 21: An administrative solution for Boulder’s own KGNU Radio Station. Tom Buzbee Bryan Callahan Eric Freese Stephanie Pitts Wil St. Charles](https://reader031.vdocument.in/reader031/viewer/2022032723/56649d015503460f949d381d/html5/thumbnails/21.jpg)
Calendar
21
WebCalendarUsed as scheduling engineStores recurrence informationUsed for recurrence databaseInterface built in JQuery – Custom for KGNU
Eric Freese
![Page 22: An administrative solution for Boulder’s own KGNU Radio Station. Tom Buzbee Bryan Callahan Eric Freese Stephanie Pitts Wil St. Charles](https://reader031.vdocument.in/reader031/viewer/2022032723/56649d015503460f949d381d/html5/thumbnails/22.jpg)
Calendar
22
o Used by Schedule Manager to create and change shows and show times
o Week is primary
searchable granularity
o Month makes schedule too full to convey meaningful information
Eric Freese
![Page 23: An administrative solution for Boulder’s own KGNU Radio Station. Tom Buzbee Bryan Callahan Eric Freese Stephanie Pitts Wil St. Charles](https://reader031.vdocument.in/reader031/viewer/2022032723/56649d015503460f949d381d/html5/thumbnails/23.jpg)
Calendar
23
o Day Navigation
o Levels of granularity allow Schedule Manager to optimally enter schedule information
Eric Freese
![Page 24: An administrative solution for Boulder’s own KGNU Radio Station. Tom Buzbee Bryan Callahan Eric Freese Stephanie Pitts Wil St. Charles](https://reader031.vdocument.in/reader031/viewer/2022032723/56649d015503460f949d381d/html5/thumbnails/24.jpg)
Calendar
24
o Multitude of show recurrence options available
Eric Freese
![Page 25: An administrative solution for Boulder’s own KGNU Radio Station. Tom Buzbee Bryan Callahan Eric Freese Stephanie Pitts Wil St. Charles](https://reader031.vdocument.in/reader031/viewer/2022032723/56649d015503460f949d381d/html5/thumbnails/25.jpg)
Today’s Focus
Project Overview User Interface Design Architecture
OverviewBreak it Down
Software Demo
25Wil St. Charles
![Page 26: An administrative solution for Boulder’s own KGNU Radio Station. Tom Buzbee Bryan Callahan Eric Freese Stephanie Pitts Wil St. Charles](https://reader031.vdocument.in/reader031/viewer/2022032723/56649d015503460f949d381d/html5/thumbnails/26.jpg)
Architecture Overview
26Wil St. Charles
![Page 27: An administrative solution for Boulder’s own KGNU Radio Station. Tom Buzbee Bryan Callahan Eric Freese Stephanie Pitts Wil St. Charles](https://reader031.vdocument.in/reader031/viewer/2022032723/56649d015503460f949d381d/html5/thumbnails/27.jpg)
Break it Down – Frontend
27Wil St. Charles
![Page 28: An administrative solution for Boulder’s own KGNU Radio Station. Tom Buzbee Bryan Callahan Eric Freese Stephanie Pitts Wil St. Charles](https://reader031.vdocument.in/reader031/viewer/2022032723/56649d015503460f949d381d/html5/thumbnails/28.jpg)
Break it Down – Frontend
28Wil St. Charles
jQuery and jQuery UI for interactive components
Server-side PHP Templates to generate HTML for each pageHeadBodyClose
![Page 29: An administrative solution for Boulder’s own KGNU Radio Station. Tom Buzbee Bryan Callahan Eric Freese Stephanie Pitts Wil St. Charles](https://reader031.vdocument.in/reader031/viewer/2022032723/56649d015503460f949d381d/html5/thumbnails/29.jpg)
Break it Down – Music Catalog
29Wil St. Charles
![Page 30: An administrative solution for Boulder’s own KGNU Radio Station. Tom Buzbee Bryan Callahan Eric Freese Stephanie Pitts Wil St. Charles](https://reader031.vdocument.in/reader031/viewer/2022032723/56649d015503460f949d381d/html5/thumbnails/30.jpg)
Break it Down – Music Catalog
30Wil St. Charles
Stores music metadata MySQL Tables:
![Page 31: An administrative solution for Boulder’s own KGNU Radio Station. Tom Buzbee Bryan Callahan Eric Freese Stephanie Pitts Wil St. Charles](https://reader031.vdocument.in/reader031/viewer/2022032723/56649d015503460f949d381d/html5/thumbnails/31.jpg)
Break it Down – WebCalendar
31Wil St. Charles
![Page 32: An administrative solution for Boulder’s own KGNU Radio Station. Tom Buzbee Bryan Callahan Eric Freese Stephanie Pitts Wil St. Charles](https://reader031.vdocument.in/reader031/viewer/2022032723/56649d015503460f949d381d/html5/thumbnails/32.jpg)
32
WebCalendar
Open source, PHP Flattened recurrence information
Informs Event database WebCalendar wrapper
Provides APIUtilizes OOP
○ WebCalendar object○ Event object○ Event iterator
Wil St. Charles
![Page 33: An administrative solution for Boulder’s own KGNU Radio Station. Tom Buzbee Bryan Callahan Eric Freese Stephanie Pitts Wil St. Charles](https://reader031.vdocument.in/reader031/viewer/2022032723/56649d015503460f949d381d/html5/thumbnails/33.jpg)
Break it Down – Events
33Wil St. Charles
![Page 34: An administrative solution for Boulder’s own KGNU Radio Station. Tom Buzbee Bryan Callahan Eric Freese Stephanie Pitts Wil St. Charles](https://reader031.vdocument.in/reader031/viewer/2022032723/56649d015503460f949d381d/html5/thumbnails/34.jpg)
Break it Down – Events
34Wil St. Charles
Stores instances Song playsFeaturesEtc…
MySQL
![Page 35: An administrative solution for Boulder’s own KGNU Radio Station. Tom Buzbee Bryan Callahan Eric Freese Stephanie Pitts Wil St. Charles](https://reader031.vdocument.in/reader031/viewer/2022032723/56649d015503460f949d381d/html5/thumbnails/35.jpg)
Break it Down – Sync
35Wil St. Charles
![Page 36: An administrative solution for Boulder’s own KGNU Radio Station. Tom Buzbee Bryan Callahan Eric Freese Stephanie Pitts Wil St. Charles](https://reader031.vdocument.in/reader031/viewer/2022032723/56649d015503460f949d381d/html5/thumbnails/36.jpg)
Break it Down – Sync
36Wil St. Charles
PHP and Linux time Nightly updates between event
database and WebCalendar Event database populated with two
weeks (months) of WebCalendar information
![Page 37: An administrative solution for Boulder’s own KGNU Radio Station. Tom Buzbee Bryan Callahan Eric Freese Stephanie Pitts Wil St. Charles](https://reader031.vdocument.in/reader031/viewer/2022032723/56649d015503460f949d381d/html5/thumbnails/37.jpg)
Today’s Focus
Project Overview User Interface Design Architecture Software Demo
A day in the lifeCode review
37Tom Buzbee
![Page 38: An administrative solution for Boulder’s own KGNU Radio Station. Tom Buzbee Bryan Callahan Eric Freese Stephanie Pitts Wil St. Charles](https://reader031.vdocument.in/reader031/viewer/2022032723/56649d015503460f949d381d/html5/thumbnails/38.jpg)
Software Demo
38Tom Buzbee
![Page 39: An administrative solution for Boulder’s own KGNU Radio Station. Tom Buzbee Bryan Callahan Eric Freese Stephanie Pitts Wil St. Charles](https://reader031.vdocument.in/reader031/viewer/2022032723/56649d015503460f949d381d/html5/thumbnails/39.jpg)
Today’s Focus
Project Overview User Interface Design Architecture Software Demo
A day in the lifeCode review
39Bryan Callahan
![Page 40: An administrative solution for Boulder’s own KGNU Radio Station. Tom Buzbee Bryan Callahan Eric Freese Stephanie Pitts Wil St. Charles](https://reader031.vdocument.in/reader031/viewer/2022032723/56649d015503460f949d381d/html5/thumbnails/40.jpg)
AbstractConnector
Abstract class Handles database connection and
disconnection Provides
getDatabase()getIsConnected()
40Bryan Callahan
![Page 41: An administrative solution for Boulder’s own KGNU Radio Station. Tom Buzbee Bryan Callahan Eric Freese Stephanie Pitts Wil St. Charles](https://reader031.vdocument.in/reader031/viewer/2022032723/56649d015503460f949d381d/html5/thumbnails/41.jpg)
InterfaceModule
Interface class Implement for consistent interaction with
database tables Provides
populate()unpopulate()update()remove()
41Bryan Callahan
![Page 42: An administrative solution for Boulder’s own KGNU Radio Station. Tom Buzbee Bryan Callahan Eric Freese Stephanie Pitts Wil St. Charles](https://reader031.vdocument.in/reader031/viewer/2022032723/56649d015503460f949d381d/html5/thumbnails/42.jpg)
Typical Table Interaction
Extend AbstractConnector and implement InterfaceModule
User Class
$user = new User();$user_exists = $user->populate();$user->setPassword(‘newP@ssword12’);$user->update();
42Bryan Callahan
![Page 43: An administrative solution for Boulder’s own KGNU Radio Station. Tom Buzbee Bryan Callahan Eric Freese Stephanie Pitts Wil St. Charles](https://reader031.vdocument.in/reader031/viewer/2022032723/56649d015503460f949d381d/html5/thumbnails/43.jpg)
Detailed Look at the User ??? NEED ??? Talk about getters / setters of user
class?
>update(); BLAH BLAH BLAHA
43Bryan Callahan
![Page 44: An administrative solution for Boulder’s own KGNU Radio Station. Tom Buzbee Bryan Callahan Eric Freese Stephanie Pitts Wil St. Charles](https://reader031.vdocument.in/reader031/viewer/2022032723/56649d015503460f949d381d/html5/thumbnails/44.jpg)
AbstractConnector Revisited Provides consistent connection
$track = new PlaylistTrack($id,
$user);
44Bryan Callahan
![Page 45: An administrative solution for Boulder’s own KGNU Radio Station. Tom Buzbee Bryan Callahan Eric Freese Stephanie Pitts Wil St. Charles](https://reader031.vdocument.in/reader031/viewer/2022032723/56649d015503460f949d381d/html5/thumbnails/45.jpg)
InterfaceIterator
Interface class Implement to provide consistent access
to arrays of data Provides
hasNext()getItemCount()getNextCount()getNext()
45Bryan Callahan
![Page 46: An administrative solution for Boulder’s own KGNU Radio Station. Tom Buzbee Bryan Callahan Eric Freese Stephanie Pitts Wil St. Charles](https://reader031.vdocument.in/reader031/viewer/2022032723/56649d015503460f949d381d/html5/thumbnails/46.jpg)
Typical Iterator Interaction Extend AbstractConnector and implement
InterfaceIterator UserIterator Class
$iter = new UserIterator();while ($iter->hasNext()){
echo $iter->getNext()->getUsername();}
46Bryan Callahan
![Page 47: An administrative solution for Boulder’s own KGNU Radio Station. Tom Buzbee Bryan Callahan Eric Freese Stephanie Pitts Wil St. Charles](https://reader031.vdocument.in/reader031/viewer/2022032723/56649d015503460f949d381d/html5/thumbnails/47.jpg)
Template Overview
Secure Session / Authenticate Instantiate HeadTemplateSection Instantiate BodyTemplateSection Instantiate CloseTemplateSection
47Bryan Callahan
![Page 48: An administrative solution for Boulder’s own KGNU Radio Station. Tom Buzbee Bryan Callahan Eric Freese Stephanie Pitts Wil St. Charles](https://reader031.vdocument.in/reader031/viewer/2022032723/56649d015503460f949d381d/html5/thumbnails/48.jpg)
Initialize
Final class Performs initialization and provides basic
framework to get the system off the ground Provides
getProp($key)log($entry)lockDown()setAutoload()
48Bryan Callahan
![Page 49: An administrative solution for Boulder’s own KGNU Radio Station. Tom Buzbee Bryan Callahan Eric Freese Stephanie Pitts Wil St. Charles](https://reader031.vdocument.in/reader031/viewer/2022032723/56649d015503460f949d381d/html5/thumbnails/49.jpg)
Hello World Page
require_once(‘initialize.php’);
// Preprocessing (command execution)
$head = new HeadTemplateSection();$head->write();
// Load Javascript Libraries
$head = new BodyTemplateSection();$head->write();
// Body of Page (User Interface)
$head = new CloseTemplateSection();$head->write();
49Bryan Callahan
![Page 50: An administrative solution for Boulder’s own KGNU Radio Station. Tom Buzbee Bryan Callahan Eric Freese Stephanie Pitts Wil St. Charles](https://reader031.vdocument.in/reader031/viewer/2022032723/56649d015503460f949d381d/html5/thumbnails/50.jpg)
WebCal
Final class Interface to calendar engine Provides
insertEventBrute(…)removeEventBrute($id)readEvents($startTime, $endTime)
50Bryan Callahan
![Page 51: An administrative solution for Boulder’s own KGNU Radio Station. Tom Buzbee Bryan Callahan Eric Freese Stephanie Pitts Wil St. Charles](https://reader031.vdocument.in/reader031/viewer/2022032723/56649d015503460f949d381d/html5/thumbnails/51.jpg)
WebCalEventsIterator
Final class that implements InterfaceIterator Iterates through events given a start time and
an end time Provides simple way to pull all event data
51Bryan Callahan
![Page 52: An administrative solution for Boulder’s own KGNU Radio Station. Tom Buzbee Bryan Callahan Eric Freese Stephanie Pitts Wil St. Charles](https://reader031.vdocument.in/reader031/viewer/2022032723/56649d015503460f949d381d/html5/thumbnails/52.jpg)
A Closer Look at the Code…
52Bryan Callahan
![Page 53: An administrative solution for Boulder’s own KGNU Radio Station. Tom Buzbee Bryan Callahan Eric Freese Stephanie Pitts Wil St. Charles](https://reader031.vdocument.in/reader031/viewer/2022032723/56649d015503460f949d381d/html5/thumbnails/53.jpg)
Summary Project Overview
The ClassThe ProblemThe Solution
User Interface DesignBasic UseShow BuilderCalendar
ArchitectureOverviewClasses
Software Demo
53Tom Buzbee
![Page 54: An administrative solution for Boulder’s own KGNU Radio Station. Tom Buzbee Bryan Callahan Eric Freese Stephanie Pitts Wil St. Charles](https://reader031.vdocument.in/reader031/viewer/2022032723/56649d015503460f949d381d/html5/thumbnails/54.jpg)
Questions
54Tom Buzbee
?