Tshin Qi Ren - Project Portfolio Page
PROJECT: Amazing Task and Assignment System (ATAS)
Overview
ATAS is a cross platform Command Line Interface (CLI) program that allows you to track your assignments and events. ATAS is catered for students who want to maximise their productivity and cultivate effective time management habits through a desktop application.
Summary of Contributions
Major Enhancement: Implemented feature to allow events to repeat.
- What it does:
- It allow users to set an event to repeat for any period so that they do not have to add tasks with the same/similar name but different timing for every instance the user wants the task to repeat for.
- Justification:
- Improves usability and user experience of the app as repeating events are relatively common and having to add multiple tasks to keep track of a repeating event will become a hassle.
- Providing flexibility to allow user to repeat for any period will be useful for modules that do not have weekly classes (every 2/3 weeks)
- Highlights:
- Repeating an event was particularly difficult and tedious to implement due to the many ways one can implement it (with different pros
and cons). This led to many changes in its implementation over the weeks as we try to cater to different needs that we have identified for
our target audience - students. To list a few:
- There was initially difference in implementation for
Calendar
feature which interacts withRepeat
feature but was not caught until both developers finished and did their pull requests which led to more changes in implementation. - We also later discovered a particular ‘bug’ with
LocalDateTime
API from Java relating to the last few dates of a month. Adding 1 month to 31 Jan 2020 then adding another, will result in 29 Mar 2020 instead of the desired 31 Mar 2020. This led to another round of changes to how repeat event was implemented.
- There was initially difference in implementation for
- This enhancement was difficult to implement as it was my first time handling with Date and Time, particularly
LocalDateTime
API and its variations in Java and was not used to the many corner cases. I had to plan properly and take note of the many corner cases before obtaining the current implementation. (Credit to team for helping me catch bugs relating to my first few implementations and providing feedback on how to improve.)
- Repeating an event was particularly difficult and tedious to implement due to the many ways one can implement it (with different pros
and cons). This led to many changes in its implementation over the weeks as we try to cater to different needs that we have identified for
our target audience - students. To list a few:
Minor Enhancement:
- Implemented
list
commands forlist
(listing all tasks),list incomplete assignments
,list upcoming events
. - Implemented
CommandResult
class to deal with output from commands. - Added
common/Messages
to store all the strings that are used for printing to user. #38 - Refactored
common/Messages
to remove repetitive strings that have similar messages. #94
Code Contributed: View on RepoSense
Contributions to the User Guide:
- Add instructions for
RepeatCommand
. - Add tips and notes for understanding our command format. #104
- Fix inconsistencies in formatting and broken links during conversion to md from adoc. #150
Contributions to the Developer Guide:
- Add Section 3.4: Repeat Event feature
- Add initial information to Appendix A (Product Scope) and D (Non-Functional Requirements) that are subsequently improved by team. #135
- Improved Section 4: Testing draft written by team.
Contributions to Team-based Tasks:
- Set up Github Repo for ATAS
- Managed Issue Tracker in Github
- Enable Assertion for Gradle
Community: