In-session questions queue management, with a one-click Google sign in; now being used by ~3100 students across four courses - CS61A, CS61B, CS70, DS8 - at UC Berkeley.
created by Alvin Wan, Spring 2016
To get started, see quupod.com.
See the Contributors section below for important contributors like Sumukh Sridhara, who spent many hours helping deploy and debug Quupod.
Google login Login with Google, or use the built-in login/registration system.
Live updates All public pages will silently poll for updates, meaning that the queue and help screens will update live, without a page refresh!
Ease of use Anonymous users can submit inquiries without creating an account. (may be disabled, requiring registration)
Concurrent Enqueue Restrictions Restrict the number of times users can enqueue themselves at once
Mutex Lock Only one staff member can be assigned to an inquiry at a time.
Staff Approval Add staff emails to the whitelist to auto-promote staff, or give staff members a link to auto-promote themselves (optionally add a codeword)
Basic Statistics Queue calculates estimated time until resolution, and extra statistics are included for each active staff member.
Check that Python3 and MySQL are installed using make check
.
- Run the installation using
make install
. - Add valid mysql user credentials to
config.cfg
. - Create the database using
make db
.
During development, you may additionally want to remember the following:
- In the future, use
source activate.sh
to activate the virtual environment. - Any model modifications should be followed by
make migrate
.
In case the installation script fails, you may execute the contents of the installation bash script line by line:
- Setup a new virtual environment:
python3 -m virtualenv env
. - Start the virtual environment:
source env/bin/activate
. - Install all requirements:
pip install -r requirements.txt
. - Make a new configuration file:
cp default-config.cfg config.cfg
. - Add valid MySQL user credentials to
queue.cfg
. - Create the database:
python3 run.py -db create'
.
Any model modifications should be followed by the following, which will
delete the old database and replace it with a new one: python3 run.py -db refresh
Because of incompatibility issues with the makefile, on Windows you will have to manually run the installation instructions.
- Setup a new virtual environment by calling
python -m virtualenv env
. - Start the virtual environment by calling
env/Scripts/activate.bat
in cmd. - Install all requirements
pip install -r requirements.txt
. - Make a new configuration file:
cp default-config.cfg config.cfg
. - Add valid MySQL user credentials to
config.cfg
. - Start the MySQL service using services.msc
- Create the database by using
mysql -u root -p
, then enteringcreate database queue;
in the interactive prompt. - Setup the database using
python3 run.py -db create
.
Use make run
.
- Start the virtual environment:
source env/bin/activate
. - Launch server:
python3 run.py
.
- Start the virtual environment by calling
env/Scripts/activate.bat
in cmd. - Launch server:
python run.py
.
- For Mac OSX installations of MySQL, via Brew, start the server using
mysql.server start
. For other Linux-based operating systems, usesudo service mysql start
. - For Windows, just start the server using
services.msc
.
- Sumukh Sridhara - production deployment and hosting
- Ben Kha - Windows setup