an administrative solution for boulder’s own kgnu radio station. tom buzbee bryan callahan eric...

54
An overview of comrad (community radio) An administrative solution for Boulder’s own KGNU Radio Station. Tom Buzbee Bryan Callahan Eric Freese Stephanie Pitts Wil St. Charles 1

Upload: leslie-pitts

Post on 17-Dec-2015

212 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: An administrative solution for Boulder’s own KGNU Radio Station. Tom Buzbee Bryan Callahan Eric Freese Stephanie Pitts Wil St. Charles

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Questions

54Tom Buzbee

?