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
- Review/ mentoring contributions:
- Reviewed
PRs: #48, #60, #73, #77, #79, #82, #93, #94, #95, #103, #111, #114, #127, #128, #145, #150, #153, #164, #180, #184, #199, #200, #219, #223, #224, #227, #254, #258, #259, #272, #295, #301, #318
- Bug
Reports: #108, #116, #119, #120, #162, #175, #179, #185, #188, #189, #190, #191, #192, #193, #196, #225, #240, #242, #248, #261, #266, #267, #268, #270, #273, #280, #328
- 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)