Cedric Chia's Project Portfolio Page
Project: TABS
TABS is a desktop scheduler application used by students managing team projects. It allows the user who is a student to view a project’s members and their workload, allocate tasks to them and get reminders on upcoming deadlines or deliverables.
Contributions
Given below are my contributions to the project.
- New Feature:
DeleteGroupCommand#91- Details:
- This command class allows the deletion of a group, removing its corresponding members as well as their allocated tasks.
- This helps the user to delete a group instantly.
- Justification:
- When the project comes to an end, the project team leader might want to tidy up his workspace in TABS. Offering the functionality of removing the group instantly will be efficient as he does not need to delete each member and group one by one.
- Details:
- New Feature: Added functionality of
Workloadto tasks. #113 #122- Details:
- This enum class allows a workload to be tracked for each task assigned to each member.
- A workload of low, medium or high can be tagged to each task, specified with “/w” prefix.
- Made
assignmentclass implementComparable<Assignment>to compare workload, listing tasks of higher workload first.
- Justification:
- One of the key focus of TABS is to gauge a person’s workload. Implementing a way to view a how overloaded a member is at a glance will allow the project team leader make better decisions when allocating tasks.
- Difficulties:
- Deciding to make workload an ordinal or categorical variable was crucial. We decided to make workload categorical to make TABS easier to use for beginners.
- Details:
- New Feature: Added functionality of
Deadlineto tasks. #113- Details:
- This class allows TABS to store deadlines into tasks, specified with “/d” prefix
- Along with this class, the
DateTimeParserclass is implemented to recognise inputs by the user, to parse as dates.
- Justification:
- Deadlines are an additional note for users to track when a task is due to better manage their projects.
- Difficulties:
- Parsing dates led to unforeseen situations where dates not present in the calendar (30 Feb) will be recognised as (28 Feb). We decided to make the formatting of these dates strict such that the user has to input a date within range. #144
- Details:
-
Code contributed: RepoSense link
- Project Management:
- Opened Github issues for bug report.
- Closed Github issues timely with each PR.
- Update ReadMe page #24
- Enhancements implemented:
- Refactored AB3 code to improve readability #94.
- Improve workload indicator to make colour change from green to red gradual #142.
- Credits: Formula referenced from link.
- Refactored
editcommand in AB3 toeditperson, addingFullNamePredicateclass to edit them by full name #73. - Added test cases for
editpersonanddeletepersoncommands #100. - Fixed test cases for task commands #124.
- Documentation:
- Community: