Matches people to time slots based on a survey the people take. Slots and people have multiple matching criteria one of which must be Time preference. Time preference is a set of days of the week and a start and stop time
Originally built for the University Studies Department of Portland State University [1] where "time slots" represent courses and the people being matched are "Mentors" (kind of like TAs) and the matching criteria are time, faculty and theme
- Updates made for Google Summer of Code 2011 (GSoC):
- Add a web interface
- Improve algorithm to use state-based search instead of Monte-Carlo [2]
- Tested with Python 2.6 and 2.7, would probably work with 2.5
- Flask
- Genshi
- Flask-Genshi
- Flask-CSRF
- Flatland
- SQLAlchemy
Install using virtualenv:
>>> git clone https://[email protected]/git/unst-scheduler.git >>> cd TimeSlotSchduler >>> ./bootstrap.sh
Note
- Due to the nature of python-ldap, you'll need to ensure the proper system-level
- dependencies are install on the host. They include the following:
- openssl development package(s)
- sasl development package(s)
- Implement a survey system
- Make entirely PrefType agnostic
Note
The backend systems have been setup to handle scheduling with arbitrary Preference Types, but the front-end system still assume 3 Preference Types, Time (must have id=1, Faculty and Theme).
Eventually the only hard-coded Preference Type will be Time since it's special (it's a subclass),
It will probably still be required to have TimePref's id == 1
Get a courses CSV from banweb
Go to the installation url (http://unst-scheduler.research.pdx.edu)
Login
Go to administer weights, and make sure the weights are all in order
Go to administer courses, then upload courses file. select the csv file, click upload file
After uploading the courses file, the site will redirect back to the administer coures page, make sure everything is in order
Go to Administer Mentors and then upload a mentors CSV file from the Qualtrics survey system, make sure to set the indexes
Open putty or otherwise ssh into research.pdx.edu
Enter in
>>> cd /vol/www/unst-scheduler/htdocs >>> env/bin/python runscheduler.py
Open up results at schedule results in a browser