Skip to content

Latest commit

 

History

History
73 lines (43 loc) · 3.51 KB

File metadata and controls

73 lines (43 loc) · 3.51 KB

OpenCups: Live Feedback for Presenters

CI codecov Code style: ruff License: MIT Python 3.13+ Streamlit App PRs Welcome Support us on Ko-fi

OpenCups Logo

How to Use This App

Open https://open-cups.streamlit.app/ or run locally

  1. Create a Room: The presenter starts a new session, which generates a unique room.

  2. Share the Access Link: The presenter shares the room ID, a direct link, or a QR code with the audience.

  3. Gather Live Feedback: Participants join to share their status and ask/vote on questions.


The traffic light cups technique [1] [2]

This system offers a simple, intuitive way to gather real-time audience feedback. Participants indicate their level of understanding (originally done plastic cups) using a simple color code:

🟢 Green → Following easily

🟡 Yellow → Need more explanation

🔴 Red → Cannot follow

The presenter sees an aggregate view of the responses and can adjust the presentation accordingly.

Run locally

  1. git clone https://github.com/BayerC/open_cups.git
  2. cd open_cups/
  3. Install uv: https://docs.astral.sh/uv/getting-started/installation/
  4. To run app locally: uv run streamlit run main.py

Contributing

  1. Run locally steps
  2. Hook prek (pre-commit hook) into git: uv run prek install
  3. To run prek manually run: uv run prek run --all-files

Dependency Management

This project uses uv for dependency management:

  • pyproject.toml: Defines dependencies with version constraints.
  • uv.lock: Lockfile with exact versions for all platforms. Committed to version control.
  • requirements.txt: Auto-generated from uv.lock for deployment compatibility (e.g., Streamlit Cloud). DO NOT edit manually - it's regenerated by pre-commit hooks. Committed to version control for deployment platforms that don't support uv natively.

Relation to existing cups projects

This is a scalable, tested, and modern rewrite of https://github.com/fastai/fastcups in python using https://streamlit.io/ that supports multiple rooms hosted on the same server.

Other teaching institutions had this idea before, see for example these and these instructions.