Giter Site home page Giter Site logo

tl-its-umich-edu / canvas-app-explorer Goto Github PK

View Code? Open in Web Editor NEW
4.0 5.0 6.0 2.66 MB

A Web application that presents a list of Canvas external (LTI) tools with details. When integrated within Canvas, the user can search for specific LTI tool(s), and add or remove those tools from Canvas courses.

License: Apache License 2.0

JavaScript 1.01% Python 69.29% Dockerfile 1.36% CSS 0.37% HTML 0.40% Shell 2.47% TypeScript 25.10%
django lti-tool canvas-lms django-rest-framework docker hacktoberfest python

canvas-app-explorer's Introduction

Usage

Development mode

Development mode for this application starts up 2 processes in the same container, one running on port 5000 (Python/Django backend) and one that writes to the disk and recompiles the frontend. This allows for changes to be picked up and re-built from the mounted local volumes.

With Docker installed run docker-compose down; docker-compose build && docker-compose up

Then the app in development should be accessible on http://localhost:5000/

Now you can make changes to files in frontend and the changes should show up in the browser automagically.

This app can currently only be launched via LTI. Please see the Wiki for instructions on configuring with LTI.

Using OpenAPI and Swagger

The backend uses the Django Rest Framework to build out a REST API. When DEBUG is equal to True in Django settings, the application leverages the drf-spectacular library to document existing endpoints and provide for API testing using Swagger.

The OpenAPI schema can be downloaded as a YAML file from http://localhost:5000/api/schema. To use the Swagger UI, do the following:

  1. Launch the tool from a course in Canvas.
  2. Right-click in the iframe and select "View Frame Source" in Chrome (or your browser's equivalent).
  3. Change the URL to navigate to /api/schema/swagger-ui.

Once on the page, requests can be made against the API using the "Try it out" functionality.

Testing production (Openshift) build

The openshift build compiles all of the frontend assets into the container during the build. It uses whitenoise currently to serve up the content.

To build, use the separate docker-compose-openshift-test.yml file. This uses a slightly different dockerfiles/Dockerfile.openshift that uses a static path and disables DEBUG.

docker compose -f docker-compose-openshift-test.yml build

Then to start it you can run docker compose -f docker-compose-openshift-test.yml up

This should start up as expected on http://localhost:5000

canvas-app-explorer's People

Contributors

danie1zhang avatar dependabot[bot] avatar github-actions[bot] avatar jonespm avatar plasmicops avatar roujiawang avatar show981111 avatar ssciolla avatar zqian avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

canvas-app-explorer's Issues

Make Privacy Agreement its own table

Privacy agreement has a limited number of values.

These seem to include:

It seemed like it was better to make this a separate editable table (like Canvas placements) rather than have this the textbox that it is now for consistency between items.

  • Covered under Data Protection Addendum for Canvas
  • Covered under Unizin Master Services Agreement
  • Data Protection Addendum
  • FERPA Acknowledgement Agreement
  • Not required.
  • Not required (U-M hosted)
  • No identifiable FERPA data exchanged with tool provider.
  • Pending

Appears node modules not in container

Error in terminal:
FileNotFoundError: [Errno 2] No such file or directory: '/code/frontend/webpack-stats.json'

Error shown on webpage:
OSError at /
Error reading /code/frontend/webpack-stats.json. Are you sure webpack has generated the file and the path is correct?

Make Django Secret and other variables configurable

This needs to be configurable before releasing to production.

We've typically used hjson and it's just worked. We've also used constance for variables that could be defined in the database.

Perhaps rather than hjson we can just use a .env file, in the past we used https://pypi.org/project/python-decouple/

SECRET_KEY = 'django-insecure-&24ubb46zaej*fd9jz1^mw1t0)-@zd9g74f!hcs1a48-7loo0r'

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.