Package: bride-of-frankensystem
Intended UsesBride of Frankensystem (BOF or BOFS) is intended to be used by developers to deploy custom-developed experiments online.
It provides a variety of solutions to common problems associated with online experiments while being easily extended in
a way that minimizes code duplication and encourages code reuse. Its design focuses on flexibility rather than providing
concrete solutions to every scenario, and so is targeted primarily towards software developers while still being
accessible for non-developers for many simple use-cases.BOF is built usingFlaskand is intended to be used as a Python library. Because
it is built with Flask, all Flask extensions and features are supported, and it is relatively straightforward to extend
the project with your own custom web pages and tasks.If you use this for your research, please cite it!FeaturesBOF includes a number of features relating to deploying online experimentsBuilt-in consent page in which the text can be easily configured.Automatic random assignment of participants to various conditions.Define the experiment's flow in terms of URLs.Define questionnaires using a custom JSON structure.Create your own custom web pages (using Python and Flask) to embed custom tasks.Easily embed your own custom instructional pages without writing Python code.Admin panel to track participants' progress and export data.DependenciesBOF requires Python 3.7+, along with the following Python packages.flask- The web framework that BOF is based off of.sqlalchemy- An object-relational manager that is used for database table definitions and query access.flask-sqlalchemy- A bridge between Flask and SQLAlchemy/eventlet- This is used as the production (live) web server, as an alternative to Flask's built in web server or the Apache web server.toml- The configuration files use the toml format.InstallationIt is highly recommended that you install BOFS in a virtual environment (venv). What
this does is ensure that your project always has access to the version of BOF that it was developed with.The steps for doing this are:Create the venv with:python -m venv bofs_venvActivate the venv.In Windows this is done via.\bofs_venv\Scripts\activate.batif usingcmdor.\bofs_venv\Scripts\Activate.ps1if using Powershell (the default command line in Windows 11).In MacOS or Linux this is done viasource bofs_venv/bin/activateInstall BOFS via pip:pip install bride-of-frankensystemfor the latest version.Or, for the latest development version, download the project source code as a zip and install it via pip:pip install bride-of-frankensystem-master.zipEnsure that you can execute theBOFScommand. Try it without any arguments and you should see a help message.Running BOFSOnce installed viapip, you can run your project by executing theBOFS <your_config_file>command in your project directory.
You can use the-dflag to enable debugging mode. If you are using PyCharm, then you can run it by adding a custom run
configuration withBOFSas the module name and your config file as the parameter.If you installed BOFS via venv as suggested, then you will need to activate the virtual environment via step 2 of the installation instructions.Further HelpExample ProjectsWikiMigrating to BOF 2.0