Nicholas Seah's Project Portfolio Page
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
Venue
andBooking
are two new entity types, each of similar complexity toPerson
in AddressBook-Level3.
- 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)
- Project management:
- Refactored and renamed AddressBook-Level3 to RC4HDB
- Opened and assigned issues to the team during our weekly project meetings
- Created the skeletal project portfolio page for my team
- Created the UI mockup for RC4HDB
- Completed the product demonstrations for both v1.2 and v1.3
- Mentoring contributions:
- Provided feedback and enforced internal code quality standards within my team
- Guided my team on the use of streams to make our code more declarative
- Suggested the use of abstract classes for our command history feature
- Documentation:
- User Guide:
- Added documentation for the commands
list
,showonly
,hideonly
,reset
andfind
. You can view them here - Added documentation for the FAQ, glossary-of-terms, quality-of-life, authors and command summary sections
- Added documentation for the commands
- Developer Guide:
- Updated the acknowledgements section
- Updated the Design section for the Model component
- Added a class diagram for the Model component in this section
- Added two other class diagrams that were removed after the addition of the venue feature
- Added details to the Implementation section for the
showonly
,hideonly
andreset
features- Added a class diagram illustrating the reference relationships between MainWindow and the other components
- Added a class diagram showing the inheritance relationships for the classes used in manipulating columns
- Added an activity diagram modelling the intended behaviour of RC4HDB in response to a column manipulating command
- Added use cases and user stories for RC4HDB
- Added a sequential testing guide to the manual testing section for the
list
,showonly
,hideonly
, andreset
commands - Refer to the appendix for the diagrams mentioned in this section
- User Guide:
- Community:
- Reviewed 32 PRs. Many had non-trivial review comments: #30, #55, #57, #72, #73, #98, #114, #122, #132, #182, #292, #299, #303
- Participated in discussions on the forum. Examples include: #383, #401
- Reported 15 potential bugs and suggestions for other teams during the PE dry run. Examples include: #310, #315, #328, #332, #362
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:
- UML diagram showing the inheritance relationships for the classes used in manipulating columns:
- Activity diagram modelling the intended behaviour of RC4HDB in response to a column manipulating command:
- 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.