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 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)
- 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 screenshots to the sections for the
hideonly
andfind
commands.
- Added screenshots to the sections for the
- 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 this section
- Added details to the Implementation section for the
showonly
,hideonly
andreset
features- Added two class diagrams and one activity diagram for this section
- 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
- User Guide:
- Community:
- Reviewed 30 PRs. Many had non-trivial review comments: #30, #55, #57, #72, #73, #98, #114, #122, #132, #182, #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:
- 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.