ahoskins / Winston

an AngularJS schedule builder for UAlberta students
GNU Affero General Public License v3.0
21 stars 1 forks source link

Add support for electives - "pick one of these" #20

Closed zhantongz closed 9 years ago

zhantongz commented 9 years ago

Say I need an arts options for one semester and I am interested in ECON 101, LING 101 and ANTHRO 101 but I can only take one because I have to take CHEM 211, 241, 263 and PHYS 144. It may be helpful for some to allow labelling some courses as possible options that can be neglected when making schedules if conflicting with a non-option course. For the above case, I would label ECON 101, LING 101, and ANTHRO 101 as options (and maybe rank them in preference) so if there is no schedule possible for ECON 101 with other "mandatory" courses, the schedule could be made with LING 101 or ANTHRO 101.

rosshamish commented 9 years ago

Hi! This is a great idea, and is something we're definitely looking to implement. The backend (classtime) supports this feature, so its a matter of sending the courses as electives to classtime during the schedule request. Docs on electives are here: http://classtime.readthedocs.org/en/latest/the-api.html#api-v1-generate-schedules

The gist is that we include a list of electives in the request, and classtime will include ONE course from the list in each schedule.

It's worth noting that multiple lists of electives are supported, so we should consider that when writing this feature (eg pick 1 from [ECON 101, LING 101] and pick 1 from [ANTHRO 101, PSYCH 104]).

Winston will need:

ahoskins commented 9 years ago

moved to #29