Project: NUSCoursemates

Overview

NUSCoursemates is a desktop address book application used for keeping track of the courses your contacts are taking. The user interacts with it using a Command Line Interface (CLI), and it has a Graphical User Interface (GUI) created with JavaFX. It is written in Java, and has about 20 kLoC.

Summary of Contributions

Given below are my contributions to the project on RepoSense.

New Feature - Sort by Name

  • What it does: Allows users of the application to sort the student contacts by name.
  • Justification: Before this feature was implemented, new contacts were added to the bottom of NUSCoursemates which meant that it could get messy very easily. With this feature, contacts are sorted by name in alphabetical order (aAbBcC…zZ), and it will take the user much less time to search for a contact by name, thereby improving user experience.
  • Highlights: The user is also able to specify whether the contacts are to be sorted in an ascending or a descending alphabetical order with the sort name-ascending and sort name-descending commands respectively.
  • Credits: Referenced Stack Overflow forum for case-insensitive comparator.

New Feature - Sort by Course

  • What it does: Allows users of the application to sort the student contacts by the number of courses taken.
  • Justification: With this feature, users are able to determine the contacts that have the largest number of overlapping courses as them. This helps users to decide the courses they should take in the semester and to also connect with these contacts, which is the main goal of NUSCoursemates.
  • Highlights: The user is also able to specify whether the contacts are to be sorted in an increasing or a decreasing number of courses taken with the sort course size-ascending and sort course size-descending commands respectively.
  • Credits: None

New Feature - Sort by Tags

  • What it does: Allows users of the application to sort the student contacts by their tags.
  • Justification: Similar to how our Instagram close friends’ stories appear first, the Sort by Tags function allows users to sort their contacts by tags, so that the users’ close friends would appear right at the top of NUSCoursemates. This allows users to better keep track of the people who matter to them the most.
  • Highlights: As students can have multiple tags, only the highest priority tag will be taken into consideration. This is done by iterating the list of tags to find the one with the highest priority.
  • Credits: None

Project management

  • In charge of the deadlines for tasks, including the creation and closure of various milestones.
  • Released v1.2 and v1.2b NUSCoursemates.jar files on GitHub.

Documentation

Review/mentoring contributions

  • Reviewed 27 pull requests.
  • Some critical bugs were found when reviewing pull requests. For example, I found a bug which incorrectly prevented contacts from being added.
  • Some notable PR reviews: #57, #106, #107, #132, #288.
  • In addition, bugs for another group’s project were also found during the Practical Examination dry run.