Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[RFE] Option to send user to external URL instead of /finish #105

Open
tylerburleigh opened this issue Jul 20, 2018 · 5 comments
Open

[RFE] Option to send user to external URL instead of /finish #105

tylerburleigh opened this issue Jul 20, 2018 · 5 comments

Comments

@tylerburleigh
Copy link

I suggest an option to send the user to an external URL instead of /finish once they are finished with expfactory. Here are two basic use-cases:

  • As a researcher, I want the user to submit their personally identifiable information (PII) to me using a different server, database, etc... in order to isolate that information from the information collected by expfactory. This can be done easily at an external site.

  • As a researcher, I want the user to complete another task hosted on a different platform. For example, let's say I want the user to complete expfactory tasks, and then complete a survey on Qualtrics. At the moment, expfactory lacks some of the features found on survey platforms like Qualtrics, such as advanced question types, skip logic, display logic, responsive design, etc.

I added this feature to my fork here:

https://github.com/tylerburleigh/expfactory/commit/32287f75041a39ce7c4282731b2285650a95b41c

With this implementation, a URL parameter (goto_external) can be passed to a headless server, and if this parameter is passed, the user will be redirected there instead of /finish once they're finished with expfactory.

@vsoch
Copy link
Member

vsoch commented Jul 20, 2018

this is a great idea! I think it would good to add via a build and runtime argument, like

EXPFACTORY_FINISH_URL="/finish"

that then populates the view. But I like this idea too - it looks like you would want it to go in as an experiment variable? if we do it that way, is there any reason would couldn't have a global variable that (anywhere in a battery) would redirect to a url instead of whatever would come next? (and then the external thing can choose to go back to the experiment, if desired.

@vsoch
Copy link
Member

vsoch commented Jul 20, 2018

We could actually do both - have a "hard coded" finish url, and that is set when the experiment container is built, but then also an external_url parameter that can be picked up at any time. For the second, what about logic to get back to the experiment factory running?

@tylerburleigh
Copy link
Author

tylerburleigh commented Jul 20, 2018

I think the hard-coded option is a good idea. That would allow overriding /finish in a way that is less transparent to the user (something that can't be "mucked with," if that's a concern).

When you say "logic to get back to the experiment factory running"...
Do you mean for something like this?

- expfactory task 1 => external url => expfactory task 2

@vsoch
Copy link
Member

vsoch commented Jul 20, 2018

for the "hard coding" I mean at build time there are a bunch of variables defined in the Dockerfile that go into the defaults for starting the server, and then still on start can be modified. For example, for a default database as the filesystem you would do:

EXPFACTORY_DATABASE="filesystem"

in the Dockerfile, but then when you start the container there is a --database argument that would override that. So the default here would be /finish, and then the user could either build with a different default, or define it at container start.

@vsoch
Copy link
Member

vsoch commented Jul 20, 2018

see #106 for the first review! Going to be having dinner soon (I technically "took the day off today" which largely didn't happen, lol) so let's catch up / discuss over the weekend / next week.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants