Project: DukePro(f)

DukePro(f) is a schedule-planning desktop application that assists university professors in managing their consultations. The user interacts with it using a CLI, and it has a GUI created with JavaFX. It is written in Java, and has about 42k Loc.

Given below are my contributions to the project.

  • New Feature: Blocked Slot Feature - Storing Blocked Slots Data
    • PR(s): #85
    • What it does: Stores list of blocked slots in the same .json file as consultation events
    • Justification: This feature improves the product significantly as users are likely to want to save the data of the slots they’ve blocked previously rather than have to input it every time they open the application.
  • New Feature: Blocked Slot Feature - Check for Overlapping Feature
    • PR(s): #80
    • What it does: Implements methods to check if any Overlappables (Event and BlockedSlot) have overlapping timing with each other
    • Justification: This feature improves the product significantly as users are likely to want to check if existing and to-be-added events do not overlap to ensure they do not clash. This is also a key feature of the Blocked Slot Feature.
  • Code contributed: RepoSense link

  • Project management:
    • Managed releases v1.2 - v1.4 (3 releases) on GitHub
  • Enhancements to existing features: Additional Remark field in Event model
    • PR(s): #71
    • What it does: Allow users to add and edit a new field called remark when adding and/or editing a consultation event
    • Justification: Users are likely to want to add details about their consultation events e.g. Contact details of their student.
    • Credit: Idea of the remark feature is taken from AB-3 (though implemented differently).
  • Enhancements to existing features: Refactoring of code to suit DukePro(f)
    • PR(s): #42
    • What it does: Refactors names and fields of AB-3 classes and objects to suit DukePro(f)
  • Enhancements to existing features: Addition of test cases for Remark and Overlapping Features
    • PR(s): Added when implementing feature
    • Adds tests for new features to increase test coverage
  • Documentation:
    • User Guide:
      • PR(s): #18, #19, #20, #55, #98, #159, #198
      • Wrote format, structure, and documentation for the whole User Guide in early and later stages:
        • Introduction and Table of Contents
        • Purpose
        • Meaning of Icons and Textboxes
        • Quick Start
        • Command Summary
        • Commands and their Features
        • FAQ
    • Developer Guide:
      • PR(s): #71, #196, #197
      • Added implementation details of the addition of the remark field.
      • Added implementation details of the addition of the Blocked Feature regarding Storage.
      • Added user stories and updated test cases for Appendix: Instructions for manual testing
  • Team-Based Tasks:
    • Set up Codecov for repo
    • Maintained issue tracker and assigned people when necessary
    • Managed releases v1.3(trial) and v1.3
    • Morphing of original product (AB-3) to current product (DukePro(f))
    • In charge of documenting User Guide (along with luluyousef)
  • Community: