Open https://open-cups.streamlit.app/ or run locally
-
Create a Room: The presenter starts a new session, which generates a unique room.
-
Share the Access Link: The presenter shares the room ID, a direct link, or a QR code with the audience.
-
Gather Live Feedback: Participants join to share their status and ask/vote on questions.
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.
git clone https://github.com/BayerC/open_cups.gitcd open_cups/Install uv: https://docs.astral.sh/uv/getting-started/installation/- To run app locally:
uv run streamlit run main.py
- Run locally steps
- Hook prek (pre-commit hook) into git:
uv run prek install - To run prek manually run:
uv run prek run --all-files
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.
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.
