{"id":19098549,"url":"https://github.com/ucfopen/faculty-tools","last_synced_at":"2025-10-15T07:20:24.695Z","repository":{"id":53418460,"uuid":"194930062","full_name":"ucfopen/faculty-tools","owner":"ucfopen","description":"Faculty Tools - A tool to launch other tools","archived":false,"fork":false,"pushed_at":"2023-05-22T22:30:31.000Z","size":447,"stargazers_count":8,"open_issues_count":8,"forks_count":4,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-04-19T04:42:21.858Z","etag":null,"topics":["canvas","canvas-lms","edtech","education","hacktoberfest","instructure","lti"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ucfopen.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2019-07-02T20:25:38.000Z","updated_at":"2025-01-27T22:10:02.000Z","dependencies_parsed_at":"2025-04-18T16:55:34.460Z","dependency_job_id":"3f227920-36f3-47c8-b1ef-b47009ebf6e9","html_url":"https://github.com/ucfopen/faculty-tools","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ucfopen%2Ffaculty-tools","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ucfopen%2Ffaculty-tools/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ucfopen%2Ffaculty-tools/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ucfopen%2Ffaculty-tools/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ucfopen","download_url":"https://codeload.github.com/ucfopen/faculty-tools/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251730793,"owners_count":21634452,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["canvas","canvas-lms","edtech","education","hacktoberfest","instructure","lti"],"created_at":"2024-11-09T03:46:14.493Z","updated_at":"2025-10-15T07:20:19.645Z","avatar_url":"https://github.com/ucfopen.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Build Status](https://travis-ci.org/ucfopen/faculty-tools.svg?branch=master)](https://travis-ci.org/ucfopen/faculty-tools)\n[![Coverage Status](https://coveralls.io/repos/github/ucfopen/faculty-tools/badge.svg?branch=master)](https://coveralls.io/github/ucfopen/faculty-tools?branch=master)\n[![Join UCF Open Slack Discussions](https://badgen.net/badge/icon/ucfopen?icon=slack\u0026label=slack\u0026color=pink)](https://dl.ucf.edu/join-ucfopen)\n\n# Documentation for Faculty Tools\n\n## Settings\n\nCreate a new `settings.py` file from the template\n\n```sh\ncp settings.py.template settings.py\n```\n\nEdit `settings.py` to configure the application. All fields are required,\nunless specifically noted.\n\n## Developer Key\n\nYou will need a developer key for the OAuth2 flow. Check out the [Canvas\ndocumentation for creating a new developer key](https://community.canvaslms.com/docs/DOC-12657-4214441833)\n\n- Have your redirect URI (`oauth2_uri`) ready, since you need it to make\n  the key.\n- When you make a key, copy the ID to `oauth2_id` and the key into `oauth2_key`\n  in your settings file.\n\n## Tool Whitelist\n\nAdd the tools you want instructors and faculty to see to `whitelist.json`.\n\n```js\n[\n    {\n        // The name of the tool from within the Settings page\n        \"name\": \"Installed Tool Name\",\n        // The unique tool id, not currently used\n        \"tool_id\": \"tool_id\",\n        // Allows viewable name to be different from installed name, ie: Attendance vs. RollCall\n        \"display_name\": \"Name to Display\",\n        // Short description of the tool to be displayed to the user\n        \"desc\": \"Tool Description\",\n        // Filename of screenshot. Must be in static/img/screenshots\n        \"screenshot\": \"screenshot.png\",\n        // Filename of logo. Must be in static/img/logos\n        \"logo\": \"logo.svg\",\n        // Link to the tool's documentation. Appears as the Learn More button\n        \"docs_url\": \"https://example.com/tool/docs/\",\n        // Turns off/on launch button inside Faculty Tools - Useful for docs\n        \"is_launchable\": true,\n        // What category to put the tool in. Options: Course Tool, Assignment Editor, Rich Content Editor\n        \"category\": \"Course Tool\",\n        // For future use\n        \"filter_by\": [\"all\"],\n        \"allowed_roles\": [\"\"],\n    },\n]\n```\n\n## Virtual Environment\n\nCreate a new virtual environment.\n\n```sh\nvirtualenv env\n```\n\nActivate the environment.\n\n```sh\nsource env/bin/activate\n```\n\nInstall everything:\n\n```sh\npip install -r requirements.txt\n```\n\n## Create DB\n\nChange directory into the project folder. Create the database in python shell:\n\n```sh\nfrom lti import db\ndb.create_all()\n```\n\nIf you want to look at your users table in the future, you can do so in the\npython shell:\n\n```python\nfrom lti import Users\nUsers.query.all()\n```\n\n## Environment Variables\n\nSet the flask app to `lti.py` and debug to true.\n\n```sh\nexport FLASK_APP=lti.py\nexport FLASK_DEBUG=1\n```\n\nAlternatively, you can run the setup script to simultaneously setup environment\nvariables and the virtual environment.\n\n```sh\nsource setup.sh\n```\n\n## Run the App\n\nRun the lti script while your virtual environment is active.\n\n```sh\nflask run\n```\n\nGo to the /xml page, [http://0.0.0.0:5000/xml](http://0.0.0.0:5000/xml) by default\n\nCopy the xml, install it into a course.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fucfopen%2Ffaculty-tools","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fucfopen%2Ffaculty-tools","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fucfopen%2Ffaculty-tools/lists"}