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

Coordination with SONA? #161

Open
danieljwilson opened this issue Mar 21, 2022 · 8 comments
Open

Coordination with SONA? #161

danieljwilson opened this issue Mar 21, 2022 · 8 comments

Comments

@danieljwilson
Copy link

I was wondering if there might be some sort of "nice" way to use ExpFactory with SONA?

From the SONA documentation:

image

Is there any way we could link the id/%USER_CODE% to the user token?

Basically I am hoping for two things:

  1. Users automatically taken to the correct URL that is connected to their Experiment Factory token
  2. Users' SONA IDs associated in some way with their token id for cross referencing and assigning credits
@vsoch
Copy link
Member

vsoch commented Mar 21, 2022

What is SONA?

If it's an external tool, my thinking is that you could design a battery where that is the last experiment, and then if we provide the token in the page for you to use, you could issue the redirect. You could also just provide them two links from the getgo, and send the second one when they finish the first.

@paulsharpeY
Copy link

https://www.sona-systems.com/

Popular with UK universities.

@danieljwilson
Copy link
Author

Sorry for not providing more detail - it is a participant management system. I think quite a few schools in Canada/US also use it - and they have a number of integrations with various experiment/survey platforms...(see page 56)...

I am thinking about your suggestions but not sure I completely follow yet. But I guess I could just have the first/final experiment be having them enter their SONA ID and then using that to match later...

@vsoch
Copy link
Member

vsoch commented Mar 21, 2022

Off the top of my head, what I'd try first is creating an "ending" experiment and then try to parse the session data into javascript, send a post to the server to finish, and then redirect to the SONA url. Here is what I found to load the session data. https://stackoverflow.com/questions/16312831/how-to-read-flask-sessions-using-javascript

Then if you package that into an expactory experiment, anyone can install for their use!

@danieljwilson
Copy link
Author

Unfortunately I don't really have any experience with javascript/flask so I am hesitant to start down that path (even though it seems interesting - just trying to keep focussed on the research goals atm).

I have created a new survey that just essentially asks the participant to input their SONA ID. This is a bit of a bodge but it has the benefit of being quick/simple.

The only thing is that I would like to have this survey always run FIRST, and then all of the other surveys/tasks run after in random order. However, in the documentation it looks like it is either all random or all ordered? Just wanted to double check that I am not missing something? Thanks!!

@vsoch
Copy link
Member

vsoch commented Mar 22, 2022

Unfortunately I don't really have any experience with javascript/flask so I am hesitant to start down that path (even though it seems interesting - just trying to keep focussed on the research goals atm).

Sure that's fair! As a JavaScript novice myself I don't think it would be hard to try, fwiw.

The only thing is that I would like to have this survey always run FIRST, and then all of the other surveys/tasks run after in random order. However, in the documentation it looks like it is either all random or all ordered? Just wanted to double check that I am not missing something? Thanks!!

Yes that's correct! Nobody has asked for just first/last so it hasn't been implemented. If this would be useful for you I can put some time in this evening, and we would do something like:

export EXPFACTORY_EXPERIMENT_FIRST=experiment-you-want-first
export EXPFACTORY_EXPERIMENT_LAST=experiment-you-want-last

And it would throw an error if an experiment isn't found, or if first == last and there are > 1 experiment. How does that sound? I can put in some time this evening to work on it, unless you beat me to it.

@vsoch
Copy link
Member

vsoch commented Mar 22, 2022

okay here you go!

#162

It's really early here and I need to go back to sleep, but I tired to put something in quickly so you can test. Try updating your dockerfile to build from this branch, add the specification of the first and or last envars, and please report any bugs / issues on the PR (and I can get to them along with finishing up docs tonight). #162. Need to go back to sleep for a bit before the workday :)

@danieljwilson
Copy link
Author

Oh wow! I can't believe how quick you are! Will try this.
🙏

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

3 participants