Project: RC4HDB

RC4HDB is a desktop application that offers a convenient and intuitive interface for housing management staff to streamline their resident and venue management operations.

Given below are my contributions to the project. You may view the full code here: RepoSense link

  • New Feature: Added the ability to show, hide, and reset table columns.
    • What it does: allows the user to hide any number of unwanted columns in the table. Columns that have been hidden can be restored by using the reset command.
    • How it benefits the user: This feature improves the product significantly because a user can de-clutter their screen and only focus on the information relevant to their job, boosting their productivity during work.
    • Highlights: This enhancement affects the UI directly and had to be implemented carefully to minimise coupling between components. I was able to apply the Observer pattern in developing this feature.
    • Completeness: We consider this feature to be complete. This feature is the second iteration of our column hiding feature, and many design considerations and modifications have gone into improving the initial implementation.
  • New Feature: Contributed to the venue booking feature which allows the user to manage recurrent venue bookings.
    • How it benefits the user: This feature improves the product significantly as low-level operations such as clearing expired bookings and checking for booking clashes are handled for the user by RC4HDB. The user can focus solely on adding and removing bookings for residents.
    • Highlights: This feature was difficult to implement as it required many additional classes in each of the UI, Logic, Storage and Model components.
  • Enhancements to existing features:
    • Updated the GUI to use a TableView so that users could view resident data in a more convenient and condensed layout (Pull request #76)
    • Updated the GUI to use a TabPane so that users could use CTRL-TAB to switch tables between residents and venues easily (Pull request #110)
    • Wrote additional tests for both new and existing features to increase coverage (Pull requests #127, #152, #196)
    • Overloaded the list command to allow users to include or exclude specified columns when listing (removed in v1.4 as this was an intermediate feature) (Pull requests #76)

Appendix for UML diagrams added to the Developer Guide

  • Class diagram for Model component:


  • Diagram illustrating the reference relationships between MainWindow and other relevant components:


  • Activity diagram modelling the intended behaviour of RC4HDB in response to a column manipulating command:


  • UML diagram showing the inheritance relationships for the classes used in manipulating columns:


  • Class diagram for the Model component before the venue feature was added:

This diagram was removed from the DG to reduce clutter, but was present in the DG prior to addition of the venue feature.


  • Class diagram for ResidentBook (but with better OOP):

This diagram was removed from the DG to reduce clutter, but was present in the DG prior to addition of the venue feature.