Project: T_Assistant

T_Assistant is a desktop app for CS2103 tutors managing their students, groups and tasks optimized for use via a Line Interface (CLI) while still having the benefits of a Graphical User Interface (GUI).

If you can type fast, T_Assistant can get your contact management tasks done faster than traditional GUI apps. Given below are my contributions to the project.

Lewis Lye


  • Enhancements implemented:
    • New Feature #62 : Added Task class
      • What it does: Base implementation of Task class, Deadline class and status enum.
      • Highlight: Deadline class uses strict resolving and uuuu for year to deal with common invalid dates.
    • New Feature #74 : Added Delete Group Command
      • What it does: Deletes Group from T_Assistant. Also updates Student and Tasks related to the Group deleted.
    • Refactored UI #102: Updates the details shown in Student and Group Panels
      • What it does: Adds group label in Student Panel and reformat list of students in each Group.
      • Why do this: Improves UX so that user does not have to switch between panels to see information.
    • Refactored Feature #121: Improve logic when loading Students from addressbook.json
      • What it does: Adds a special character that denotes a student has no group.
        Updated Student class structure to use Optional<GroupName> rather than Optional<Group>
      • Why do this: Reduces number of places to update fields when commands are run.
    • New Feature #143: Added shorthand for all commands
      • Why do this: Command words were getting a bit long as features were added so adding shorthand will allow users to be able to quickly use commands once they are familiar with them.
    • New Feature #168, #169, #171: Added Find Student, Group and Task commands
      • What it does: Allows user to search each list of objects
      • Challenges: Initial implementation attempted to use FuzzyWuzzy, however, due to challenges in getting consistent results, reverted back to using String.contains().
    • Refactored Feature #197: Update command word matching to be case-insensitive
      • What it does: Allows user to type in command words in any case.
    • Refactored Feature #198, #272: Update relevant comparators to be case-insensitive
      • Why do this: Makes more sense for the updated parameters to be case-insensitive due to their respective natures and use cases.
    • New Feature #227: Added Add Existing Task to Groups
      • What it does: Allows user to add pre-existing tasks to new groups.
      • Why do this: User might add groups after creation of tasks, this allows them to assign tasks to groups without recreating them.
    • Refactored Class #272: Updated GroupName parsing
      • What it does: Updates GroupName regex to accept only names in formats of group for CS2103/T.
      • Why do this: Since T_Assistant is built for TAs of CS2103, it makes sense that GroupName should respect the course's naming for groupings.
    • Refactored Class #272: Updated Deadline parsing error messages
      • What it does: Gives more information on what user inputted deadline has
      • Challenges: Due to inexperience with DateTimeException, unable to give more verbose error. See #264
    • Refactored Feature #291: Add Existing Task to Group Command error messages
      • What it does: Informs user of which part of their command went wrong.
      • Why do this: Since the function can take in multiple groups, it is likely the user might mistype certain group names or add duplicates, this allows them to see where they went wrong.
    • Bug Fix #308: Fixed Groups not appearing in lt after mark command is ran
      • Bug description: Groups were being filtered away due to mark command returning a filtered list.
    • Bug Fix #330: Fixed Edit Group command not updating Optional<GroupName> for Students inside the Group
    • Bug Fix #336: Fixed setTask() method in Group class to not take in index
      • Bug description: Index supplemented was based on global task list, which did not correspond to the index the task is located at within the Group.
      • Fix: Updated method to search for original Task before replacing it with the new one.

  • Documentation:
    • User Guide:
      • #235: Replaced UI and Help image, added existing commands to command summary, updated notes on features, update example commands
      • #239: Set up template for features for the team to use
      • #243: Updated user stories to match implementation
      • #252: Added Find Student feature guide
    • Developer Guide:
      • #26: Added use stories and use case
      • #176: Added implementation details for Delete Group Command
      • #292: Added activity diagram to Delete Group Command
      • #298: Updated previous portions of AB3 to match current implementation of T_Assistant, updated links to point to team repo, updated Glossary
      • #319: Updated NFRs for project
      • #324: Added manual test steps

  • Contribution to team-based tasks:
    • Kept track of deliverables
    • Set up team organisation and team repository
    • Removed mentions of AB3 in AddressBook, User Guide and Developer Guide
      • Updated help link to point to team repo
      • Updated links within UG and DG to point to their respective locations in team repo
    • Maintaining the issue tracker
    • Enabled assertions #155
    • Release Management for v1.4, v1.5 and v1.5.1
    • Updated structure of JsonAdaptedGroup and upgraded JsonSerializableAddressBook to support Group and Task storage
    • Updated structure of JsonAdaptedStudent
    • Update SampleDataUtil.java for sample data that will be used by testers
    • Suggested improvements to validations of Name #261 and Email #311
    • Updated major portions of both UG and DG
    • Contributed to proofreading and formatting for UG and DG
    • Refer to PR section below
      • Contributed to reviewing PRs for code changes
      • Contributed to testing and bug reporting


  • Contributions beyond the project team:
    • Clarification if CI failure will result in penalisation (#531)
    • Requesting use of Library: FuzzyWuzzy (#543)
    • Clarification on UML diagram deadline in Week 10 (#574)