empirical-org / Empirical-Core

Empirical Core is the mono repo for the Quill.org codebase. This repo contains both the Quill Learning Tools, such as Quill Connect, and the Quill Learning Management System, the platform that enables teachers to provide assignments and view results. (Empirical is the name of the nonprofit building Quill.org).
http://www.quill.org/
GNU Affero General Public License v3.0
25 stars 4 forks source link
edtech education js rails react ruby writing

Welcome to the Quill!

This is Quill.org monorepo. This repo contains the code that powers Quill.org and its learning tools.

Overview

Here is a quick overview of the monorepo. Quill.org relies on a handful of applications. Here are the main ones:

QuillLMS (Learning Management System)

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

QuillCMS

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

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

Other

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:

Getting started

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.

Contributing

contributing guide

Note, we have style guides for Ruby and Javascript and a Code of Conduct

Thanks for your interest in Quill.org!

Accessibility testing

We use Assistiv to test our website for compatibility with screenreaders and other assistive software.