Requirements

We are designing a Course Conflict Manager.

Make a List of Preferred Courses

Feature

The user selects courses from a list of all possible courses to add to their preferred courses list. This preferred courses list is then stored and presented on the following page.

Prerequisites

There are no user prerequisites for this feature.

What a User Sees

The user sees a list of all possible courses on the page. They are asked to select all of their preferred courses from which they wish to find a compatible schedule. There is some method for the user to select courses. For example, there may be checkboxes or a selection list.

There is a Clear button to deselect all selected courses. There is also a Submit button to store a list of all selected courses and continue to the next page.

What a User Does

The user scrolls through the list of courses, selecting their preferred choices. If they decide to reset the list, they press the Clear button and all courses become deselected. If they decide they have finished selecting their preferred choices, they press the Submit button.

Behavior of the Application/Feature

If the user hits Clear, all courses/groups are unselected. If the user hits Submit, any and all selected courses/groups are “saved” in a list that is carried over to the next page. All selecting/deselecting works as normal. No other action is possible by the user.

Examples

  • The user selects nothing and hits clear. Nothing changes.
  • The user selects nothing and hits submit. A warning pops up saying: “Warning: No classes have been selected.”
  • The user selects 1+ courses and hits clear. All courses are unselected.
  • The user selects 1+ courses and hits submit. The next page loads with all selected courses in the preferred course column.
  • The user hits no buttons: the page remains static.

Priority

This feature is high priority. It is necessary to have the user create a list of preferred courses that they want to analyze in order to find meaningful information regarding possible schedules for that user.

Selection/Deselection

Prerequisites

The user must have generated their list of preferred courses and have at least one course, or group.

What a user sees

They see a box representing the course they select appear on the schedule/disappear from the schedule.

What a user does

They check a box on one of their preferred courses/groups.

Behavior

The user clicks on the checkbox located on one of their preferred courses, and that course is designated as selected and displayed on the schedule at the appropriate location for it's times, as a colored box with text indicating the course title. If the course is already selected, it is removed from the schedule.

Updates are sent to the conflict detector accordingly, and a warning will appear beneath the schedule if a conflict is generated, and the conflicting schedule items will appear in a scary red color.

Priority:

This feature is high priority. You can't very well detect conflicts between selected courses if the user cannot select courses to begin with.

Group Courses/Sections

Feature

Groups allow the user to indicate collections of multiple courses which are to some degree substitutable. Instead of the user manually searching for a set of compatible courses, the scheduler automatically searches through every possible schedule which includes one course from each selected group and each selected individual course. When there are multiple compatible schedules, the scheduler picks one based on the user-specified order of the groups, and then the order of courses within the groups.

Prerequisites

The user must have already selected and submitted a list of preferred courses. The second page is loaded with the preferred courses listed in a column.

What a User Sees

All courses and groups are listed vertically in a column.

For courses: Both dept/number and course name are immediately visible with a checkbox to the left. Clicking on the name toggles the professor's name and course time in smaller font under the course title.

For groups: Group name is shown: A toggle arrow to the left of the group label may be clicked to show a vertical list of courses/sections in the group indented to the right; each course has a checkbox next to it and may be interacted with in the same manner as listed above. A checkbox lies to the left of the toggle arrow. (Idea: group names could have gray background to differentiate from course names).

What a User Does

To combine two courses into a group: The user clicks on one course, and drags it over the other course's name. When the mouse is released, the dragged course disappears and the other course turns into the new group.

To add a course to a group: The user clicks on the course and drags it over the group's name. Upon release, the course's name is added to the group.

To combine two groups: The user clicks and drags a group's name onto another group. Upon release, the new group is created by moving all courses in the dragged group into the dragged-onto group.

To remove a course from a group: Not yet decided. There may either be an x to the right of the course name which can be clicked, upon which the course is removed from the group and added to the bottom of the list, or the user right-clicks on the course name and selects “Remove from Group.” (Note: If there are only two courses, the last course becomes a separate course as well.)

Behavior of the Application/Feature

When a user clicks and drags a course or group onto another course or group, a new group containing all relevant courses is made. If the user removes a course from a group, the course no longer appears on the group list and is instead in the main preferred course list. If the user tries to click and drag a course or group onto an erroneous area (no group or course), nothing happens and the course/group goes back to its original location.

Example Use Cases

The user may:

  • Combine two courses into a group
  • Add a course or group to another group
  • Remove a course from a group

via the processes described above (in What Does the User Do).

Priority

Priority: Medium-Low. Despite potentially interesting uses, it is not necessary for the overall project.

Preselected Groups

Feature

The user may also be able to select departments (ie CSCI, PSYC) and/or distribution requirements (ie LIT) to add a premade group of all courses in that category to the preferred courses list. This is done the same way as adding a course to the list. The group would then act in the same manner as a user-created group.

Prerequisites

Having grouped courses implemented.

Preferred courses page.

What the User sees

On the preferred courses page, the user sees two tabs at the top. One (selected by default) says “courses” the other says “groups”. If the “groups” is selected, instead of the default list of courses, they see a list of preselected groups that they can choose from.

What the user does

Click the checkboxes next to the group, and then submit when they are finished.

Example use cases

I need to fulfill my Humanities FDR. So I click the tab, see the “HU” group, click the checkbox next to it, get very excited, and then click the submit button.

Priority

Low

Detect Warnings

Feature

This feature detects a wide variety of conditions in the schedule.

First and foremost it will detect any conflicts between different classes in the schedule, but it will also detect if there are multiple non-conflicting possibilities that the user can choose between.

It will also detect when it is impossible to choose an individual course from each selected group such that each individual course is compatible with all the others.

Prerequisites

For this feature to do anything, we will need to have populated the Preferential course list AND selected some of the courses.

What a User Sees

The user will see a warnings displayed in a designated box, some like conflicts will be in red and indicate that the schedule is not viable, while some like the multiple possible schedules will display in yellow to indicate the schedule is not strictly defined.

What a User Does

The user can see these warnings and can take necessary actions if he or she wants.

Behavior of the Application/Feature

When the user edits his selections, warnings could be added or removed.

Example Use Cases

Again, a user can respond to the indicated warnings; the feature will help the user see what is wrong with their schedule.

Priority

High, this is the premise of our project.

Save and load

Feature

Save and load schedules/preferred course lists/groupings into a file so that a user may come back to it later.

Prerequisites

We would need to have designed everything necessary to build said schedule int he first place, so preference lists, scheduling etc.

What a User Sees

The user would see a save button and a confirmation that it was saved and a download file. The schedule would be loaded upon the user's return via an upload of the saved file.

What a User Does

The user selects save or load and either downloads or uploads a file. From there the user can exit (if he saved his file) or go on to edit his file.

Behavior of the Application/Feature

When a user selects save either it will work and download or there will be an error message for the user. When he selects load he will be prompted to upload a saved file, if everything works it will populate the schedule and preference listing, otherwise there will be an error message.

Example Use Cases

If the user wants to come back later he can save his work and then load it when he is ready to work on it later!

Priority

Medium

Export/Import

Feature

Export/Import into external programs. (e.g. iCal, Outlook, etc.)

Prerequisites

We would need to have designed everything necessary to build said schedule int he first place, so preference lists, scheduling etc.

What a User Sees

The user would see an export button and a confirmation that it was exported and a download file.

What a User Does

The user selects export, selects the format and downloads a file. From there the user can import the schedule to another venue.

Behavior of the Application/Feature

When a user selects export either it will work and download or there will be an error message for the user.

Example Use Cases

When the user has successfully made his schedule and he would like to easily port it to his actual calendar!

Priority

low

courses/cs335/spring2013/course_scheduler/requirements.txt · Last modified: 2013/05/02 18:19 by marmorsteinr
CC Attribution-Noncommercial-Share Alike 4.0 International
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0