Skip to content

A web application for ITS staff to cross-list multiple Canvas courses at once.

Notifications You must be signed in to change notification settings

sdsu-its/Django-Canvas-CrossLister

Repository files navigation

Canvas-CrossLister

Canvas Crosslister Preview

A web application that allows SDSU ITS staff to cross-list, combine and transfer the enrollments of a multiple sections of a course.

Built using

  • HTML5
  • CSS
  • Bootstrap
  • JavaScript
  • Python
  • Django
  • CanvasAPI

Prerequisites

To run this application, you must have Python installed on your computer. You will need Python 3 to use the tool. You can download it from here:

https://www.python.org/downloads/

You will also need the Canvas API key. The current Canvas URL in this version is set for beta testing only. Thus, you will need the API key from your beta environment, not production. If you don't know how to get the API key, then install the application first as it will tell you how to generate the key from your Canvas environment.

Also refer to the project directory structure at the bottom, to refer how folders are set up within application.

Setup & Installation

Download the repo into your local machine and unzip it. Makes sure to store it somewhere safe if you want to use the application on a regular basis.

Next, go inside the main Canvas-CrossLister directory. Open you terminal inside this directory and run the following command on your terminal to install all the packages and it's dependencies:

python3 setup.py develop

Running the Application

It is important to know that this application runs locally on your browser by starting a local server. So you have to start or run the server first.

If you are inside Canvas-CrossLister directory, then go to the appliction folder. Now, run the following command from your terminal:

python3 manage.py runserver

If the command is successful, the terminal should give you an output stating the URL of the local server. This command started a localhost where your application is now currently running. The URL of your localhost is usually 127.0.0.1:8000.

IMPORTANT: Not all the time the URL of the localhost is set to 127.0.0.1:8000. Make sure to verify using the terminal.

Data

There is a data.json file that holds all our data and class information. This is one of the core components of the application.

Depending which Canvas environmnent you are trying to connect the application, you will have to pull data from the respective instance. The current version has data.json loaded from the beta instance.

Just in case you need to update the data.json for running the application on production,you will have to run the data.py first to update the data.json with production data. You will need your API key from your respective instance (e.g. beta or production) for this process.

Go to the crosslist folder under the appliction directory. Run the following command on your terminal:

python3 data.py

You will have to run this command once, every semester or only when you need to update the data reflecting on your Canvas instance.

Limitations

As of current, these are the following limitations you should be aware of when using the application:

  • After crosslisting, the sub-accounts is not transferred.
  • SIS ID for the new shell is also not generated automatically.
  • You cannot de-crosslist through the application.

Project Directory Structure

├── Canvas-CrossLister
│   ├── Canvas_Crosslister.egg-info
│   │   ├── PKG-INFO
│   │   ├── SOURCES.txt
│   │   ├── dependency_links.txt
│   │   ├── requires.txt
│   │   └── top_level.txt
│   ├── README.md
│   ├── __pycache__
│   │   └── main.cpython-37.pyc
│   ├── application
│   │   ├── __init__.py
│   │   ├── application
│   │   │   ├── __init__.py
│   │   │   ├── __pycache__
│   │   │   │   ├── __init__.cpython-37.pyc
│   │   │   │   ├── settings.cpython-37.pyc
│   │   │   │   ├── urls.cpython-37.pyc
│   │   │   │   └── wsgi.cpython-37.pyc
│   │   │   ├── asgi.py
│   │   │   ├── settings.py
│   │   │   ├── urls.py
│   │   │   └── wsgi.py
│   │   ├── crosslist
│   │   │   ├── Front-End\ Backups
│   │   │   │   ├── static
│   │   │   │   │   ├── logo.png
│   │   │   │   │   └── main.css
│   │   │   │   └── templates
│   │   │   │       ├── app.html
│   │   │   │       ├── base.html
│   │   │   │       ├── confirm.html
│   │   │   │       ├── home.html
│   │   │   │       ├── mainBackup.py
│   │   │   │       ├── result.html
│   │   │   │       ├── run.html
│   │   │   │       └── sdsuLogo.jpeg
│   │   │   ├── __init__.py
│   │   │   ├── __pycache__
│   │   │   │   ├── __init__.cpython-37.pyc
│   │   │   │   ├── admin.cpython-37.pyc
│   │   │   │   ├── apps.cpython-37.pyc
│   │   │   │   ├── mainBackup.cpython-37.pyc
│   │   │   │   ├── models.cpython-37.pyc
│   │   │   │   ├── urls.cpython-37.pyc
│   │   │   │   └── views.cpython-37.pyc
│   │   │   ├── admin.py
│   │   │   ├── apps.py
│   │   │   ├── data.json
│   │   │   ├── data.py
│   │   │   ├── forms.py
│   │   │   ├── mainBackup.py
│   │   │   ├── migrations
│   │   │   │   ├── __init__.py
│   │   │   │   └── __pycache__
│   │   │   │       └── __init__.cpython-37.pyc
│   │   │   ├── models.py
│   │   │   ├── static
│   │   │   │   ├── logo.png
│   │   │   │   └── main.css
│   │   │   ├── templates
│   │   │   │   ├── app.html
│   │   │   │   ├── base.html
│   │   │   │   ├── confirm.html
│   │   │   │   ├── home.html
│   │   │   │   ├── mainBackup.py
│   │   │   │   ├── result.html
│   │   │   │   ├── run.html
│   │   │   │   └── sdsuLogo.jpeg
│   │   │   ├── test.py
│   │   │   ├── tests.py
│   │   │   ├── urls.py
│   │   │   └── views.py
│   │   ├── db.sqlite3
│   │   └── manage.py
│   ├── build
│   │   ├── bdist.macosx-10.9-x86_64
│   │   └── lib
│   │       └── application
│   │           ├── __init__.py
│   │           └── manage.py
│   ├── canvasCrosslister.egg-info
│   │   ├── PKG-INFO
│   │   ├── SOURCES.txt
│   │   ├── dependency_links.txt
│   │   ├── requires.txt
│   │   └── top_level.txt
│   ├── dist
│   │   ├── Canvas\ Crosslister-0.1.tar.gz
│   │   ├── Canvas_Crosslister-0.1-py3-none-any.whl
│   │   ├── canvasCrosslister-0.1-py3-none-any.whl
│   │   └── canvasCrosslister-0.1.tar.gz
│   ├── setup.py
│   └── venv

For bugs, feedbacks or suggestions you can contact Mirza:��

[email protected]

About

A web application for ITS staff to cross-list multiple Canvas courses at once.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published