Skip to content

moneil/OSCELOT-DSKTOOL-for-HEROKU

Repository files navigation

DSKTOOL for Learn v1.2.6 (07/05/2022)

Please note that this project is being deprecated in favor of moneil/DSKTOOL for Learn. This project is current as of release v1.2.6. All future releases will be published on the above project. Please adjust your bookmarks and git forks/clones accordingly.

Thank you! -m

See Release Notes below.

This project is a Django/Python and Learn REST replacement for the Original York DSK Building Block for Learn.

This project is built to be deployed in a variety of ways:

  • Heroku: You may read about Heroku here: https://heroku.com. See the Deploy to Heroku button below.
  • Docker: You may read about Docker here: https://www.docker.com. See this project's ./docker/README.md for Docker details.
  • cHost: See this project's ./chost/README.md for cHost details.
  • Localhost: See ./local/README.md for running on localhost.

The DSKTOOL uses 3LO and as such requires a Learn account and use is restricted based on Learn account privileges.

Note: This is an open source community project and, even though I am an employee, is not supported or sponsored by Blackboard Inc.. If you find it of value please contribute! Pull requests welcome! Make a fork and share your work back to this project.

Installation

Pre-requisites:

You must have registered an application in your Developer Portal (https://developer.blackboard.com) account and added it to your Learn instance.

NOTE: Make certain to store your Key and Secret as those will be required when you install the application.

Blackboard Learn

  1. On your Learn instance create a user ‘DSKTOOLUSER’ and assign them a low, to no, privileged System Role - I have used "guest" - you may alternatively create a specific role if you choose. Do not assign a System Administrator Role. You may assign the DSKTOOLUSER any Institution Role.
    • Create a SYSTEM ROLE: DSKTOOLUSER_SYSTEM_ROLE with no privileges
    • Create a USER: DSKTOOLUSER and assign the system role of DSKTOOLUSER_SYSTEM_ROLE
    • and use DSKTOOLUSER as the user in the REST API Integration configuration in the next steps
  2. Navigate to the System Admin page and select the REST API Integrations link.
  3. Enter your Application Id into the Application Id field
  4. Set the REST integration user to your ‘DSKTOOLUSER’
  5. Set Available to 'Yes'
  6. Set End User Access to 'Yes'
  7. Set Authorized To Act As User to ‘Yes'
  8. Click Submit

Learn is now ready and you may proceed with the installation by clicking the below button and following the instructions.

Heroku

Clicking any of the below 'Deploy to Heroku' buttons will open Heroku to your application setup screen and enable deploying the target branch.

Note: if you do not have a Heroku account you will be prompted to create one and you will be directed to the setup screen on account create completion.

Deploy Latest Stable Release (v1.2.6):
Deploy

Configuring your application

On the setup screen you will need to name your application dyno, select a region and set the configuration variables:

  1. Enter an application name - Heroku will let you know if it is valid. e.g. PostDSKTOOL.
  2. Choose a region that applies or is closest to you.
  3. Set the required APPLICATION_KEY config variable using the APPLICATION KEY provided when you registered your Application in the Blackboard Developer Portal. (Contains hyphens)
  4. Set the required APPLICATION_SECRET config variable using the APPLICATION SECRET provided when you registered your Application. (Contains no hyphens)
  5. Set the BLACKBOARD_LEARN_INSTANCE config variable to the FQDN for your target Blackboard Learn instance. E.g.: demo.blackboard.com. DO NOT include the protocol (http:// or https://)
  6. Leave the required DISABLE_COLLECTSTATIC config variable set to the current setting of 1 - this is required for a successful deploy.
  7. Set the required DJANGO_SECRET_KEY config variable using the DJANGO SECRET gennerated from this website: https://djskgen.herokuapp.com NOTE: remove the single quotes e.g.: =)**)-eozw)jt@hh!lkdc3k-h$gty+12sv)i(r8lp6rn9yn9w& NOT '=)**)-eozw)jt@hh!lkdc3k-h$gty+12sv)i(r8lp6rn9yn9w&' Retaining the single quotes will cause the install to fail.

After entering the above click the 'Deploy app' button at the bottom of the page.

This starts the deployment and on successful completion you will see a message at the bottom of the page 'Your app was successfully deployed.' along with two buttons, one for Managing your app and one to View - click 'View' button to open your app in your browser.

This URL is sticky so bookmark it for later use and you are done!

IMPORTANT: After significant testing I have found that the 3LO redirect to login, which this tool uses, may not work correctly if you are using Direct Portal Entry (where your login is on the community/institution landing page). I believe v1.0.5 mediates this issue.

Additionally, it appears that your 3LO session may expire hourly (check the "Who am I" link) requiring you to log out of the DSKTOOL via the "Learn Logout" link, return to the DSKTOOL homepage and when prompted relogin to Learn.


Release Notes

v1.2.6 (07/05/2022)

  • Fixed Heroku deployment
  • Fixed Docker deployment
  • Upgraded Python to 3.10.5
  • Upgraded Django to latest stable (4.0.6 as of this release).
  • Removed OSCELOT references
  • Fixed change report error on empty database.
  • Added capability to clear report database.
  • Added capability to download .zip of report database
  • Released comparable v1.2.6 docker image to https://hub.docker.com/r/oscelot/oscelot-dsktool/tags

Project URL changes:

As I continue to migrate away from OSCELOT naming, I will be moving to a yet to be available new github site with the new project name of DSKTOOL for Learn. I will also be changing the the docker hub URL. Watch release notes and docker-compose.yml file.

ToDo

  • Add Availability option to Enrollments Course/User searches
  • Add Date option to Enrollments Course/User searches
  • Add Role option to Course Membership updates
  • Clean up code redundancies

Prior Releases

v1.2.5 (04/11/2022)

  • Removed token expiration time from index page.
  • Added 'Contains' search operator on Users and Courses - now supports 'Contains' and 'Exact' searches.
  • Added User Family Name via 'Contains' only search operation.
  • Added Course Name via 'Contains' only search operation.
  • Added "Reason for change" feature - forces entry of why the change was made.
  • Added how-to for hosting on CPANEL.
  • Released comparable v1.2.5 docker image.

v1.2.1 (03/23/2022)

  • Removed token information from index page.
  • Added token expiration time to index page.
  • Altered 3LO behavior with 'offline' scope: Admin is no longer required to log in hourly on API access_token refresh.
  • Released comparable v1.2.1 docker image

v1.2.0 (03/14/2022)

  • Added Date and Availability options to Users/Courses DSK search
  • Added Course External Id to User Enrollment results
  • Fixed a couple annoying UI issues that no one else probably noticed
  • Released comparable v1.2.0 docker image

v1.1.6 (08/24/2021)

  • Fixed issue with DSK lists being truncated at 100
  • Released comparable v1.2.0 docker image.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published