Crowdsorceress is a backend for Crowdsorcerer, a tool for crowdsourcing programming exercises for a CS1 course. After creating an exercise with the tool, it is sent here. Crowdsorceress generates two projects for the exercise: one for the template and one for the model solution. It then sends them both to TMC Sandbox, which checks that they both compile and that the tests pass for the model solution. Crowdsorceress sends the received results back to the frontend.
Crowdsorceress also takes care of the database and saves all submitted exercises there.
Created with Ruby on Rails.
Use this setup guide to get the project up and running on your local machine for development and testing purposes.
- Ruby on Rails
- Docker Compose
- ngrok
- The system is designed to be embedded in an online course material. This is why one needs a TMC user account to be able to use it. You can create an account here.
- Clone this repository
- Download submodules and build tmc-langs with
bin/pre_setup
- Run
docker-compose build
for Docker container setup - Setup database with
docker-compose run --service-ports web bin/rails db:setup
- To use the admin features, set the user associated with your TMC account as an admin by using the rails console
- Go to the directory in which you installed ngrok and run
./ngrok http 3000
- ngrok then gives you the url where sandbox results are sent. Copy and paste it to the environment variable BASE_URL
- Run
docker-compose up
- Submit exercises and peer reviews through the frontend: Crowdsorcerer
Run tests with docker-compose exec web bin/rails spec
while the docker container is running.
- Clone this repository
- Download submodules and build tmc-langs with
bin/pre_setup
- Run
docker-compose build
for Docker container setup - Run ngrok with
./ngrok http 3000
- Add the URL from ngrok to env variable BASE_URL
- Run
docker-compose up
* - Run tests in another terminal tab with
docker-compose exec web bin/rails spec
- Submit exercises and peer reviews through frontend Crowdsorcerer
Crowdsorceress is now on the Internet! Test your admin privileges today!