Kevin Chang'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 Employee ID system
- Created an
EmployeeIdclass to represent the unique ID of an employee in the company. The implementation can be seen here. - Justification: This attribute of the employee completely removes any ambiguity of
Personobjects, as well as any possibility of duplicate employees recognised during commands. - Highlights: As a field with restrictions placed due to its uniquenes, it lacks modular depth as compared to other basic
Personfields such asNameorPhone. It is also much harder to ensure smooth usage and testing due to its widespread implications.
- Created an
Existing Features
-
Upgraded
findfunction- Created a
Departmentclass for another dimension of categorization. Then modifiedfindto build a search filter that can comprise of name, department, and/or job position. - Justification: With this command, users of Coydir will be able to look up information on specific employees or group of employees quickly.
- Highlights: Relatively easier to implement than the Employee ID system.
- Created a
-
Upgraded help window
- Changed the default help window to provide a command summary. Additionally, instead of a button that copies the URL into register, the button opens the User Guide in the default browser of the user.
- Justification: The help window now provides more utility, and accessing the User Guide is made faster and simpler.
- Highlights: Implementing the function to open the User Guide in browser was slightly complex, and needed some workarounds. Building the interface for the help window was also particularly challenging.
-
Fixed multiple bugs (Refer to #150, #151, #232, #233).
Contributions to the UG
- Restructured the document into current structure
- Added documentation for following parts:
- Introduction and Logo, Employee Profile,
findcommand,editcommand,helpcommand
- Introduction and Logo, Employee Profile,
Contributions to the DG
- Edited implementation details for:
find
- Added documentation for the following parts:
- Non-functional requirements, Glossary, Manual testing, Table of contents
Contributions to team-based tasks
- Helped to create and distribute issues.
- Wrote test code for features that I upgraded (find, ID, department, position).
- Contributed to manual testing of application to find bugs.
- Oversaw backend development and upheld code quality.