 David Hietpas  Library Web Developer  University of Wisconsin - Polk Library.

Slides:



Advertisements
Similar presentations
MFA for Business Banking – Security Code Multifactor Authentication: Quick Tip Sheets Note to Financial Institutions: We are providing these QT sheets.
Advertisements

JQuery MessageBoard. Lets use jQuery and AJAX in combination with a database to update and retrieve information without refreshing the page. Here we will.
Legal Meetings: Extended Instructions on Movica and Screencast.
Overview of Twitter API Nathan Liu. Twitter API Essentials Twitter API is a Representational State Transfer(REST) style web services exposed over HTTP(S).
Getting Started with Moodle Bronze Level – Compulsory.
OAuth 2.0 By “PJ” (JP on meetup.com) iOS and PHP developer, and occasional lawyer Contact me via:
Using Evernote and Google Docs in your web or mobile application (and potentially Dropbox and Skydrive) By Peter Messenger Senior Developer – Triple Point.
Linking External Tools with Sakai David Ross Educational Technology, Albany Medical College.
Using CourseCompass Features You must already be registered or enrolled in a current class.
What’s New in D2L 9.1 Suzanne Baril. Overview What are the new features What has been changed or fixed What has been removed Questions?
© 2012 Cisco and/or its affiliates. All rights reserved. Presentation_ID Cisco Public Quad APIs and SDK Preview Sachin Smotra Product Manger, Enterprise.
S2 – COMMUNICATIONS UNIT
Using MyMathLab Features You must already be registered or enrolled in a current class.
Matthew Grove Virtual Environments for Research in Archaeology Project, University of Reading. Recycle Bridge: an easy.
’10 Pearls of Wisdom’ or some of the main things I have learnt over past 2 years relating to geography Jane Evans.
Postgraduate Essentials University of Edinburgh Postgraduate Essentials Online induction to the course.
The easy way to a nice looking website design By a total non-designer (Me!)
CAEL 5012 Rich Internet Applications. What you need For this part of the course you will need access to a server with PHP and MYSQL which will be supplied.
CMS Wiki Pages CMS Pages, the only approved and supported website service for CMS employees, has been failing and an alternative needed to be implemented.
11 Games and Content Session 4.1. Session Overview  Show how games are made up of program code and content  Find out about the content management system.
City of Santa Cruz Embraces AGS/Flex
Microsoft Windows LEARNING HOW USE AN OPERATING SYSTEM 1.
Crystal Hoyer Program Manager IIS Team Preview of features that will be announced at MIX09 Please do not blog, take pictures or video of session.
© 2003 By Default! A Free sample background from Slide 1 Week 2  Free PHP Hosting Setup  PHP Backend  Backend Security 
Extending Vista The PowerLinks WebServices SDK John Hallett Senior Product Manager WebCT, Inc
Tablet Camp 2015 Resource Guide for Students at Klein ISD 1:1 Campuses.
Go to your school’s web locker site school name.schoolweblockers.com) Your user name is the first letter of your first name, the first four.
Composer packages Installing and Using Composer, Packagist, Packaging your code Mario Peshev Technical Trainer Software University
Go to your school’s web locker site school name.schoolweblockers.com) Your user name is the first letter of your first name, the first 4.
Downloading and Installing Autodesk Revit 2016
Big6 Overview Big6™ Trainers Program McDowell County Schools.
Creating a Digital Classroom. * Introduction * The Student Experience * Schoology’s Features * Create a Course & Experiment.
BIT 285: ( Web) Application Programming Lecture 15: Tuesday, February 24, 2015 Microsoft Azure Instructor: Craig Duckett.
Downloading and Installing Autodesk Inventor Professional 2015 This is a 4 step process 1.Register with the Autodesk Student Community 2.Downloading the.
Go to your school’s web locker site Your user name is the first letter of your first name, the first four letters of.
Using MyMathLab Features of MyMathLab You must already be registered or enrolled in a current MyMathLab class in order to use MyMathLab. If you are not.
Grade Book Database Presentation Jeanne Winstead CINS 137.
MPA-GTA: 2005 EPM SCHEDULE and ANNOUNCEMENTS Dave D’Silva Vice President MPA-GTA.
Presentation Companion Slide Pack The slides in this file were specifically designed to be used with the Presentation Companion Add-In. Training-Games.com.
1 Sacramento City College- Jo-Ann Foley D2L Orientation.
The Future of libgnome and libgnomeui Anders Carlsson Jonathan Blandford.
Database Access Control IST2101. Why Implementing User Authentication? Remove a lot of redundancies in duplicate inputs of database information – Your.
| Basel Building real Business Apps with Office365/Azure Gilbert Nicolet – BPA Solutions SA.
Testing External Survey Automatic Credit Granting Shepherd University Department of Psychology.
IS2803 Developing Multimedia Applications for Business (Part 2) Lecture 2: Introduction to IS2803 Rob Gleasure
©2003 Paula Matuszek GOOGLE API l Search requests: submit a query string and a set of parameters to the Google Web APIs service and receive in return a.
Kahoot is like bar trivia for your classroom. Teachers set up an account and the rest is easy. There are “Public Kahoots” ready to go, so it’s not necessary.
Lindsey Velez, Director of Instructional Technology Single Sign-On One Click.
Installing a Moodle Test Site The painless and easy way.
How to use Drupal Awdhesh Kumar (Team Leader) Presentation Topic.
Section title This presentation is designed to help you talk to young people about Drive. The notes included aren’t intended to be read out, they are for.
Business Directory REST API
EOS WEBPAGE Collaborative work with: Ewa Lopienska (logo),
Testing Alfresco extensions (no, it’s not about jUnit)
Vidcoding Introduces Scalable Video and TV Encoding in the Cloud at an Affordable Price by Utilizing the Processing Power of Azure Batch MICROSOFT AZURE.
Welcome to your first Online Class Session
Created by Nathan Reddy, High School Junior
Discord Bot Senior Project
SharePoint-Hosted Apps and JavaScript
Microsoft Ignite NZ October 2016 SKYCITY, Auckland.
Star Early Literacy PreTest Instructions
Welcome to the European Shoemaker e-learning platform introduction
Testing RESTful Web APIs
VuFind APIs - A practical approach
SharePoint Online Authentication Patterns
Exit Ticket: Completion Verified
D Guidance 26-Jun: Would like to see a refresh of this title slide
Blazor A new framework for browser-based .NET apps Ryan Nowak
Presentation transcript:

 David Hietpas  Library Web Developer  University of Wisconsin - Polk Library

 Ted Mulvey  Information Literacy Librarian  University of Wisconsin - Polk Library

 ANVIL General Understanding  Integration into D2L through Valence  Samples and examples None Technical Technical Geek Level

 ANVIL… “huh???”  Active iNstructional Videos for Information Literacy  External learning and assessment application disguised as “Bar Trivia”  Leaderboards  Game play  Fun themes

 USP – Universities Study Program  Required learning outcomes  uwosh.edu/usp  Research Instruction & Information Literacy  Learning through repetition and competition.  Learning through a fun, game environment

Quick Demo

“it was helpful” “this was more helpful too” “By the way, I LOVE ANVIL” “This is great!” “This is awesome! Nice work.” "Very cool game, by the way. I can see (having had some fun with it myself), that this is very valuable [early] in the research process." “That was fun” “It was resourceful”

 This happened this week!  Player Nated32 played game over 50 times to be #1 on all the leaderboards  The next day, another player beat Nated32  Nated32 replayed the game, past midnight, for a total of 137 times played to regain the #1 spot  Nated32 approached our librarian Ted Mulvey and told him how “he owned that game” and how he was “upset when someone beat him”

 Currently used in 44 courses!  Some courses not even USP!  In some courses this is 10% of the total grade!  Feedback has only been positive  Leaderboard Pro’s  Completed questions each question in 2 seconds!  Played dozens of times, learning through repetition!  First Semester Success

 Lets move into the technical  ANVIL is built on the Pyramid framework  Python language  Our campus web presence is python ▪ Plone CMS

ANVIL  Python 2.7 Valence Client SDK  Only Python 3.*  I made the Valence Client SDK backwards compatible with python 2.7  Packaged the client code back up

 Read the Valence documentation  Apply for API Key   Have your D2L administrator setup a sandbox course for you to work in with test users  Don’t do anything live with real users  Have a local environment ready to go with your Valence SDK Client

 Understand RESTful  Representational State Transfer  Learn from the Sample Code which comes with the Valence Client SDK  You MUST read this…   (The following slide picture is from the link above.)

 What Valence API components are we using?  Authentication (AppContext, UserContext)  WhoAmI (UserContext)  Enrollment (UserContext)  Dropbox (UserContext, OrgUnit)  Dropbox Files (UserContext, OrgUnit)

 Authentication  Creating App Context  Retrieving User Context  In My Opinion “Hardest Part”  Lots of requests and redirects with D2L  Lets walk through it!

 App Context  Requires Application ID and Key  Provide ID and Key to AppContext Creator in your SDK  Will create your AppContext Object  Again… 

 Python AppContext Example def get_app_context(self): global app_context if app_context == None: app_context = d2lauth.fashion_app_context(app_id=D2L_ID, app_key=D2L_KEY) return app_context def get_app_context(self): global app_context if app_context == None: app_context = d2lauth.fashion_app_context(app_id=D2L_ID, app_key=D2L_KEY) return app_context

 User Context  Requires AppContext Object  Also requires ▪ Redirection URL ▪ D2L Host  Again… 

 Python UserContext Example def get_user_context(self): url = self.request.url # your current url try: if not self.check_auth_tokens(): return Redirect(self.get_app_context().create_url_for_authentication(d2l_domain, url)) return self.get_app_context().create_user_context(result_uri=url, host=d2l_domain, encrypt_requests=True) except Exception as e: return HTTPForbidden() def get_user_context(self): url = self.request.url # your current url try: if not self.check_auth_tokens(): return Redirect(self.get_app_context().create_url_for_authentication(d2l_domain, url)) return self.get_app_context().create_user_context(result_uri=url, host=d2l_domain, encrypt_requests=True) except Exception as e: return HTTPForbidden() Go to D2L Return response here

 Ready to make API request def authenticated_d2l_user(self): user_context = self.get_user_context() if not isinstance(user_context, d2lauth.D2LUserContext): return user_context # Below do any Valence API Calls with your User Context whoami = d2lservice.get_whoami(user_context) def authenticated_d2l_user(self): user_context = self.get_user_context() if not isinstance(user_context, d2lauth.D2LUserContext): return user_context # Below do any Valence API Calls with your User Context whoami = d2lservice.get_whoami(user_context) Type Introspection

 Ready to make API request def authenticated_d2l_user_enrollment(self): user_context = self.my_get_user_context() if not isinstance(user_context, d2lauth.D2LUserContext): return user_context # Below do any Valence API Calls with your User Context courses = d2lservice.get_my_enrollments(user_context) def authenticated_d2l_user_enrollment(self): user_context = self.my_get_user_context() if not isinstance(user_context, d2lauth.D2LUserContext): return user_context # Below do any Valence API Calls with your User Context courses = d2lservice.get_my_enrollments(user_context) Type Introspection

 App Context  Permanently kept around  User Context  Created and contained within the scope of function and destroyed once function call completes  No information is logged

Setup App Context Request from D2L the current users authorization D2L verifies and returns Auth Tokens Request from D2l the User Context D2l returns User Context With the User Context you can now make API requests API Requests Finished, User Context Destroyed Overview

 Limitations in API  Give me everything or nothing ▪ e.g. user information ▪ Services are not fine grained  Not everything is available yet ▪ e.g. Creating new Dropbox folders ▪ Lots more…  Role restrictions ▪ “Even as a power user, I wasn’t able to do certain things”

 Python SDK does a lot of the work for me  The PHP SDK seems more complex  Seems to require lots of CURL  Seems to require more url redirections

 Authentication   API Index   Stackoverflow D2L   Clients SDK Sample Code 

 Goal to Open Source the product  ANVIL Capabilities  All content is created through-the-web  Export/Import trivia content  Easy theming and changing themes  Goal: Community of sharable educational content ▪ Information Literacy Package is available  Coming Soon: Assessment and Report Generation

 Feel free and try out the demo site   D2L integration has been removed due to it being publicly accessible  We want YOUR opinion on the following:  Do you want it open sourced?  What services would you want us to provide?

 David Hietpas  University of Wisconsin - Polk Library  (Only free used)