ITunes U
From ETS
Contents |
Development Using iTunes U API
Developing web software that will act as a "iTunes U" dashboard for users who maintain podcasts in PSU's iTunes U. This dashboard will address two matters:
- automation of course creation
- generate reports for podcast owners
Current Status
Podcast creation function is complete and being tested. Should be made available to faculty to create their Spring 09 podcasts. Currently working on log stats portion of the app.
Features
Dashboard page
- This page will list the podcasts to which a user has edit rights.
- Podcast listing will allow user to open podcast in iTunes U, view logs, edit/view access to podcast.
- There will be a link from this page to the create new podcast form.
Automation of Course Creation
- Course generated by request (i.e. we're not creating every course at university)
- Limited to instructor-of-record
- Course created based on iTunes U template podcast
- Create one podcast at a time - but can include multiple sections merged into one course
- Web-based interface
- Select course or multiple courses/course sections to create (from list of instructor's courses)
- Fill in Instructor Name, Description
- Pick from list of templates (Normal, with student drop-box, etc.)
- Add additional userID's for access (at time of creation)
- choose Role for additional users (Student, Instructor/Affiliate, etc.)
- Choose public or private podcast
- Check to see course already exists in iTunes U
- check before creating course list
- prevent duplicate creation
- Create course based on RSS feed
- validate RSS feed
- Add new sections into an existing course
- Merge courses
- merge access
- merge content
- Merge courses
- Add additional userID's for access (after course is created)
Report Generation
- Individual reports generated per course
- Report accessed via iTunes U dashboard
- Report access is restricted to person with editor rights
- Web-based interface
- Report contains
- date range of report - user can select date range with certain preselected values such as "this week", "this semester" and also user specified values.
- number times track downloaded
- number new subscriptions (each time subscribe was clicked) (per tab and aggregate for entire course)
- number times each userID downloaded a file (include only if course is in Available Courses section)
- number of times each file was downloaded. Each of these actions count as a download:
- downloadpreview
- downloadtrack
- downloadtracks
- subscriptionenclosure
- browse action does not figure into any figures on log report.
- Open questions:
- how big are log files if we remove actions (e.g. browse) that we are not interested in? Would this remove the amount of data to the extent that we could include log lines in the db?
- What if we just stored aggregated data per day. Something like this:
- Course A - 10/3/08 - 9 subscribes
- Course B - 10/4/08 - 8 subscribes
wireframe mockup log report for a podcast:
Tasks and Timeline
Major Milestones
- August 4th, 2008 - Create podcast functionality is ready for initial user testing
- August 18th, 2008 - Create podcast functionality is revised based on user feedback
Work Breakdown
- html mockups created
- (May 5th, 2008) Cron job for showtree script (16 hours dev + 16 hours debugging)
- Saved all showtree downloads as archive
- Download every 30 minutes
- (May 12th, 2008) showtree xql queries (module is written) (16 hours dev + 16 hours debug)
- Test Driver (use real showtree xml call methods against make sure get same results later)
- (June 23rd, 2008) (152 hours total) User abstraction module
- (16 hours + 16 hours debug) based on data from showtree and xql queries
- (40 hours research + 24 hours + 24 debug) caching
- (16 hourse + 16 hours debug) Test Driver for user abstraction module thus far
- (July 10th, 2008) (72 total) LDAP lookup for entitlements
- Programming, incl. Perform secure bind and Search (24 hours + 16 hours debug)
- (16 hours + 16 hours debug) Write test driver
- (July 18th, 2008) (40 total) Add LDAP support to User Abstraction module... User object gets everything about a user
- (12 hours + 12 Debug) Write user abstraction
- (8 hourse + 8 hourse debug) Write Test Driver
- (Procedure to go through to get to data and datastructure) bak147 {'es': entitlement_strings, 'name': 'brad',} bak147->entitlement_strings
- (Aug 4th, 2008) (64 total) create podcast ui
- get entitlements via user abstraction layer
- form validation
- web service call
- (Aug 11th, 2008) (16 hours + 16 hours debug) dashboard ui script
- (Aug 18th, 2000) (32 hours) Make change based on stakeholder feed back to create podcast ui
Implementation
- Accessible via Drupal nodes by:
- Actions and parameters passed to perl controller
- Perl controller then performs action and passes results back to php
- Entitlements
- Caching
Meeting Notes
7/24/08
The first release of this software will allow users to create their own class podcasts in iTunes U. Here is what is left before we can get there:
- build in logic for more than the standard template
- Course with DropBox (only one dropbox, even there are multiple sections in one podcast)
- Course with Shared Folder
- move from dev to podcasts.psu.edu and integrate with drupal site
- further user testing
- Should eduPerson Entitlements include ISIS course key? We need an answer on this. If so: a plan for transitioning existing iTunes U perms and login to using ISIS Course key. If not: change course creation script to not include ISIS course key.
- make sure all form submissions and other interactions with the app are well logged
- need detailed text for explanation of each podcast form field
- double check perms for student viewing are being added
- put identifier and course name into new podcasts, even we are not using it anymore
- javascript HUGE warning to make sure user understands that checking more than one course is create a SINGLE podcast with multiple courses having access.
10/15/2008 - Podcast creation script acceptance review, TODO
- make entire dashboard page restricted by webaccess - to avoid webaccess in iframe.
-
change entitlement on dashboard to "edit access" page that links directly to iTunes U edit access page for the first tab of particular podcast. If this is not possible, then we will get rid of the column. - Use little icon that means opens in iTunes U for all the links that open in iTunes.
- New wording for page when there are no entitlements. - Millet will provide
-
change red warning boxes to orange on create podcast form -
create podcast form - set podcast access setting to be private by default. - Millet will provide new text for explanation of public podcast.
- Tim will verify what happens with shared tab creation and report back (After brian points script back to sandbox mode).
-
RSS help text will display on form, not hidden behind question mark. -
creation confirm page text- "It may take up to 10 minutes for podcast to appear in iTunes U." - text on podcast dashboard to explain difference between this app and iTunes U - User will still have to go to iTunes U to do most functions, this is just to help with certain admin functions.
- new icon for create new podcast on dashboard page - text create new podcast, with plus sign icon similar to that in iTunes U interface.
- make sure publish date in podcast dashboard and all other pages do not appear.
12/16/2008 2nd acceptance, to do
- radio buttons on public/private should have nothing checked by default. User must choose private or public. (check the validation error if user submits request with this not checked)
- our iTunes U login script needs to be able to accept a destination URL.
- On dashboard, second column labeled url with textbox with iTunes U url. select whole thing by default (javascript). Similar to how you can grab the url to a video using youtube. This only makes sense once our iTunes U login script is fixed to accept a destination.
- brian will make local copy of stylesheet since podcasts.psu.edu is changing.

