minhduc19 / OSCELOT-DSKTOOL-for-HEROKU

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

OSCELOT DSKTOOL for HEROKU v1.1.6 (08/24/2021)

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 on Heroku and as a Docker container. You may read about Heroku here: https://heroku.com. You may read about Docker here: https://www.docker.com. See this project's ./docker/README.md for Docker details.

With this release I am deprecating https://github.com/moneil/DSKTool and will remove that repository by the end of the year.

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 the below 'Deploy to Heroku' button will open Heroku to your application setup screen.

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

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 requiring you to log out of the DSKTOOL, sign into Learn, and return to the DSKTOOL.


Release Notes

v1.1.6 (08/24/2021)

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

ToDo

  • Add Calendar selection for date limiting searches
  • Clean up code redundancies

v1.1.6 (08/24/2021)

  • Fixed issue with Django ALLOW_HOSTS which prevented docker images from correctly running
  • Released comparable v1.1.6 docker image.
### 1.1.1 (02/29/2021)
  • Fixed a few annoying UI/UX issues
  • Added System Admin role check to page loads and API calls
  • Cleaned up the code a bit in the process
  • Released v1.1.1 docker image.

1.1.0 (01/04/2021)

  • Fixed annoying 'undefined' error on User and Course searches
  • Fixed a few annoying UI/UX issues
  • Added Data Source Key searches to Courses and Users
  • Added optional DSK filtering on Course and User Enrollment searches
  • Added error alerts when re-login is required
  • Released v1.1.0 docker image.

v1.0.11 (10/04/2020)

  • AJAX'd the Course page
  • Cleaned up JS console logging

v1.0.10 (09/29/2020)

  • AJAX'd the User page
  • Fixed enrollments availability selection bug
  • Removed json details from pages for application consistency (all that, and much more, is written to the browser JavaScript console)
  • Also fixed a few display issues.
Next up - AJAX Course/Org page.

v1.0.9 (09/27/2020)

This release improves readibility of tables:

  • Added 'sticky' table header and inner grid to all tables.
  • Added Course User Role to enrollment results.
  • Also fixed a display bug on loading non-enrollment pages.
  • Removed release notes from application index page (you may find them here).
  • Added version info to bottom of application index page.
Next up - AJAX Course/Org and User pages.

v1.0.8 (09/25/2020)

This release focuses on improving the user experience for searching and updating Enrollments:

  • Enrollments: Added Course/Org and User membership searches and updating to Enrollments
  • Enrollments: Course/Org and User membership searches support externalId and courseId/Username
  • Enrollments: Improved UI using AJAX
  • Enrollments: Added alerts for entry validation and errors
  • Enrollments: Substantial logging to Javascript console for debugging
  • Added Docker deployment support (docker-compose.yml) see docker/README.md for details.

v1.0.5 (08/16/2020)

  • Begin support for single project for multiple deployment models (Heroku, Desktop, or Docker). Current code fully supports Heroku and local use. Use the above deploy button or follow the instructions in the local folder. Docker coming soon.
  • Added 3LO handling for guest user results when target Learn instances use SSO or Direct Entry.
  • Added 3LO and 500 error trapping.

v1.0.4 (07/29/2020)

  • Delete session cookie when Learn Logout link is used.
  • Moved older release notes from app index page to here.

v1.0.3 (07/29/2020)

  • Heroku Deployable!
  • 3LO required on all pages

v1.0.2 (07/28/2020)

  • Heroku Enabled!(working out some DB details)
  • 3LO required on index load
  • strips spaces from around search terms

v1.0.1 (07/27/2020)

  • Fixed django issues which were preventing correct loading
  • Updated installation notes

v1.0 (07/26/2020)

  • Supports Data Source Key and Availability status for **single** User, Course, and Enrollment Records.
  • Supports non-TLS (SSL) local python and Docker Desktop deployments
  • Supports TLS (SSL) deployments (see below TLS section)

About


Languages

Language:HTML 32.2%Language:Python 25.5%Language:JavaScript 23.9%Language:CSS 18.3%Language:Dockerfile 0.1%