Darren Hoon's Project Portfolio Page
Project: Trace2Gather
Trace2Gather is a desktop address book application used for managing hotel guests and rooms. The user interacts with it using a CLI, and it has a GUI created with JavaFX. It is written in Java, and has about 10 kLoC.
Given below are my contributions to the project.
Summary of Contributions
Code Contributed
Enhancements Implemented
- Linked Database’s Room details to GUI, where Rooms are displayed on the GUI’s list of rooms.
- What it does: Allows users to visually see the rooms that were saved in the database and their last updated status.
- Justification: This feature improves the product significantly because being able to visually check a room’s status, such as its Occupancy Status, helps it’s users to identify a room’s status quickly and increases response time to the user requesting such information.
- Highlights: This enhancement affects user interaction with the application. It required an in-depth analysis and understanding of the GUI codebase and jackSon’s syntax, such as @FXML tags having only small characters
- Credit: jackSon documentation, stackOverflow
- Find Room command to enable users to search for specific rooms
- What it does: Allows users to search for specific rooms in the given list of rooms
- Justification: This feature improves the product significantly as being able to quickly search for specific rooms helps the user to retrieve information about the room faster as compared to manually scrolling down till they find the room
- Highlights: This enhancement required us to put ourselves in the shoes of a potential user and what were the pain points that might arise from our application without this feature.
- Credit: Existing UML Diagrams, Well-thought out code structure that enables easy extensibility.
- Added GUI elements for Room and History card panels in the application.
- What it does: Allow users to see in detail the changes to the state of the application based on their actions and their accompanying information.
- Justification: Being able to visually see which guests are in which rooms enable faster retrieval of information. Colour coding for vacancy and guests enables faster information retrieval for the user by allowing users to gain an intuitive understanding of the status of the room card’s layout and distinction from one room to the next.
Displaying the residencies on the frontend via a list affords the user with the choice to interact with the existing database either via the GUI application or via direct JSON accesses. Being able to access it from the GUI along with the commands we added to filter residencies help users to identify residencies of interest at a much faster rate. - Highlights: These enhancements enabled us to visually check if our system is registering the changes based on the commands we type and the colour coding enables a clear distinction and focus of each room and its internal details from another.
- Credit: Original AB3 team for making the code structure highly extensible and their FlowPane’s styling in the CSS, coolors to help with the colour coordination.
UG Contributions
- Introduction in each section
- Purpose of Trace2Gather and Purpose of Guide
- Navigation Guide
- Redirected Help Window’s link to our project’s User Guide Page
DG Contributions
- Implemented Use Cases Page
- Amended UML Diagrams
- Added “Appendix: Effort” section
Team-Based Tasks Contributions
- Main bug finder and user tester for application, reporting bugs to the team to be fixed.
- Maintaining issues tracker.
- Designing and making our product icon.
- Releasing v1.4 (trial) of product.
- Testing some new features that were not covered by others.
- Providing boilerplate code for team to start work in first week of team project.
Review / Mentoring Contributions
- Coordinated with the team frequently and kept track of each other’s progress.
- Assisted in solving problems raised by the team when developing the product.
- Reviewed Pull Requests and assisted in adding test cases to ensure that code coverage is not significantly reduced.
- Assisted in debugging issues raised by the team or others.