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

Add a simple poll federated API example #24

Open
bollwyvl opened this issue Feb 13, 2021 · 2 comments
Open

Add a simple poll federated API example #24

bollwyvl opened this issue Feb 13, 2021 · 2 comments
Labels
enhancement New feature or request

Comments

@bollwyvl
Copy link
Collaborator

bollwyvl commented Feb 13, 2021

Elevator Pitch

Make a separate labextension, jupyterlab-viedochat-poll, still packaged as part of the same python package, which uses Video Chat Manager to implement a moderator-lead poll using the Jitsi text messaging API.

Motivation

Breakout rooms (#5) is probably a pretty big goal, and might need to be an external extension.

A more incremental step would be a second lab extension that implemented a simple shared poll data object between all participants of a meet. This would demonstrate some integration patterns, and be useful in its own right.

Design Ideas

  • Moderator starts chat
  • some Participants join
  • Moderator presses a Start New Poll button
    • fill out a minimal form to build a JSON Schema
      • a sensible default might be a single string field with a description
        • a markdown question and then Add an option as a number of markdown fields as a first go-around
    • see preview of form
    • have a few Workflows, e.g. Anonymous, Show users, Hide Answer
    • broadcasts a JSON object to all participants
    • each clients interpret the message, pops open a new DockPanel Tab with a poll
    • each Participant (and Moderator) can vote with their name/icon (or be Anonymous)
    • sends private JSON object back to the Moderator
    • depending on Workflow, re-broadcast the current state of the object
      • or some limited information (how many participants have responded)
    • depending on the Workflow, results of the poll are available to the Moderator or all Participants
      • download as CSV, Notebook, etc.

Future Work

Initially, this poll definition doesn't really need to be stored anywhere, but could be a server-configured thing, e.g. a ready-to-use simple Likert scale, a three-question session survey, etc.

Similarly, ephemeral poll output could stored on a configurable server route, wrap Google Forms, etc.

@bollwyvl bollwyvl added the enhancement New feature or request label Feb 13, 2021
@bollwyvl
Copy link
Collaborator Author

bollwyvl commented Apr 8, 2021

I've signed up for the Winning over the classroom with Jitsi hackathon for (26th April until 3rd May), nominally for implementing this feature, though I mentioned it being a stepping stone to #5.

For me, most likely, this will only mean evening and weekend tinkering hours (US Eastern), unless I can swing some support from $DAY_JOB... but am definitely interested in supporting/collaborating with/mentoring any folks that want to:

  • provide feedback on features that would be useful for this in a teaching setting
  • get their hands dirty with any of the technology in play

I may cheat a bit and add some DX junk (doit, maybe robotframework) prior to then, focusing on validating existing features, which would give us some more meaningful CI. This would help make co-development more effective during the critical period.

Given we've already got a lot in place, I'm pretty sure we could get something that works on binder out the door, which should demo nicely.

cc @yuvipanda

@yuvipanda
Copy link
Collaborator

Awesome, @bollwyvl!!! Can you post it in discourse.jupyter.org too to recruit more people?

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

No branches or pull requests

2 participants