Staff and event management, with Google calendar sync and a one-click Google sign in; used at TEDxBerkeley to manage 230 volunteers, now being used to manage ~150 staff members across 2 courses - CS61B, CS70 - at UC Berkeley.
created by Alvin Wan, Spring 2016
To get started, see piipod.com
Google Login One-click login and registration for ease-of-use
Staff Approval Add staff emails to the whitelist to auto-promote staff.
Google Calendar Sync One-click synchronization to load events from Google calendar.
Automatic Waitlist Resolution:
- Constraint Satisifaction Problem Model allows staff to setup event signup minimum or maximum, per-user signups maximum or minimum for a group of events.
- Stable Marriage Algorithm allows staff to accept waitlisted users based on user preferences.
Batch Processing and Filtering Allows you to auto-categorize signups, process multiple events at once, and/or filter by signup properties. Categories can be shifts, tasks, or anything else representable with a string.
These instructions assume the mySQL server has been started. See MySQL below.
Check that Python3 and MySQL are installed using make check
.
- Run the installation using
make install
.
- Optionally, use
make install CONDA=false
instead, to usevirtualenv
.
- Add valid mysql user credentials to
configvars.py
. - Create the database using
make db
.
If the bash scripts do not work, see the Details section below for an outline of what each script does.
During development, you may additionally want to remember the following:
- In the future, use
source manage.sh activate
to activate the virtual environment. If installed without Anaconda, usesource manage.sh activate CONDA=false
- Any model modifications, in the development environment, should be
followed by
make refresh
, which will delete the old database and replace it with a new one.
In case the installation script fails, you may execute the contents of the installation bash script line by line:
- Setup a new virtual environment:
conda create -n piipod python=3.4
. - Start the virtual environment:
source activate piipod
. - Install all requirements:
pip install -r requirements.txt
. - Make a new configuration file:
cp sampleconfigvars.py configvars.py
. - Add valid MySQL user credentials to
configvars.py
. - 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 incompatbility 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 sampleconfigvars.py configvars.py
. - Add valid MySQL user credentials to
configvars.py
. - 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
.
If the bash script does not work, see the Details section below for an outline of
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
.