How does it work? - kavyasukumar/shenanigans GitHub Wiki

Autotune is built with Ruby on Rails and distributed as a Rails Engine.

The Rails app handles storing stuff in a database, running shell commands against blueprints and projects and presenting a JSON API. The front-end is a javascript app built using Backbone.js, Bootstrap and Alpaca.js.

Process flow

When a blueprint is added to Autotune, Autotune clones the git repository. /images/flow.jpg

When a user creates a new project from the blueprint, Autotune reads the form description from autotune-config.json and passes it to Alpaca.js to create a project form.

Once the project is saved, Autotune runs a build command in a shell, passing along all the project data. It is up to the blueprint to handle the incoming data and generate a folder full of static html and assets. This folder is then deployed to a configurable destination.

All of these shell operations are performed in asynchronous jobs, so the front-end can stay responsive and build scripts can take as much time as they need to complete. The job scheduling is done using resque and redis.