Daniel Sim's Project Portfolio Page
Project: HeRon
HeRon is a desktop application for HR managers to assist in managing HR administrative tasks such as tracking leaves and offs, calculating pay and updating payroll information.
HeRon is a project adapted from AddressBook - Level 3. It is written in Java, and has about 10 kLoC.
Given below are my contributions to the project.
-
Code contributed: RepoSense link
- Enhancements Implemented:
- New Features
- Implemented
LeaveBalanceandOvertimeand updatedHoursWorkedattributes forPerson, as well asaddLeaveBalance,deductLeaveBalance,addHoursWorkedanddeductHoursWorkedcommands.- What it does: The user is able to modify
LeaveBalance,OvertimeandHoursWorkedwithout needing to useedit. - Justification: Without these commands, the user would have to manually look up the details of a given employee,
manually calculate how many hours worked and overtime hours the person should have, then use the
editcommand to change the values accordingly. With these commands, all the user needs to do is input the index of the specified employee, along with how many hours worked/overtime/leaves they wish to add or remove. - Highlights: The implementation of
addHoursWorkedanddeductHoursWorkedwas challenging as it could take in eitherHoursWorkedand/orOvertime, so all of these valid cases needed to be handled. Also, for the case where one of the inputs is valid while the other is invalid, the command throws an error that specifies which input is causing the error.
- What it does: The user is able to modify
- Implemented
LeavesTakenattribute forPerson, as well asassignLeaveandremoveLeavesBeforecommands.- What it does:
assignLeaveassigns a leave associated with a date to an employee.removeLeavesBeforeremoves all assigned leaves that occur on and before a given input date from all employees in the current list. - Justification: This allows the user to keep track of when an employee is taking a leave, to allow
them to better plan work schedules, while serving as a form of record keeping.
removeLeavesBeforeis a command that allows the user to manually clear outdated leave information when they no longer need it in a quick and easy manner, as it is applied to many employees at once.
- What it does:
- Implemented
- Enhancements to existing features
- Updated
findcommand with the ability to search employees by their assigned leave dates, either with an individual date, or a date range. (#83, #108)- Justification: This allows users to more easily find employees that have taken leaves on certain dates, in case they need to determine who is not working on a given date or period.
- Highlights: The find command is able to take a combination of date ranges and individual dates.
For example,
find d/2021-10-11:2021-10-20 2021-11-11 2021-12-12gets all employees that have at least 1 assigned leave from 2021-10-11 to 2021-10-20, or on 2021-11-11 or 2021-12-12.
- Updated
- New Features
- Documentation Contributions:
- User Guide:
- Added documentation for the following commands:
addLeaveBalancedeductLeaveBalanceaddHoursWorkeddeductHoursWorkedassignLeaveremoveLeavesBeforefind(Section onType 4 Query: Date Based Comparison)
- Added documentation for the following commands:
- Developer Guide:
- Added implementation details for:
LeaveBalance,addLeaveBalanceanddeductLeaveBalanceLeavesTaken,assignLeaveandremoveLeavesBefore
- Added use cases and manual test cases for the following commands:
addLeaveBalancedeductLeaveBalanceaddHoursWorkeddeductHoursWorkedassignLeaveremoveLeavesBefore
- Added implementation details for:
- User Guide:
- Project Management
- Managed releases
v1.2,v1.3.1andv1.3.2on GitHub
- Managed releases
- Team Contributions
- Helped to create and distribute issues for each milestone
- Review Contributions
Contributions to the Developer Guide (Extracts)
- Sequence diagram for
AddLeaveBalanceCommand
- Sequence diagram for
RemoveLeavesBeforeCommand
Contributions to the User Guide (Extracts)
- Type 4 Query: Date Based Comparison
- Fields:
d/DATE- This field will find all people who have taken a leave on a given date or within a range of dates. (start and end dates inclusive)
- There are two ways to search using dates: individual dates or date ranges.
- For individual dates, simply type in a date of the form YYYY-MM-DD.
- For date ranges, simply type in two dates in the form YYYY-MM-DD:YYYY-MM-DD.
- Both individual dates and date ranges can be combined into one query.
- For example,
find d/2021-10-10 2021-11-01:2021-11-05will find anyone who satisfies either of the following 2 criteria:- has taken a leave on October 10th 2021, or
- has taken a leave between the dates November 1st 2021 and November 5th 2021, start and end dates inclusive.
- Fields:
Add number of leaves for an employee : addLeaveBalance
Adds the specified number of leaves to the current leave balance (number of days of leave left) of a chosen employee.
Format: addLeaveBalance INDEX l/NUMBER_OF_LEAVES
- Adds the specified number to the number of leaves of the employee at the specified
INDEX. - The index refers to the index number shown in the displayed employee list.
- The index must be a positive integer 1, 2, 3, …
- The number of leaves must be a positive integer between 1 and 365 1, 2, 3, …, 365
- The number of leaves to be added cannot cause the employee’s total leave balance to exceed 365 leaves.
Examples:
listfollowed byaddLeaveBalance 3 l/4adds 4 days of leave to the 3rd employee in HeRon.find n/Samfollowed byaddLeaveBalance 1 l/1adds 1 day of leave to the 1st employee in the results of thefindcommand.