This is Quill.org monorepo. This repo contains the code that powers Quill.org and its learning tools.
Here is a quick overview of the monorepo. Quill.org relies on a handful of applications. Here are the main ones:
Quill LMS (Learning Management System) is the main application in the repo (95% of the code in the repo lives here). This is where Quill teachers, students, classes, activities, questions, reports, etc. are all managed.
The Quill LMS is a Ruby on Rails application (v4.2). This application is backed by a Postgres database. Note, we've started to use Rails Engines to organize some newer code in the engines/
directory.
Most of the Quill LMS frontend javascript code is written in React and lives in the /client
directory. The React code is organized into a few main bundles
here based on learning tool and use.
The frontends for the Quill Learning Tools are contained in the Quill LMS:
Learning Tool | Demo | LMS Code |
---|---|---|
Quill Connect | demo | code |
Quill Lessons | demo | code |
Quill Diagnostic | demo | code |
Quill Proofreader | demo | code |
Quill Grammar | demo | code |
The Quill CMS is a small service application to store student responses for analysis. This data is stored separately from the Quill LMS to separate it from data that might have PII.
The Quill CMS is a Ruby on Rails application (v6.1) that supports a handful of API endpoints. This application is backed by a Postgres Database and has no frontend (html,css,javascript) code as it's purely an API service.
QuillLessonsServer is a real-time application that supports our in-classroom product Quill Lessons. It is a Node.js application backed by a RethinkDB data store. It is an API-only application that makes heavy use of socket.io
As mentioned above, this repo is most of the code we use day-to-day at Quill. Outside of the main applications, there are some smaller code items:
- Small javascript libraries live in packages.
- There are some serverless functions in lambdas.
- One-off scripts live in scripts/
Checking out open issues is a great way to get started as an open source contributor. Also, if you are just touring the codebase, I'd start with QuillLMS.
Note, we have style guides for Ruby and Javascript and a Code of Conduct
Thanks for your interest in Quill.org!
We use Assistiv to test our website for compatibility with screenreaders and other assistive software.