Canvas as a frontend for polyglot

Alyssa Rosenzweig 05785edceb Literal body %!s(int64=6) %!d(string=hai) anos
images 7cea452997 Move everything up one %!s(int64=7) %!d(string=hai) anos
jsx 7cea452997 Move everything up one %!s(int64=7) %!d(string=hai) anos
messages 71c6e1bfd2 Transform mustache templates with stage 1 %!s(int64=7) %!d(string=hai) anos
stylesheets eb5ec3cf93 Remove references to deleted fonts %!s(int64=7) %!d(string=hai) anos
views 05785edceb Literal body %!s(int64=6) %!d(string=hai) anos
.gitignore 8182cae555 changes for polyglot being a Python package %!s(int64=7) %!d(string=hai) anos
COPYRIGHT dcfc0aee97 initial %!s(int64=7) %!d(string=hai) anos
LICENSE dcfc0aee97 initial %!s(int64=7) %!d(string=hai) anos
README.md 8182cae555 changes for polyglot being a Python package %!s(int64=7) %!d(string=hai) anos
mama.sh dcfc0aee97 initial %!s(int64=7) %!d(string=hai) anos
must.sh d3a88b7850 Fix %!s(int64=7) %!d(string=hai) anos
mustize.sh dcfc0aee97 initial %!s(int64=7) %!d(string=hai) anos
requirements.txt 8182cae555 changes for polyglot being a Python package %!s(int64=7) %!d(string=hai) anos
style.sh e94eefea2a Fixx sass %!s(int64=6) %!d(string=hai) anos
web-server.py 05785edceb Literal body %!s(int64=6) %!d(string=hai) anos

README.md

Palette

Palette is a fork of Canvas to act as a polyglot backend.

Canvas is a modern, open-source LMS developed and maintained by Instructure Inc. It is released under the AGPLv3 license for use by anyone interested in learning more about or using learning management systems.

Palette is derived from Canvas, a JavaScript-heavy Ruby-on-Rails application. The backend is removed (no more Ruby!), as well as the frontend JavaScript. Remaining are JSX and ERB templates, which we semi-automatically convert to mustache, and the SCSS stylesheets, which are statically compiled. Then, the mustache templates are populated from a stub Python server with data from polyglot, which does the heavylifting.

Development requirements

You will need to install the Sass CSS preprocessor. As root:

# Arch
pacman -S ruby-sass

# Debian
apt install ruby-sass

You'll also need to install Python dependencies:

pip install -r requirements.txt

And, of course, you'll need to follow Polyglot's installation instructions as well.