Project: GREWZ

GREWZ is a desktop address book application used for teaching Software Engineering principles. 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.

  • New Feature: Added the ability to add pictures into the application.
    • What it does: allows the user to select a .jpg file and upload it into the application as a student picture.
    • Justification: this feature improves the product significantly because it addresses the user’s needs to help them recognise students easier.
    • Highlights: This enhancement adds an image of the students in the UI. The implementation was challenging as it required understanding of JavaFX file chooser and its usage.
  • New Feature: Added the ability to create Assignments.
    • What it does: allows the user to add Assignments into their task list. An assignment is a type of task that allows the user to keep track of students who have and have not submitted an assignment.
    • Justification: this feature improves the product by enabling users to monitor their student’s work progress.
    • Highlights: Students can be added and removed from the assignment using the edit-task command. It required careful consideration over other design implementations, but due to time constraints a simple one was chosen for now.
  • 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 for Tasks in the TaskList (Pull request #122)
    • Refactoring of Address to StudentId, and adding tests for validation of StudentId which also increased coverage by 0.26% (Pull request #58)
  • Documentation:
    • User Guide:
      • Added documentation for the adding assignment feature #193
      • Rectify minor documentation issues identified by other users: #205
      • Change language to suit GREWZ compared to original AB3 #40
      • Elaborate on example commands for clearer instructions #226
    • Developer Guide:
      • Added implementation and use cases for Upload Picture Command #122
      • Update class diagrams to include new types of tasks
  • Community:
    • PRs reviewed (with non-trivial review comments): #60, #81
    • Reported bugs and suggestions for other teams in the class (examples: 1, 2, 3)