Coursemology is an open source gamified learning platform that enables educators to increase student engagement and make learning fun.
- Ruby (= 3.0.6)
- Ruby on Rails (= 6.0.6.1)
- PostgreSQL (>= 9.5)
- ImageMagick or GraphicsMagick (For MiniMagick - if PDF processing doesn't work for the import of scribing questions, download Ghostscript)
- Node.js (v18 LTS)
- Yarn
Coursemology uses Ruby on Rails. In addition, some front-end components use React.js. This guide written by the awesome people at GoRails should help you to get started on Ruby on Rails (however, be careful about the Rails version that you are going to install here. Please refer to the system requirements for the version of Rails you need to have for your system)
-
We use submodules in the git repo; use this command to update submodules:
$ git submodule update --init --recursive
-
Download bundler to install dependencies
$ gem install bundler:2.2.33
-
Install ruby dependencies
$ bundle config set --local without 'ci:production' $ bundle install
-
Install javascript dependencies
$ cd client && yarn; cd -
-
Create and seed the database
$ bundle exec rake db:setup
-
Bind the IP address
127.0.0.1
tolvh.me
by running the following commandhost lvh.me
-
Open up 2 different terminals, each to run the Frontend and Backend. On the terminal for Frontend, run
yarn build:development
and on the terminal for Backend, run
bundle exec rails s -p 5000
-
Access the App by visiting
http://lvh.me:8080
-
You're all set! Simply login with the default username and password:
Email:
test@example.org
Password:
Coursemology!
To make sure that multi tenancy works correctly for you, change the default host in config/application.rb
before deploying:
config.x.default_host = 'your_domain.com'
Email reminders for items which are about to start are sent via a cronjob which should be run once an hour. See config/initializers/sidekiq.rb
and config/schedule.yml
for sample configuration which assumes that the Sidekiq and Sidekiq-Cron gems are used.
If you use a different job scheduler, edit those files so your favourite job scheduler invokes the ConsolidatedItemEmailJob
job once an hour.
Create an issue on the Github issue tracker or come talk to us over at our Slack channels.
We welcome contributions to Coursemology! Check out the issue tracker and pick something you'll like to work on. Please read our Contributor's Guide for guidance on our conventions.
If you are a student from NUS Computing looking for an FYP project, do check with Prof Ben Leong.
Copyright (c) 2015-2023 Coursemology.org. This software is licensed under the MIT License.
You're more than welcome to use Coursemology for your own school or organization. If you need more help, join our Slack channel to reach our core developers.
We are actively running Coursemology and can provide free use of our infrastructure on a case by case basis. Please contact Prof Ben Leong if you would like to explore this option.
The Coursemology.org Project was made possible by a number of teaching development grants from the National University of Singapore over the years. This project is currently supported by the AI Centre for Educational Technologies.