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: Time Slot feature.
    • What it does: Allows an event to span a certain period of time.
    • Justification: Instead of having only a time field, we need events to take up a time slot in order to implement the other features we had in mind (such as list free slots and block slots).
  • New Feature: Added Blocked Slot feature. (credits: ruthpohrp for implementing blocked slot storage and checks for overlapping)
    • What it does: Blocks out a time slot so that an Event cannot be added at that time slot.
    • Justification: Users are likely to want to block out certain time slots for personal reasons. This feature allows them to do so and not have to worry about accidentally adding an Event that coincides with a blocked period.
  • Code contributed: RepoSense link

  • Project management:
    • Managed releases v1.2 - v1.4 (3 releases) on GitHub
  • Enhancements to existing features: TimeSlot field in Event model
    • What it does: Represents a period of time within a day.
    • Justification: This allows users to specify the start and end time of their Events.
  • Documentation:
    • User Guide:
      • Added documentation for the commands block#79, list_blocked#81 and delete_blocked#92.
    • Developer Guide #172:
      • Touch-ups to overall formatting.
      • Added implementation details of the Block feature.
      • Added BlockedSlotClassDiagram (credits: CSYGalvin for diagram sketch).
  • Team-Based Tasks:
    • Refactoring of Person to Event.
    • Refactoring of Time to TimeSlot (credits: luluyousef for refactoring Email to Time).
    • Updated User Stories and Use Cases of Developer Guide
    • Updated BetterModelClassDiagram, LogicClassDiagram, ModelClassDiagram, StorageClassDiagram of Developer Guide.