Giter Site home page Giter Site logo

ucfopen / faculty-tools Goto Github PK

View Code? Open in Web Editor NEW
10.0 7.0 4.0 447 KB

Faculty Tools - A tool to launch other tools

License: MIT License

Python 83.03% Ruby 0.16% Shell 0.20% CSS 6.04% JavaScript 2.73% HTML 7.84%
instructure canvas canvas-lms lti edtech education hacktoberfest

faculty-tools's Introduction

Build Status Coverage Status Join UCF Open Slack Discussions

Documentation for Faculty Tools

Settings

Create a new settings.py file from the template

cp settings.py.template settings.py

Edit settings.py to configure the application. All fields are required, unless specifically noted.

Developer Key

You will need a developer key for the OAuth2 flow. Check out the Canvas documentation for creating a new developer key

  • Have your redirect URI (oauth2_uri) ready, since you need it to make the key.
  • When you make a key, copy the ID to oauth2_id and the key into oauth2_key in your settings file.

Tool Whitelist

Add the tools you want instructors and faculty to see to whitelist.json.

[
    {
        // The name of the tool from within the Settings page
        "name": "Installed Tool Name",
        // The unique tool id, not currently used
        "tool_id": "tool_id",
        // Allows viewable name to be different from installed name, ie: Attendance vs. RollCall
        "display_name": "Name to Display",
        // Short description of the tool to be displayed to the user
        "desc": "Tool Description",
        // Filename of screenshot. Must be in static/img/screenshots
        "screenshot": "screenshot.png",
        // Filename of logo. Must be in static/img/logos
        "logo": "logo.svg",
        // Link to the tool's documentation. Appears as the Learn More button
        "docs_url": "https://example.com/tool/docs/",
        // Turns off/on launch button inside Faculty Tools - Useful for docs
        "is_launchable": true,
        // What category to put the tool in. Options: Course Tool, Assignment Editor, Rich Content Editor
        "category": "Course Tool",
        // For future use
        "filter_by": ["all"],
        "allowed_roles": [""],
    },
]

Virtual Environment

Create a new virtual environment.

virtualenv env

Activate the environment.

source env/bin/activate

Install everything:

pip install -r requirements.txt

Create DB

Change directory into the project folder. Create the database in python shell:

from lti import db
db.create_all()

If you want to look at your users table in the future, you can do so in the python shell:

from lti import Users
Users.query.all()

Environment Variables

Set the flask app to lti.py and debug to true.

export FLASK_APP=lti.py
export FLASK_DEBUG=1

Alternatively, you can run the setup script to simultaneously setup environment variables and the virtual environment.

source setup.sh

Run the App

Run the lti script while your virtual environment is active.

flask run

Go to the /xml page, http://0.0.0.0:5000/xml by default

Copy the xml, install it into a course.

faculty-tools's People

Contributors

keeeeeegan avatar ssilverm avatar thetwam avatar zachberry avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

faculty-tools's Issues

.github folder

Add a .github directory including cool features like:

  • a CODEOWNERS file that we can use to automatically assign the team to new PRs
  • issue templates
  • PR templates

Travis CI

When we hosted this project internally, we used GitLab CI. Now that we're open source on GitHub, we should move to a new CI platform like Travis.

Upgrade Flask-Testing

Describe the bug

We previously had issues with the production version of Flask-Testing, where it was incompatible with Werkzeug>=1.0.0, and pinned a specific branch from their GitHub repo. That branch has since been deleted, but the production package has been updated with the new code.

Update our requirements file to pin Flask-Testing to at least 0.8.0.

Black

Add black check as a required test.

Multiple Installs of a Tool Link to Single Instance.

Describe the bug

Multiple installs of the same tool, appear to use the same launch links, despite having different launch info.

To Reproduce

Steps to reproduce the behavior:

  1. Install a tool with one set of configs
  2. Install the same tool with slightly different config
  3. Launch Faculty Tools and observe that there are two cards for the instances, but they both link to the same instance.

Expected behavior

Each card should link to a different instance.

Environment information

  • Python version (python --version) 3.7.6

Additional context

Discovered this due to an old instance of our internal proctoring software being installed at the course level (with old key/secret), alongside the new instance being installed at the account level.

Update all `http` URLs to the IMS Global LTI rules to `https`

Per 1EdTech

Upcoming Change to IMS Domain
Effective April 1, 2024
This is an important notice for organizations that are referencing hardcoded imsglobal.org XSDs in your software.
Effective April 1, 2024, 1EdTech will automatically redirect all traffic from its previous domain, http://www.imsglobal.org/, to https://www.imsglobal.org/.
Starting on April 1, we will redirect all files located on www.imsglobal.org to the new secure website—they will no longer be available via HTTP. This change will impact XSDs as well as other files.
The imsglobal.org will eventually be deprecated and go away completely.
Please check any URLs currently resolving to www.imsglobal.org and change them accordingly. XSDs are already located at the secure location so that testing can begin immediately.
We are implementing this change to ensure that we follow best practices. You should not have any issues if you properly respect the 301 redirect protocol by W3C.
1EdTech’s technical staff are available to help with questions.

Update http to https accordingly.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.