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
EmployeeId
class 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
Person
objects, 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
Person
fields such asName
orPhone
. It is also much harder to ensure smooth usage and testing due to its widespread implications.
- Created an
Existing Features
-
Upgraded
find
function- Created a
Department
class for another dimension of categorization. Then modifiedfind
to 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,
find
command,edit
command,help
command
- 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.