Unified, libre interface to learning management systems

Alyssa Rosenzweig 3faafff509 downloader: Crude escape for slashes 5 years ago
docs e74561aae8 Fixes typo in documentation and corrects link which notabug appears to incorrectly handle 5 years ago
polyglot 3faafff509 downloader: Crude escape for slashes 5 years ago
.gitignore 3f1624d243 add .gitignore, requirements.txt, setup.py 6 years ago
LICENSE 00bc7432a1 Initial commit 6 years ago
README.md 422f9ae7a2 Note that 5 years ago
requirements.txt 3f1624d243 add .gitignore, requirements.txt, setup.py 6 years ago
setup.py 0ffccdcdb9 Fix install on modern python 5 years ago

README.md

Polyglot

Unified, libre interface to learning management systems

The problem

"Digital classrooms" are increasingly popular. Ethical software, used appropriately, can be beneficial in schools. Unfortunately, educational software today is fragmented and proprietary, a problem which has been covered before. In an era where student privacy is trampled, this is particularly unacceptable. To add insult to injury, the relevant proprietary programs do not even interoperate with each other; in extreme cases, students may need to use upwards of a dozen proprietary systems merely to complete their coursework.

The solution

Enter Polyglot (name very tentative). Polyglot is free software to interface with each educational platform, so as to unify them and avoid proprietary components. Polyglot is to education as Pidgin is to chat and youtube-dl is to streaming.

Supported services (in order of support)

  • SchoolLoop: grades, task lists, LoopMail (todo: upload, forums, etc)
  • Haiku / PowerSchool Learning: modules, forums (todo: quizzes, upload, etc.)
  • Email: sending, receiving (todo: threading, MIME types, attachments, etc)
  • Moodle: fetch resource lists, classes, and grade summaries (todo: quizzes, wrap links, lots of bug fixes, etc.)
  • Canvas: fetch classes and grade summaries (todo: everything)
  • Webassign: downloading problem sets (todo: submission, fancy problems)
  • Classroom: fetch classlist (todo: everything)

Bold indicates that I currently use this backend with Polyglot in production so you can bug me over email if it breaks (alyssa@rosenzweig.io).