Scheduling Part 2
Closed this issue · 3 comments
Sub-epic of #171 and continuation of #202. We have part of this finished, given an interview schedule on excel, we can add it to the UI. However, we’d like to take availabilities of interviewers and interviewees in the spreadsheet format output by Doodle, and generate a interview schedule that we directly add to the UI. Additionally, right now we do not connect either the interviewers or interviewees from the schedule to their user/candidate model (table), so we’d like to do this as a way to have the schedule-viewing UI show a hack4impact member only the interviews they have, and link directly to allow them to fill out an interview form/notes for that candidate.
Things to consider: We have one doodle for interviewers, and one for interviewees. Interviewees only get 1 slot for a specific round. Interviewers may have multiple, but should try to be relatively equal if possible. (not 1 person doing 8 interviews, etc.). Additionally, we have the mass interview round, where a slot will have multiple interviewers and interviewees. Basically, number of interviewers and interviewees for a slot should be parameters. Finally once output into a schedule, directors should be able to modify things manually, so that in case an interviewer or interviewee needs to switch, they can just fix those without affecting the whole schedule. Currently schedules are stored in the model: futureInterview.js
.
To generate the schedule let's take a note from 374. Don't create your own algorithm from scratch. Best case find an algorithm online that we can use (reference it in comments maybe?), otherwise find an algorithm that does something very similar and modify slightly to have it work. Note that modifying could be modifying the algorithm or modifying the input (and the ladder might be the easier way to go about it since you'll almost certainly have to do this regardless).
Once the schedule is created it should be displayable on the frontend. This is the current display for the schedule, but we can update this to link directly to the candidate, and allow a user to filter for their own interviews.
Being able to press a button to email everyone with their times would be a nice to have feature, but not as high priority,
Sounds like it'll be a cool feature. Is there a good place we can look to see an example Doodle exported spreadsheet output?
Just DM'd on slack
That's a good point about working from an existing solution on the scheduling part since scheduling is generally a pretty difficult problem. This kind of thing can be done with graph colorings, and I'll do a little more research to see if that's a plausible direction.