Project: ModuleBook3.5

ModuleBook3.5 is a desktop module book application used for keeping track of tasks for various NUS modules in an Easy, Seamless and Straightforward manner. The user interacts with it using a CLI, and it has a GUI created with JavaFX. It is written in Java, and has about 10 kLoC.

Given below are my contributions to the project.

  • Restructuring: Converted Module class in AB3 into a Data Structure for ModuleBook, allow only SoC modules that is predetermined by system administrator.
    • What it does: An additional layer of abstraction is implemented. This makes ModuleBook more tailored to our target users - NUS Computing students.
    • Justification: Restructuring has allowed for the implementation of functions such as Find-by-Module and Sort-by-Module.
    • Highlights: Implementation process was very difficult as a lot of attention needs to be paid to the former AB3 implementation, small, careless changes can cause the entire application to break. Several new custom functions and tests were written to accommodate the changes.
  • New Feature: Added the ability for ModuleBook3.5 to detect time left until deadline for tasks and allocate a special color to each of them.
    • What it does: Allows the user to identify the tasks closer to deadline by just looking at the color of the task card.
    • Justification: This feature makes the process of identifying tasks to prioritize more convenient for the user. For example, when the user sees the color ‘Orange’ on their task, he/she will know immediately there is less than a day till deadline for that task, instead of having to calculate in their mind by looking at the deadline field.
    • Highlights: The implementation process was somewhat difficult as many trials-and-errors were conducted to identify the right tone of colors to allocate to the task card without the words being made difficult for the user to see.
  • New Feature: Added the ability for user to find tasks associated to a tag.
    • What it does: Allows the user to find the tasks they want using a tag they added to the task earlier on.
    • Justification: This feature makes finding tasks using ModuleBook much more convenient because a user may be more likely to forget the exact name of his/her task but can remember the short tag they added to the task.
    • Highlights: In order to make the search for tag even more convenient, special implementation was put in place to make the search case-insensitive.
  • Code contributed: RepoSense link

  • Project management:
    • Managed releases v1.2 - v1.4 (3 releases) on GitHub
  • Enhancements to existing features:
    • Updated the GUI color scheme (Pull requests #118)
    • Wrote code for deleting existing tags (Pull requests #84)
    • Wrote code for finding existing tags (Pull requests #71)
  • Documentation:
    • User Guide:
      • Add visual aids of UI to guide users in using ModuleBook: #123
      • Update existing documentation: #122
    • Developer Guide:
      • Edited most of the Use Cases to suit ModuleBook’s target users: #90
      • Updated the User Stories: #90
  • Community:
    • PRs reviewed (with non-trivial review comments): #67, #134
    • Contributed to forum discussions (examples: 1, 2, 3)
    • Reported bugs and suggestions for other teams in the class (examples: 1, 2)