1 / 54

An overview of comrad (community radio)

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.

posy
Télécharger la présentation

An overview of comrad (community radio)

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. The speakers: comrad ….Tom Buzbee ….Bryan Callahan ….Eric Freese ….Stephanie Pitts ….Wil St. Charles

  3. Today’s Focus comrad • Project Overview • User Interface Design • Architecture • Software Demo Stephanie Pitts

  4. Today’s Focus comrad • Project Overview • The Class • The Problem • The Solution • User Interface Design • Architecture • Software Demo Stephanie Pitts

  5. The Class comrad • Computer Science Capstone • 13 student led projects. • Other projects: • Dine n’ Dash • Red Robin • Graphics Programming on a Giant Spherical Screen • Craft Technologies Stephanie Pitts

  6. The Problem comrad • Radio Station administration is complex • Scheduling shows • Keeping show logs • Scheduling ticket giveaways • Tracking underwriting • Entering show information • … Stephanie Pitts

  7. The Problem comrad • Multitude of techniques to store information • Paper and Pencil • PHP Database • Playlist entry • Administrative backend Stephanie Pitts

  8. The Solution comrad • Uses of comrad • Major Requirements • Uses • Environmental • Functional • Conceptual View of comrad Stephanie Pitts

  9. Uses comrad • For recording information related to the day to day activities of KGNU • Schedule shows • Record information about: • song plays • new items • emergency broadcasting tests • etc… Stephanie Pitts

  10. Environmental Requirements comrad • 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 Stephanie Pitts

  11. Environmental Requirements comrad • Software Environment • Server • Linux • Apache 2.0 • MySQL 5.0 • PHP 5.0 Stephane Pitts

  12. Environmental Requirements comrad • Hardware Environment • Client • Mac • PC • Linux • Server • KGNU’s current server Stephanie Pitts

  13. Functional Requirements comrad • Role defined user interface • Scheduling database (recursive) • Events database (time slice) • Music Catalog database (music) • Interface for: • scheduling shows • entering event metadata • scheduling recurring events Stephanie Pitts

  14. Conceptual view of comrad comrad Stephanie Pitts

  15. Today’s Focus comrad • Project Overview • User Interface Design • Basic use • Roles • Login/Portal • Showbuilder • Calendar • Architecture • Software Demo Eric Freese

  16. Roles comrad Eric Freese

  17. Login/Portal comrad Eric Freese

  18. Today’s Focus comrad • Project Overview • User Interface Design • Basic use • Showbuilder • Calendar • Architecture • Software Demo Eric Freese

  19. Showbuilder comrad • DJ’s main interaction with system • Used for adding songs, news, etc. to a show • Dynamic interaction with databases Eric Freese

  20. Today’s Focus comrad • Project Overview • User Interface Design • Basic use • Showbuilder • Calendar • Architecture • Software Demo Eric Freese

  21. Calendar comrad • WebCalendar • Used as scheduling engine • Stores recurrence information • Used for recurrence database • Interface built in JQuery – Custom for KGNU Eric Freese

  22. Calendar comrad • Used by Schedule Manager to create and change shows and show times • Week is primary searchable granularity • Month makes schedule too full to convey meaningful information Eric Freese

  23. Calendar comrad • Day Navigation • Levels of granularity allow Schedule Manager to optimally enter schedule information Eric Freese

  24. Calendar comrad • Multitude of show recurrence options available Eric Freese

  25. Today’s Focus comrad • Project Overview • User Interface Design • Architecture • Overview • Break it Down • Software Demo Wil St. Charles

  26. Architecture Overview comrad Wil St. Charles

  27. Break it Down – Frontend comrad Wil St. Charles

  28. Break it Down – Frontend comrad • jQuery and jQuery UI for interactive components • Server-side PHP Templates to generate HTML for each page • Head • Body • Close Wil St. Charles

  29. Break it Down – Music Catalog comrad Wil St. Charles

  30. Break it Down – Music Catalog comrad • Stores music metadata • MySQL • Tables: Wil St. Charles

  31. Break it Down – WebCalendar comrad Wil St. Charles

  32. WebCalendar • Open source, PHP • Flattened recurrence information • Informs Event database • WebCalendar wrapper • Provides API • Utilizes OOP • WebCalendar object • Event object • Event iterator Wil St. Charles

  33. Break it Down – Events comrad Wil St. Charles

  34. Break it Down – Events comrad • Stores instances • Song plays • Features • Etc… • MySQL Wil St. Charles

  35. Break it Down – Sync comrad Wil St. Charles

  36. Break it Down – Sync comrad • PHP and Linux time • Nightly updates between event database and WebCalendar • Event database populated with two weeks (months) of WebCalendar information Wil St. Charles

  37. Today’s Focus comrad • Project Overview • User Interface Design • Architecture • Software Demo • A day in the life • Code review Tom Buzbee

  38. Software Demo comrad Tom Buzbee

  39. Today’s Focus comrad • Project Overview • User Interface Design • Architecture • Software Demo • A day in the life • Code review Bryan Callahan

  40. AbstractConnector comrad • Abstract class • Handles database connection and disconnection • Provides • getDatabase() • getIsConnected() Bryan Callahan

  41. InterfaceModule comrad • Interface class • Implement for consistent interaction with database tables • Provides • populate() • unpopulate() • update() • remove() Bryan Callahan

  42. Typical Table Interaction comrad • Extend AbstractConnector and implement InterfaceModule • User Class $user = new User(); $user_exists = $user->populate(); $user->setPassword(‘newP@ssword12’); $user->update(); Bryan Callahan

  43. Detailed Look at the User comrad • ??? NEED ??? • Talk about getters / setters of user class? >update(); BLAH BLAH BLAHA Bryan Callahan

  44. AbstractConnector Revisited comrad • Provides consistent connection $track = new PlaylistTrack($id, $user); Bryan Callahan

  45. InterfaceIterator comrad • Interface class • Implement to provide consistent access to arrays of data • Provides • hasNext() • getItemCount() • getNextCount() • getNext() Bryan Callahan

  46. Typical Iterator Interaction comrad • Extend AbstractConnector and implement InterfaceIterator • UserIterator Class $iter = new UserIterator(); while ($iter->hasNext()) { echo $iter->getNext()->getUsername(); } Bryan Callahan

  47. Template Overview comrad • Secure Session / Authenticate • Instantiate HeadTemplateSection • Instantiate BodyTemplateSection • Instantiate CloseTemplateSection Bryan Callahan

  48. Initialize comrad • Final class • Performs initialization and provides basic framework to get the system off the ground • Provides • getProp($key) • log($entry) • lockDown() • setAutoload() Bryan Callahan

  49. Hello World Page comrad 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(); Bryan Callahan

  50. WebCal comrad • Final class • Interface to calendar engine • Provides • insertEventBrute(…) • removeEventBrute($id) • readEvents($startTime, $endTime) Bryan Callahan

More Related