Code Monkey home page Code Monkey logo

bang's People

Contributors

alliemb avatar ann-kandji avatar danonya666 avatar deliveryweb avatar dependabot[bot] avatar dmorina avatar dtatarenkov avatar i-gao avatar madewithsmiles avatar maikaisogawa avatar markwhiting avatar nmarda avatar phoebek avatar phoebexy avatar shuaixiaoqiang avatar tawnzz avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

bang's Issues

Run switch

Everything we change to run should be behind one meta bool.

@waitchat bug 1

If someone leaves the task during the pretask, it kills the task for everyone.

Deal with incomplete payment

Deal with situations where someone leaves or the system breaks and we still pay people.

The tricky thing is we need the task to be submitted to be able to pay them, so perhaps we autosubmit in some situations?

Also we can work with continuous payment, e.g. small upfront amount, and then pay a consistent hourly wage based on time working. In this case we could have a different payment level for waiting and for working.

Modification toggles will help control modifications

Right now there's a few toggles, e.g., const midSurveyToggle = false, intended to enable switching behavior depending on what we are trying to do with a particular run of the tool.

@maikaisogawa could you update the midSurvey too support this, and others in @StanfordHCI/scaled-humanity, can you ensure any other modifications you are adding have such controls. Of course if there seem to be other important controls for a particular modification, it would be good if we could collect those in one place so we can manage experiments easily. If we are doing AB testing, it will be helpful for us to be able to modify how a particular user sees the interface based on these toggles.

Cancel endpoint

We need an endpoint where if we have to kill it, we can navigate to that URL and it will:

  1. Push everyone to a page that explains that the experiment will stop and how they will be compensated.
  2. Upon submission, we pay each user and bonus them
  3. Our interface reports individual payments and total (either in console or at the endpoint)
  4. Kill the node app

Make bang a self contained library

Expose things like runBang and scheduleBang (for setting up future tasks)

I think making it independent from the mturk integration would be ideal.

Happy to chat about this if there's questions or ideas.

Termination message & feedback form for remaining users

Vision:

  • Blank page after the task is terminated with the something like this (I'll wordsmith more later):
    "Thank you for your time! Unfortunately, our group task requires a specific number of users to run, so once a user leaves, our task cannot proceed. To receive payment for this task, please provide suggestions for how to design our study better to prevent this issue: "
  • Open feedback form (like Alex's feedback button)
  • Hit code after submission

Group Performance Scale Deployment

Scale deployment
This scale should be deployed equal to the # of the team members in a group (i.e. after group 1, person A goes through a series of surveys, that each specify the name of the person on their team they are rating)
E.g.
Team with 4 members: Member A sees a survey asking him/her to rate team member 1, then team member 2 and so on….

Group Performance Scale
Scale measures
1 = far below average, 2 = below average, 3 = slightly below average, 4 = average, 5 = slightly above average, 6= above average, 7 = far above average
Textfile: https://github.com/StanfordHCI/bang/blob/master/txt/groupPerformance.txt

Reset keys and reference from .env

  • add any relevant build variables into .env
  • check that .env is work
  • make new keys and put them in .env
  • make sure old keys don't work and are removed from code

Chat room overflow

An issue from usability testing:

  • Messages/names from previous round can roll into another round (see attached screenshot and ask if you have any questions)
    screenshot_2018-07-26 team work

@waitchat bug 2

If pages are open from prior runs, disconnecting them after running again breaks. TODO noted around line 190 in server.

Improve waiting room

  • Let people come and go without causing problems to running experiments
  • Deal with overflow by running more experiments when possible (this means being able to run more than one experiment at once, which means having an experiment specific control flow.

There remain a few conditions where we break on boarding unnecessarily

  1. If a user drops out during the pre survey we can't recover, as in we've already kicked the users over to be running and we can't deal with the situation where one of those users leaves. Theoretically we should be able to delay consequences of that departure until the teams are actually running.
  2. If more users are in the waiting room than needed, and users start clicking in, there's still a potential point where we go beyond the desired number of users. e.g. we're expecting 4, we get 5 who accept, all of them can click to get started. I think we should basically not let that happen, and instead disable the button if the group is full, and then reenable it if we get a drop out before running.

Both of these are not critical for running, but would make us more robust.

Status Characteristic Scale Deployment

Scale Ranking
1 = far below average, 2 = below average, 3 = slightly below average, 4 = average, 5 = slightly above average, 6= above average, 7 = far above average
Scale deployment:
This scale should be deployed equal to the # of the team members in a group (i.e. after task 1, person A goes through a series of surveys each specifying the name of the person on their team they are rating)
E.g.
Team with 4 members in a team: after each task member A sees a survey asking him/her to rate team member 1, then team member 2 and so on….
Ping me with any questions
Textfile with questions https://github.com/StanfordHCI/bang/blob/master/txt/statusCharacteristics.txt

Warning message and feedback form for user leaving task

Vision:

  • Button in the top right of the task with something like "End task";
  • If a user clicks on this button, show a blank page with the following message something like this (I'll wordsmith more later):
    "Are you sure you want to end the task? This is a group task that requires a specific number of users; if you leave now, you won't receive payment and other users will be unable to proceed with the task."
  • Answers: 1. "Yes, I'd like to terminate the entire task." 2. "No, I'd like to finish the task and receive my bonus."
  • If a user picks option 1, then deploy message: "We're sorry you decided to end the task early. If you'd like to receive a small bonus, please briefly explain why you choose to leave this task," and open feedback form (like Alex's feedback form)
  • Hit code for bonus

fix naming

  • ensuring distance between users in a round
  • ensure naming distance between users in different rounds

Hosted R notebook

Set up hosted R notebook so we can process online, ideally do this on the main EC2, or a second one that links in so we don't need to do any extra steps to find remote data.

Chat UI & messaging

  1. Delay messages
  2. Add info about users in the room
  3. Make chat input area more visible as an input

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.