an overview of comrad (community radio)

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: posy

Post on 18-Mar-2016

18 views

Category:

Documents


0 download

DESCRIPTION

comrad. An administrative solution for Boulder’s own KGNU Radio Station. An overview of comrad (community radio). Tom Buzbee Bryan Callahan Eric Freese Stephanie Pitts Wil St. Charles. The speakers:. comrad. ….Tom Buzbee. ….Bryan Callahan. ….Eric Freese. ….Stephanie Pitts. - PowerPoint PPT Presentation

TRANSCRIPT

An overview of

comrad(community radio)

An administrative solution for Boulder’s own KGNU Radio Station.

Tom BuzbeeBryan CallahanEric FreeseStephanie PittsWil St. Charles

1

The speakers:….Tom Buzbee

….Bryan Callahan

….Wil St. Charles

….Stephanie Pitts

….Eric Freese

2

Today’s Focus Project Overview User Interface Design Architecture Software Demo

3Stephanie Pitts

Today’s Focus Project Overview

The ClassThe ProblemThe Solution

User Interface Design Architecture Software Demo

4Stephanie Pitts

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

The Problem Radio Station administration is complex

Scheduling showsKeeping show logsScheduling ticket giveawaysTracking underwritingEntering show information…

6Stephanie Pitts

The Problem Multitude of techniques to store

informationPaper and PencilPHP DatabasePlaylist entryAdministrative backend

7Stephanie Pitts

The Solution Uses of comrad Major Requirements

Uses EnvironmentalFunctional

Conceptual View of comrad

8Stephanie Pitts

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

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

Environmental Requirements Software Environment

Server○ Linux○ Apache 2.0○ MySQL 5.0○ PHP 5.0

11Stephane Pitts

Environmental Requirements Hardware Environment

Client○ Mac○ PC○ Linux

Server○ KGNU’s current server

12Stephanie Pitts

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

Conceptual view of comrad

14Stephanie Pitts

Today’s Focus Project Overview User Interface Design

Basic use○ Roles○ Login/Portal

ShowbuilderCalendar

Architecture Software Demo

15Eric Freese

Roles

16Eric Freese

Login/Portal

17Eric Freese

Today’s Focus Project Overview User Interface Design

Basic useShowbuilderCalendar

Architecture Software Demo

18

Eric Freese

Showbuilder

19

DJ’s main interaction with system

Used for adding songs, news, etc. to a show

Dynamic interaction with databases

Eric Freese

Today’s Focus Project Overview User Interface Design

Basic useShowbuilderCalendar

Architecture Software Demo

20Eric Freese

Calendar

21

WebCalendarUsed as scheduling engineStores recurrence informationUsed for recurrence databaseInterface built in JQuery – Custom for KGNU

Eric Freese

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

Calendar

23

o Day Navigation

o Levels of granularity allow Schedule Manager to optimally enter schedule information

Eric Freese

Calendar

24

o Multitude of show recurrence options available

Eric Freese

Today’s Focus Project Overview User Interface Design Architecture

OverviewBreak it Down

Software Demo

25Wil St. Charles

Architecture Overview

26Wil St. Charles

Break it Down – Frontend

27Wil 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

Break it Down – Music Catalog

29Wil St. Charles

Break it Down – Music Catalog

30Wil St. Charles

Stores music metadata MySQL Tables:

Break it Down – WebCalendar

31Wil 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

Break it Down – Events

33Wil St. Charles

Break it Down – Events

34Wil St. Charles

Stores instances Song playsFeaturesEtc…

MySQL

Break it Down – Sync

35Wil 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

Today’s Focus Project Overview User Interface Design Architecture Software Demo

A day in the lifeCode review

37Tom Buzbee

Software Demo

38Tom Buzbee

Today’s Focus Project Overview User Interface Design Architecture Software Demo

A day in the lifeCode review

39Bryan Callahan

AbstractConnector Abstract class Handles database connection and

disconnection Provides

getDatabase()getIsConnected()

40Bryan Callahan

InterfaceModule Interface class Implement for consistent interaction with

database tables Provides

populate()unpopulate()update()remove()

41Bryan Callahan

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

Detailed Look at the User ??? NEED ??? Talk about getters / setters of user

class?

>update(); BLAH BLAH BLAHA

43Bryan Callahan

AbstractConnector Revisited Provides consistent connection

$track = new PlaylistTrack($id,

$user);

44Bryan Callahan

InterfaceIterator Interface class Implement to provide consistent access

to arrays of data Provides

hasNext()getItemCount()getNextCount()getNext()

45Bryan Callahan

Typical Iterator Interaction Extend AbstractConnector and implement

InterfaceIterator UserIterator Class

$iter = new UserIterator();while ($iter->hasNext()){

echo $iter->getNext()->getUsername();}

46Bryan Callahan

Template Overview Secure Session / Authenticate Instantiate HeadTemplateSection Instantiate BodyTemplateSection Instantiate CloseTemplateSection

47Bryan Callahan

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

Hello World Pagerequire_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

WebCal Final class Interface to calendar engine Provides

insertEventBrute(…)removeEventBrute($id)readEvents($startTime, $endTime)

50Bryan Callahan

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

A Closer Look at the Code…

52Bryan Callahan

Summary Project Overview

The ClassThe ProblemThe Solution

User Interface DesignBasic UseShow BuilderCalendar

ArchitectureOverviewClasses

Software Demo53

Tom Buzbee

Questions

54Tom Buzbee

?