Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Now, not only is there feedback that the email has been sent successfully, but the system also tracks when was the last time a student was emailed. This is the reason why we added the user accounts mentioned above.

Implementation

Groupings -> JS class that represents ANDs and ORs in code.  Will automatically flatten to the smallest component.

Terminator -> Takes in a valid output from Parser and converts it to Groupings

Parser -> Takes in any string and gives back a list of possible options (for and/or and parenthesis) where ambiguity might occur

objectFilter -> Takes in a grouping and list of JS objects and will filter those objects based off the grouping

Set.js -> Modified implementation of a Set class in JS

File: Data.js -> Loads the data from the backend, including courses and skills

State -> A global variable that maintains application state.  Used to update "Start New Search" button and track other things

Front end code logic:

1) When you enter a term into courses/skills, it will attempt to autocomplete based off the loaded file from data.js

2) When clicking "add," it takes your entry and sends it to parser.  It then truncates that list to 16 "best" items.

3) This list is fed back to the UI code.  If there's only one item, it runs with it.  Otherwise, it shows the "We're confused" dialog.

4) After resolving any confusion, it adds this new grouping as an AND block the the global Course or Skills search item.

5) Since this should change search results, it calls Grouping.toString() and sends this new query to the backend, attempting to filter data.

6) Clicking a student will add them to the Selected state property.  Hiding a student will add them to the Hidden state property.

7) Adjusting a filter updates the State property and triggers a new search again.

8) Current page is a state property.

9) Entered subject/message for e-mail are state properties.

Not sure what else Tanya wants.

Evaluation

Our target user population is professors, administrators and project leads who need to fill positions with qualified and fitting MIT students. We tried to select our users to have different backgrounds. User 1 is an administrator who looks for a variety of students, from all different majors depending on the temporary position she’s looking to fill. User 2 is a MIT professor who works with Media Lab and the Department of Urban Studies and Planning and generally looks for Course 6 students. User 3 is a project lead who works to search for engineering students to fit the program she oversees, generally Course 2 and 6.

...