Samuel Tan's Project Portfolio Page
Project: PayMeLah
PayMeLah is a desktop app for keeping track of and managing the debts your friends owe you. It can also help do simple calculations for you, such as including GST or splitting debts amongst your friends. What’s more, it is optimised for you to do everything from just your keyboard!
Given below are my contributions to the project.
- New Features:
finddebtcommand #78- What it does: Finds debts based on loose matching of debt description.
- Justification: This is a key feature to help the user look for debts when they do not remember the exact capitalisation of a debt description or only remember one of the words contained within it.
- Highlights: It performs a case-insensitive search for specific words in the debt description, so a user who isn’t sure whether the debt was labelled
KFCorkfccan still find the relevant debts.
-
Code contributed: RepoSense link
- Project management:
- Issue creation for team tasks:
- Enhancements to existing features:
- Enhanced the
findcommand with a large assortment of additional fields to search by #149 #183- What it does now: Finds debts based on a variety of filters.
- Justification: This is a key feature to help the user look for specific people using any of a large variety of search criteria.
- Highlights: It can search on any
Personfield orDebtfield, and also has ways to search for a range of values for certain fields.
- Enhanced the
addcommand to make all non-name fields optional #168- What it does now: Only
n/nameneeds to be specified. All other fields can be left out without issue. - Justification: This speeds up the user’s entry of data into PayMeLah when first using the app, since name is the only essential information needed. Furthermore, users may not know e.g. the phone numbers of some people.
- Highlights: All relevant data classes in the model component got a new constant representing a field left empty.
- What it does now: Only
- Enhanced the
- Contributions to team-based tasks:
- Performed renaming of the project and its components from AddressBook Level-3 to PayMeLah #60
- Implemented
DebtListclass to represent an immutable list ofDebts #66 - Implemented the ability to save a
Debtto json file #66 - Fixed critical bugs related to JSON saving #74
- Added the ability to test
Debt-related features withTypicalPersons#75 - Refactored
EditPersonDescriptorto more general-purposePersonDescriptor#149 - Added utility method to create
PersonDescriptors fromArgumentMultimap#168 - Added utility class
DebtsDescriptorthat describes a group of debts #183 - Added utility method to create
DebtDescriptors fromArgumentMultimap#183 - Added general-purpose predicate to filter by fields present in a
PersonDescriptororDebtsDescriptor#149, #183 - Implemented test utilities to construct new instances of
DebtList,PersonDescriptor,DebtsDescriptor#66, #149, #183
- Documentation:
- Community: