Skip to content

Latest commit

 

History

History
125 lines (73 loc) · 5.65 KB

jelenaneo.adoc

File metadata and controls

125 lines (73 loc) · 5.65 KB

Jelena Neo Hui Ling - Project Portfolio

Project: Codii

[Codii] is a desktop address book application specially designed for debt collectors to manage debtors in a simple manner. It has a GUI but most of the user interactions happen using a CLI (Command Line Interface).

Debt collectors can store information such as the amount owed, debt borrow date and debt cleared date in addition to debtor’s personal information.

Unique features such as an interest calculator help debt collectors manage debts more efficiently.

Codii is evolved from [AddressBook - Level 4] which is a desktop address book application used for teaching Software Engineering principles.

Code contributed: [Functional code] [Test code]

Enhancement Added: Login/Logout

External behavior


Start of Extract [from: User Guide]

End of Extract


Justification

Debtor’s personal information will be stored in the address book. Hence, there is a need to limit access of the address book to debt collectors only.

Only help, exit and login commands can be entered before login. If other commands, including unknown commands are entered, the error message "Please log in first" will be displayed. This is because users should log in first before being able to use the app. Users can open a help window using the help command to look for further information on how to login if they need to. Users should also be able to exit the app without being logged in.

It also makes sense for the user to be able to log out without closing the app.

The decision to include the CLI version of the login feature is based on convenience. One-shot commands take a shorter amount of time to type compared to multi-step commands. Although password masking causes the CLI login feature to behave unexpectedly at times, it is necessary to prevent others from seeing the password that is typed. The CLI login works as expected if the user does not insert/delete characters from within the input.

Implementation


Start of Extract [from: Developer Guide]

End of Extract


Enhancement Added: Borrow/Payback command

External behavior


Start of Extract [from: User Guide]

End of Extract


Justification

Should there be a need to adjust the debt of a person, the debt collector can use the borrow command to increase the debt by a specified amount and the payback command to deduct a specified amount. If the debt collector uses the edit command to update the debt of a person, he/she has to manually calculate the new total debt before entering the new debt into the address book. The borrow and payback command eliminates this hassle by doing the math for the user.

The whitespace character is used as the argument separator for both commands because it is more intuitive than special prefixes such as n/ which is used to denote the name of a person.

Implementation


Start of Extract [from: Developer Guide]

End of Extract


Enhancement Added: Filter (by tags) command

External behavior


Start of Extract [from: User Guide]

End of Extract


Justification

Tags can be a way of adding additional information to a contact. The filter command provides debt collectors a way to group debtors according to these additional information for various purposes.

For example, tags can be used to indicate a particular behavior of a debtor. A debt collection agency can filter debtors by the violent tag to get a list of debtors that are violent. Manpower can then be planned accordingly to ensure that debt collectors go in pairs to collect debts from debtors listed in the 'violent' list for safety reasons.

Implementation


Start of Extract [from: Developer Guide]

End of Extract


Other contributions

  • Reduce information in person card (Pull request #239)

  • Improve welcome page (Pull request #211)

  • Add debt repayment progress bar (Pull requests #194, #210)

  • Improve info panel (Commit enhance info panel)

  • Help others through slack and forum (Issues #177 and #81/ Slack: fields not showing information and explaining the difference between git fetch and git pull)

Project: Modulus

[Modulus] is a web app to make module mapping more convenient for NUS students going overseas for exchange. This project was developed in pairs for [CP2106 Independent Software Development Project (Orbital)].