Signalbox
============


SignalBox is a web application application designed to make it easy to run clinical and other studies. Signalbox makes it easy to recruit, take consent from, and follow-up large numbers of participants, using a customisable assessment schedule.

Read the docs: http://signalbox.readthedocs.org/en/latest/

Local install
---------------

To install::
	
	mkvirtualenv signalbox_virtualenv
	pip install signalbox
	bootstrap_signalbox
	newprojectname
	cd newprojectname
	chmod 755 app/manage.py
	pip install -r requirements.txt
	source local-environment-example.sh
	app/manage.py syncdb
	app/manage.py migrate
	app/manage.py runserver

Then open http://127.0.0.1:8000/admin  to view the admin site on your development machine.



Hosted installation
--------------------

To get it running on heroku's free plan, install the heroku command line tool and sign up for an account with them (https://devcenter.heroku.com/articles/quickstart). Then inside the new directory created above::

	git init
	git add -A
	git commit -a -m "initial commit"
	heroku apps:create yoursignalboxappname
	heroku addons:add heroku-postgresql:dev
	git push heroku master
	source heroku-environment-example.sh 
	heroku run app/manage.py syncdb
	heroku run app/manage.py migrate
	heroku apps:open	


And now remember to add a scheduled task to send observations::

	heroku addons:add scheduler
	heroku addons:open scheduler
	
	
You'll want to add scheduled tasks for::

	app/manage.py runtask send
	app/manage.py runtask remind
	app/manage.py cleanup
	
The frequency is up to you - more often can cost more in dyno time if it overruns the free quota (but not much).
	

