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:
finddebt
command #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
KFC
orkfc
can still find the relevant debts.
-
Code contributed: RepoSense link
- Project management:
- Issue creation for team tasks:
- Enhancements to existing features:
- Enhanced the
find
command 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
Person
field orDebt
field, and also has ways to search for a range of values for certain fields.
- Enhanced the
add
command to make all non-name fields optional #168- What it does now: Only
n/name
needs 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
DebtList
class to represent an immutable list ofDebt
s #66 - Implemented the ability to save a
Debt
to json file #66 - Fixed critical bugs related to JSON saving #74
- Added the ability to test
Debt
-related features withTypicalPersons
#75 - Refactored
EditPersonDescriptor
to more general-purposePersonDescriptor
#149 - Added utility method to create
PersonDescriptor
s fromArgumentMultimap
#168 - Added utility class
DebtsDescriptor
that describes a group of debts #183 - Added utility method to create
DebtDescriptor
s fromArgumentMultimap
#183 - Added general-purpose predicate to filter by fields present in a
PersonDescriptor
orDebtsDescriptor
#149, #183 - Implemented test utilities to construct new instances of
DebtList
,PersonDescriptor
,DebtsDescriptor
#66, #149, #183
- Documentation:
- Community: