Git Product home page Git Product logo

chimein2.0's Introduction

ChimeIn

Tests

Real time polling for your presentations

Chime-In is a web-based "clicker" tool for doing live polling in interactive presentations.

Setting up ChimeIn Locally

Chime in uses Laravel's docker environment, Laravel Sail for development. To get sarted:

# Create a .env file
cp .env.example .env

# Edit `.env` as needed.
# The default `.env.example` will probably be sufficient,
# but if you're a Safari user, change SESSION_SAME_SITE="none"

# Install php deps
docker run --rm \
    -u "$(id -u):$(id -g)" \
    -v $(pwd):/var/www/html \
    -w /var/www/html \
    laravelsail/php81-composer:latest \
    composer install --ignore-platform-reqs

# Build docker image
sail build --no-cache

# Start Sail
sail up

# create app key, link storage, etc
sail exec app ./bin/ci.sh

# migrate the database
sail artisan migrate:fresh

# seed the database with some sample data
sail artisan db:seed

# Install node modules
yarn install

# Start Vite to compile Vue
yarn dev

The application will be running on http://localhost.

Using the Application

sail up
yarn dev

Load http://localhost in your browser.

Login with:

  • username: admin
  • password: admin

Additional users can be configured in config/shibboleth.php.

Stop the application: sail down.

Running Tests Locally

yarn run cypress

Deploy

Enviroment Name URL
dev https://cla-chimein-dev.cla.umn.edu
stage https://cla-chimein-stage.cla.umn.edu
prod https://chimein.umn.edu
./vendor/bin/dep deploy <environment name> --branch <branch to deploy>

For example:

./vendor/bin/dep deploy dev --branch feature/my-feature

Documentation

ChimeIn documentation is in the docs folder, and published at https://umn-latis.github.io/ChimeIn2.0/. It uses VitePress for static site generation.

To develop locally:

cd docs
yarn install
yarn docs:dev

Building the documentation:

cd docs
yarn docs:build

and publishing:

cd docs
yarn docs:publish

chimein2.0's People

Contributors

cmcfadden avatar dependabot[bot] avatar jxjj avatar herzo175 avatar jzenk avatar qjac avatar

Stargazers

Michael Greminger avatar  avatar Nic McPhee avatar

Watchers

Lucian avatar  avatar James Cloos avatar  avatar Alison Link avatar

chimein2.0's Issues

Make it easier to see heatmap on image heatmap question

On colorful pictures, the heatmap is difficult to distinguish from the image. Image filter controls may make it easier to see the response data.

Ideas:

  • slider to control image opacity (or heatmap alpha)
  • slider to control image grayscale
  • side-by-side view to allow compare and contrast

Current:
Screen Shot 2021-10-31 at 10 34 30 AM


Heatmap alpha:
Screen Shot 2021-10-31 at 10 35 58 AM


Grayscale:
Screen Shot 2021-10-31 at 10 36 57 AM


Both heatmap alpha and grayscale:
Screen Shot 2021-10-31 at 10 37 45 AM

Assignment in Canvas brings you to the Chime rather than the folder

After created a ChimeIn assignment in canvas, when clicking on the Assignment, the faculty user is directed to the Chime showing all folders, rather than an individual folder.

I think the connection between canvas assignments and folders would be clearer if faculty were linked directly to the folder rather than the chime.

Add signifier to chime if connected to Canvas?

Moving this to a separate issue since the PR for adding badges to chimes was merged and issue #56 closed:

From @cmcfadden:

should also badge the chime itself if the lti_grade_mode is one_grade and we have an lti_course_id assigned. That'll be relevant when feature/ltiRefactor is merged.

Add test for Chime Exports

Long running query in #96 looks related to exporting chimes. We should create tests around export before refactoring.

Add a signifier to a Chime and folder if it's linked to a canvas assignment via the LTI

It's so easy and fast to create folders in ChimeIn, users skip the step of setting up an Assignment in Canvas.

Currently, when a folder is created directly in ChimeIn without first creating an assignment, there's no grade passback link and no way for faculty to tell in Canvas or ChimeIn whether this link exists or not.

  • Adding some iconography to the ChimeIn folder.
  • Link back to the assignment in Canvas?

Unify Card components

Bring the card design and icon buttons on the folder page to the Chime page and (perhaps?) the question page.

ChimeIn LTI updates

  • disable folder creation on Canvas-linked Chimes
  • interstitial page on new accounts to let user setup grading preferences
  • Prompt to import past courses and remind user they need to click through each assignment.

PresentationPage: Clicking Next/Prev Question shows `NavigationDuplicated` error in console

Happens in both development and production -- maybe only when there's a single question?

app.js?id=9f243cd2f5bac424fa31:2 Uncaught (in promise) NavigationDuplicated: Avoided redundant navigation to current location: "/chime/1962/folder/4599/present/0".
    at Ee (https://chimein2.cla.umn.edu/js/app.js?id=9f243cd2f5bac424fa31:2:340985)
    at t.JO1w.Pe.confirmTransition (https://chimein2.cla.umn.edu/js/app.js?id=9f243cd2f5bac424fa31:2:343909)
    at t.JO1w.Pe.transitionTo (https://chimein2.cla.umn.edu/js/app.js?id=9f243cd2f5bac424fa31:2:343265)
    at t.replace (https://chimein2.cla.umn.edu/js/app.js?id=9f243cd2f5bac424fa31:2:346436)
    at https://chimein2.cla.umn.edu/js/app.js?id=9f243cd2f5bac424fa31:2:351218
    at new Promise (<anonymous>)
    at We.JO1w.We.replace (https://chimein2.cla.umn.edu/js/app.js?id=9f243cd2f5bac424fa31:2:351181)
    at s.next_question (https://chimein2.cla.umn.edu/js/app.js?id=9f243cd2f5bac424fa31:2:364343)
    at He (https://chimein2.cla.umn.edu/js/app.js?id=9f243cd2f5bac424fa31:2:237963)
    at s.n (https://chimein2.cla.umn.edu/js/app.js?id=9f243cd2f5bac424fa31:2:239705)

Add LaTeX support to multiple choice responses

We added LaTeX support in f6cf5a8 but only in the question form. Users would like to have it in the multiple choice responses too.

Thoughts - right now the multiple choice responses aren't using the wysiwyg editor. It adds a lot of clutter. Going forward, I could imagine either making the wysiwyg a toggle that's off by default, or refactoring the multiple choice entry interface to make it not so cluttery.

Wordcloud not rendering on dev branch

On the current development branch, the FreeResponse wordcloud isn't rendering responded.

A git bisect indicates the breaking change was introduced in 7284582.

Console message text.transition is not a function points to the issue related to d3. Similar issue here: d3/d3-selection#185. Fix incoming.

It looks like the current vue-wordcloud package hasn't been updated since 2018. It might be good to eventually move to another that's more actively maintained. Perhaps: https://github.com/SeregPie/VueWordCloud.

LTI Onboarding

Explore using images on the new LTI onboarding page to help users make choices for their Canvas Chime setup.

Provide more clarity on how to share access

  • Default to having join instructions checked
  • "participant view" screen should make it clear that they shouldn't just share that URL (would only work for public access courses)
  • Custom join link in the Chime settings should have language reminding folks not to use that if it's a Canvas-linked Chime
  • In present mode, for canvas courses, say "visit the course in Canvas to access ChimeIn"

Change guest permissions to zero

In authIfNecessary, give guest users overall permissions of zero. They'll still get permissions of 100 after joining a course.

$user->permission_number = 0;

ErrorException: Trying to get property 'current_session' of non-object

Sentry Issue: CHIMEIN-X

ErrorException: Trying to get property 'current_session' of non-object
  File "/app/Http/Controllers/FolderController.php", line 182, in Illuminate\Foundation\Bootstrap\HandleExceptions::handleError
    $currentSession = $question->current_session;
  File "/app/Http/Controllers/FolderController.php", line 182, in App\Http\Controllers\FolderController::deleteQuestion
    $currentSession = $question->current_session;
  File "/app/Http/Middleware/ShibInjection.php", line 38, in App\Http\Middleware\ShibInjection::handle
    return $next($request);
  File "/app/Http/Middleware/AuthIfNecessary.php", line 28, in App\Http\Middleware\AuthIfNecessary::handle
    return $next($request);
  File "/public/index.php", line 55
    $request = Illuminate\Http\Request::capture()
...
(45 additional frame(s) were not displayed)

Add a "highlight the text" question

Participants select text. A heatmap displays the commonly selected text.

  • Should it have an explicit button
  • Will it work on mobile?
  • How do we make it accessible?

Resynchronize total user count

When instructors connect, they get a current user count from the Echo.join("session-status." + this.get_chime()) in questionsListener. After that, they decrement or increment based on leaves/joins. Consider some periodic resynchronization that would flap that listener?

Error in console when viewing free response results: `TypeError: $(...).tooltip is not a function `

Currently happening in production: when creating a Free Response question and viewing results, I sometimes see the error in the JS console:

Screen Shot 2021-10-19 at 7 38 17 PM

app.js?id=9f243cd2f5bac424fa31:2 TypeError: $(...).tooltip is not a function
    at FreeResponseStatistics.7b349bd87fd7332cc009.bundle.js:1
    at cr (app.js?id=9f243cd2f5bac424fa31:2)
    at app.js?id=9f243cd2f5bac424fa31:2
    at Array.or (app.js?id=9f243cd2f5bac424fa31:2)
    at g (app.js?id=9f243cd2f5bac424fa31:2)
    at f (app.js?id=9f243cd2f5bac424fa31:2)
    at h (app.js?id=9f243cd2f5bac424fa31:2)
    at f (app.js?id=9f243cd2f5bac424fa31:2)
    at h (app.js?id=9f243cd2f5bac424fa31:2)
    at f (app.js?id=9f243cd2f5bac424fa31:2)

Other details which may or may not matter:

Limit connection length

Right now, ~10% of students leave chimein open in a tab after class. This adds load and sucks up connections.

Let's keep a counter in ParticipantPage that counts our reconnects. After 50 or so, set this.error to "ChimeIn has repeatedly lost the connection to the server. Try refreshing the page." and stop trying reconnects.

Explore CSV import

referenced in TDX 577997 - could we do a question import from CSV to allow for bulk question creation. Would be a bit of a pain due to mixed question types.

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.