Lai Wen Xuan Jeremy - 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 the user command parser using regex
- What it does:
- Parses commands input by the user, and creates the appropriate
Command
object to execute the user’s desired task - Utilises regex and error handling methods to catch incorrect commands and formats
- Parses commands input by the user, and creates the appropriate
- Justification:
- The regex strictly enforces the format of some parameters such as dates to facilitate easy parsing and reduced chances of bugs. However, it still allows for some freedom in input formats, such as optional whitespaces, to make typing commands easier for users.
- Highlights:
- This enhancement forms the foundational structure for the logic of ATAS, dealing with all user inputs.
- Comprehensive error handling of the parser makes the implementation of the various
Commands
much easier, as theCommand
classes can expect to receive only valid inputs - This enhancement was challenging to implement as it was my first time properly dealing with regex. I had to figure out how to use named-capturing groups, how to allow for optional and variable-length expressions, how to explicitly disallow the use of certain special characters, and how to integrate all these things into a regex that represents the user’s input command.
- Credits:
- Credits to addressbook-level2 for the idea to use regex for user commands
Minor Enhancement: Implemented the storage functionality to save user’s data across sessions in a local file
Code Contributed: View on RepoSense
Contributions to the User Guide:
- Updated the Command Format section under Section 3 - Features: #105
- Added instructions for using the
assignment
,event
,list
, andlist today
commands
Contributions to the Developer Guide:
- Added the Setting Up section
- Wrote the Design section
- Wrote Section 3.7 - Storage
- Wrote Section 5 - DevOps
- Normalize the writing style and format of the various sections: #142, #220
Contributions to Team-based Tasks:
- Managed the issue tracker
- Managed links in the project GitHub page
- Compiled all comments from the developer guide review
- Compiled all relevant bugs reported in the practical exam dry run
Community: