Giter Club home page Giter Club logo

zoomcsv's Introduction

zoompart.py

Plot Zoom video‑meeting participant duration information.

Overview

This one file utility takes the participant CSV file, processes it a little, and produces a bar graph showing the participation rates. In particular:

  • the utility deduplicates multiple sessions by the same user to produce a single session
  • the gaps and overlaps in multiple sessions are accounted for by default
  • deduplication examines email addresses by default or optionally user names — users often enter slightly different names between sessions and names are therefore less reliable in this regard
  • the utility tallies the number of sessions above a certain user‑defined time threshold to report the number of engaged users
  • the widely disliked "Attentiveness Score" metric is no longer present in the participant CSV file by default and is therefore not considered

Multiple sessions by the same user are quite common and often overlap.

Getting started

A typical call might comprise:

$ zoompart.py \
  --verbose \
  --dat-file \
  --nominal-duration=130 \
  --cutoff=20 \
  --title="Test plot" \
  participants_123456789.csv

To yield to following plot:

SVG plot

No personal data is embedded in either the produced SVG or DAT files. The DAT file contains only the raw numbers used to create the bar graph.

There is not real need to clone this repository, just download or copy‑paste the contents of zoompart.py to a local file, set the execute permission, and run that:

$ chmod u+x zoompart.py
$ ./zoompart.py --help

The various function definitions in the utility could be pulled out and used to drive an interactive jupyter notebooks session instead.

As of April 2020, Zoom names the participant file using the following convention:

  • participants_<meeting-ID-without-dashes>.csv

Software license

The software license is ISC, regarded as equivalent to the MIT permissive license but with simpler wording.

Options

The following options are provided:

long short argument comment
--version -V show utility version string and exit
--help -h show help message and exit
--title -t string specify plot title
--numbered-title -n use custom numbered plot title
--nominal-duration -l set nominal meeting duration in minutes
--cutoff -c set short session threshold in minutes
--ignore-gaps -I consider only beginning and closing timestamps
--dedup-name -N deduplicate on name not email address
--dat-file -d create or overwrite existing DAT file
--no-plot -P omit plot
--save-plot -S save plot automatically (system dependent)
--truncate -T truncate input data for testing purposes
--verbose -v show additional information
--show-df -D show loaded dataframes

ℕ indicates {0, 1, 2, ...}.

The --nominal-duration option draws a horizontal dotted line annotated "nominal duration". It is useful because sometimes participants continue to chat after the event proper has finished.

Users can adjust some hardcoded values in the script to better suit their needs. See the comments in the code for further details.

Requirements

The utility requires the following python dependencies:

  • python3 — tested with version 3.6.2
  • pandas
  • matplotlib

Status and caveats

The script is reasonably mature, although the following caveats apply:

  • the utility has only been tested on Ubuntu 19.04 and it is possible some of the code is Linux‑specific
  • you may need to modify the hash‑bang line to suit your system
  • you may need to adjust your PATH environment accordingly

zoomcsv's People

Contributors

robbiemorrison avatar

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.