Ng Shi Jun's Project Portfolio Page
Project: Coydir
Coydir is a desktop application used by Human Resource Executives to streamline processes in managing their staffing. The user interacts with it using a CLI, and it has a GUI created with JavaFX.
Given below are my contributions to the project.
Summary of Contributions
Code Contributed
Enhancements Implemented
- New Features
- Implemented
viewfeature- Created a
ViewCommandclass to handle the logic,ViewCommandParserclass to handle the parsing of the user input,PersonInfo.fxmlto organize the information to be presented, andPersonInfoclass to adjust the necessary settings of the corresponding fxml file. - Use Case: User can view the more detailed information of an employee on the right panel.
- Why: If we include all the information of an employee on the left list panel, the information will be too cluttered, which will result in a bad user experience.
- Created a
- Implemented
view-departmentfeature- Created a
ViewDepartmentCommandclass to handle the logic,ViewDepartmentCommandParserclass to handle the parsing of the user input,DepartmentInfo.fxmlto organize the information to be presented, andDepartmentInfoclass to adjust the necessary settings of the corresponding fxml file. - Use Case: User can view a summary of a department, which contains the total number of employee in that department, how many employees are currently available, how many employees are currently on leave, and the performance rating of each employee.
- Why: This will give HR a high level overview of the overall performance of a particular department, which can assist in making decisions such as department restructuring and employee promoting.
- Created a
- Implemented
lightanddarktheme- Created a
LightTheme.cssfile that contains the css information for light theme. Made adjustment to theMainWindowclass so that the program can properly capture users’ mouse click and change the theme accordingly. - Use Case: User can switch to a theme of their preference.
- Why: Improve users’ experiences.
- Created a
- Implemented a right panel
- Created a right panel to display information from
viewandview-departmentcommand. Update the necessary parsers to send a signal toMainWindowclass whenever there is an update to the information displayed. The right panel will then update to display the latest information. - Why: To ensure that all the information displayed is up-to-date. So users don’t need to manually update, which brings about more convenience to the users.
- Created a right panel to display information from
- Enhanced GUI settings
- Make changes to GUI settings. Specifically:
- Change the position of the
ResultDisplayandCommandBox. - Change the minimum width and height of the program so that the content won’t be blocked when users try to resize the window.
- Slightly increase the height of the
ResultDisplayto contains more result, hence less scrolling required.
- Change the position of the
- Why: Enhance user experience
- Make changes to GUI settings. Specifically:
- Implemented
- Existing Features
- Enhanced the
PersonListCardclass- Remove unnecessary information that were previously displayed on each of the
PersonListCard. - Why: This enhances the user experience by removing additional unimportant information.
- Remove unnecessary information that were previously displayed on each of the
- Enhanced the
- Contributions to the UG
- Added documentation for following parts:
viewcommand.listcommand.view-departmentcommand.
- Added documentation for following parts:
- Contributions to the DG
- Added implementation details for:
viewcommand.view-departmentcommand.
- Added implementation details for:
- Reviewing Contributions