QuillLMS is the Learning Management System that powers Quill.org, a free writing tool. QuillLMS is part of Empirical-Core, our web app for managing students, assigning activities, and viewing results
Fork and Clone this repository to submit a Pull Request
In your terminal:
- Clone the Empirical Core repo
git clone https://github.com/empirical-org/Empirical-Core.git
- Navigate to LMS directory:
cd services/QuillLMS
- (recommended) Install Postgres.app
- install the binary
- create a postgresql v15 server through the Postgres.app GUI and start it
- Run install script:
sh bin/dev/bootstrap.sh
- Open your browser to localhost:5000, the app should be running.
QuillLMS is the Learning Management System that powers Quill.org. It is part of Empirical-Core Here's how to get QuillLMS running on your system:
-
Download and install rbenv (or another Ruby version manager of your choice). You need to have Ruby version 3.1.4 installed in order to use Empirical Core. The best way to make sure you have version 3.1.4 is to follow the README and wiki of the Ruby version manager that you download. (You can check the .ruby-version file to find out the latest ruby version we are using in case this readme is out of date).
If you decide to use rbenv, then homebrew has a really great and easy-to-use setup and install process:
brew update
brew install rbenv ruby-build
echo 'eval "$(rbenv init -)"' >> ~/.bash_profile
- Close and reopen your terminal.
-
Download and install postgres version 15.6, the database engine Empirical Core uses. The easiest way to get started with this is to download postgres.app.
If you're more comfortable with installing custom software, you can use homebrew to download and install postgres instead using the following commands:
brew update
brew install postgres
- Follow the instructions on the resulting info screen.
-
Install Redis. You can download it directly.
Alternatively, you can use homebrew to install it by running
brew install redis
. -
Navigate to the directory where you'd like Empirical Core to live, then run the following command to clone the Empirical Core project repository:
git clone https://github.com/empirical-org/Empirical-Core.git
-
Use
cd Empirical-Core/services/QuillLMS
to change directory into the QuillLMS service. -
Install bundler with
gem install bundler
. -
Set bundle config, needed for sidekiq-pro
export BUNDLE_GEMS__CONTRIBSYS__COM=$(heroku config:get BUNDLE_GEMS__CONTRIBSYS__COM -a empirical-grammar)
bundle config --local gems.contribsys.com $BUNDLE_GEMS__CONTRIBSYS__COM
-
Install the bundle with
bundle install
. -
Troubleshooting unicode 0.4.4.4: on an M1 mac, you may need to install the unicode gem with the following flag:
gem install unicode -- --with-cflags="-Wno-incompatible-function-pointer-types"
From stack overflow -
Install node via nvm. Run
nvm install
to install the version of node used by this app. Note: check that the.nvmrc
file has the same version of node as in thepackage.json
file. -
Install npm by running
brew install npm
-
Install node modules by running
npm install
-
Copy the environment
cp -n .env-sample .env
-
You'll have to manually add BIGQUERY_CREDENTIALS from the heroku empirical-grammer-staging Config Vars
-
Install pgvector
-
Run
bundle exec rake empirical:setup
to automagically get all of your dependencies and databases configured. -
You're ready to run QuillLMS! Switch back into the QuillLMS directory
- Run the server using the command
foreman start -f Procfile.dev
- Note: if you get the error
Failed listening on port 7654 (TCP)
it means there is an extra redis instance running. You can runlsof -i :7654
and then kill the redis process. - Note 2: if you get an error on port 5000, and you're on a mac, it may be your airplay server which you'll have to turn off. See this post for info.
- Navigate your browser to localhost:5000.
- When you're done with the server, use Ctrl-C to break it and return to your command line.
- Run the server using the command
In case you are unable to start QuillLMS on your computer, please submit and issue. If you found a work around, we would also love to read your suggestions!
For more information on setting up and launching QuillLMS, visit the docs.
- backend
- you will need to populate the .env file with
ACTIVE_RECORD_ENCRYPTION_PRIMARY_KEY
,ACTIVE_RECORD_ENCRYPTION_DETERMINISTIC_KEY
andACTIVE_RECORD_ENCRYPTION_KEY_DERIVATION_SALT
by following instructions in that file.
bundle exec rspec spec
- frontend
- ESLint: from the root directory run
npm run eslint
- Tests:
npm run jest
- See test runner here
- For an individual test you can run:
npm run jest [text]
which will just wildcard whatever the text is -- so if I want to run all the tests in Connect I just run npm run jest Connect. npm run jest [your/file/path]
- ESLint: from the root directory run
bash deploy.sh staging|staging2|sprint|prod
staging (Heroku) staging 2 (Heroku) sprint (Heroku) production (Heroku)