The app in it's current state runs through a few stages. Here's a flowchart showing how they link, with comments on what happens between transitions:
flowchart TD
consent["Consent Form"]
landing["Landing"]
expR["Experiment\n Dialogue Tree"]
mid["MidLanding"]
survey["Survey"]
finale["Finale (Submit)"]
subgraph dialogueTree[" "]
expR --> mid
end;
subgraph holder["Dialogue Tree"]
direction RL;
anchor["cycle $current_experiment"]
style anchor fill:#FFFFFF00, stroke:#FFFFFF00;
dialogueTree --> anchor --> dialogueTree;
end;
consent --"All boxes checked and name entered."--> landing --"Set $current_experiment to URL param '?se=' or the default"--> holder
holder --"Cycled through all experiments in proj_config.knownExperiments"--> survey --"Dump of consent form, survey, and navigation history submitted to server."--> finale
URL parameters can alter some processes:
se=rwill set the first condition to be 'r' (and cycle around from there through the knownExperiments).sk=ywill setproj_config.skipConsentFormto true, skipping the consent form.sq=ywill skip the questionnaire.ke=r-c-rwill set theproj_config.knownExperimentsvariable to ["r" , "c", "r"].