Skip to content

Organize and sync data between Canvas Learning Management System and Blackbaud Student Information System

Notifications You must be signed in to change notification settings


Repository files navigation

Classroom Console

Classroom Console is an administrative tool to help educational institutions better manage their digital learning environments. It organizes and syncs data between Canvas Learning Management System (LMS) by Instructure, and the OnCampus LMS by Blackbaud, bundled with a broader suite of school management solutions.


Make sure you have Rails 6 installed. Then clone the repository and run bundler.

git clone
cd classroom_console
rails s
# Visit localhost:3000 in your web browser


Recommended Configuration (as of Nov 30, 2020)

  • Rails 6.0.3
  • Ruby 2.7.2
  • Ubuntu 20.04
  • Digital Ocean Droplet

With a fresh Ubuntu 20.04 instance:

Access the Server

It is good practice to avoid using root as the primary user and instead create a dedicated user without unnecessary privileges.

Login as root


Create user 'deploy', assign a strong password, and grant sudo permission.

adduser deploy
# set a password
adduser deploy sudo

Log in as user 'deploy', and add your development machine's public key for more secure, password-less shell access.

su - deploy
mkdir .ssh
nano .ssh/authorized_keys

On your local machine, run cat ~/.ssh/ and paste the result back on the remote server into '.ssh/authorized_keys' and save the file.

Set up Production Environment

From here I recommend following this GoRails guide starting with the section "Installing Ruby". Continue through the guide until you get to the section on deploying with Capistrano.

  1. Install Ruby through rbenv version manager
  2. Install Nginx and Passenger as our webserver
    • Make sure to replace any instances of "myapp" with "classroom_console".
  3. Set up a database
    • If you have your own database server, you may skip this step
    • Otherwise, PostgreSQL is recommended but MySQL is fine too.

Azure SQL Server Users

If you intend to use an Azure SQLServer run the following:

sudo apt-get install freetds-dev

Clone the Repository on your Local Machine

You will be executing the command to deploy the app from your local machine. For this, you need a local copy of the repository.

git clone
cd classroom_console

If you are using Azure SQL Server, check out the branch 'sqlserver'.

git checkout sqlserver



Local Environment Variables

Be sure to add PRODUCTION_IP to .env

Deploy with Capistrano

You can skip most of the GoRails section on setting up Capistrano as it is already done for you. Take a look in config/deploy/production.rb

server ENV['PRODUCTION_IP'], user: 'deploy', roles: %w{app db web}

Instead of including

mkdir /home/deploy/myapp nano /home/deploy/myapp/.rbenv-vars

Sample .rbenv-vars

# Database credentials

# Config for local PostgreSQL database


# ~/classroom_console/.rbenv-vars

# Mailserver Settings

Finally, run the deploy command. You will be prompted to deploy the current branch.

cap production deploy


Organize and sync data between Canvas Learning Management System and Blackbaud Student Information System