Shee Hui's Project Portfolio Page
Project: DonnaFin.io
DonnaFin.io is a desktop application used by financial advisors to keep track of their client information and related tasks. The ‘.io’ in our name is a reflection of our belief that you deserve a faster workflow for input and output. If you can type fast, you can use our CLI-like commands to manage your client information and view your notes much faster than your typical customer relationship manager apps.
Given below are my contributions to the project.
- New Feature:
- Add Assets Feature #137
- Implemented an
Asset
class to represent an asset, containing its name, type, value and remarks. - Our users will be able to store asset information about their clients.
- These assets are stored as a
List
of assets inPerson
since one client can have multiple assets. - As such, for storage purposes, a new class
JsonAdaptedAsset
was created to store each individual assets. - Our JSON file now holds nested JSON objects, one of them is assets.
- Implemented an
- Add Policies Feature #137
- Implemented a
Policy
class to represent a policy, containing its name, type, insured value, yearly premiums and commissions. - Our users will be able to store policy information about their clients.
- These policies are stored as a
List
of policies inPerson
since one client can have multiple policies. - As such, for storage purposes, a new class
JsonAdaptedPolicy
was created to store each individual policy. - Our JSON file now holds nested JSON objects, one of them is policies.
- Implemented a
- Add Liabilities Feature #137
- Implemented an
Liability
class to represent an asset, containing its name, type, value and remarks. - Our users will be able to store liability information about their clients.
- These liabilities are stored as a
List
of policies inPerson
since one client can have multiple liabilities. - As such, for storage purposes, a new class
JsonAdaptedLiability
was created to store each individual liability. - Our JSON file now holds nested JSON objects, one of them is liabilities.
- Implemented an
- Storage #137
- As mentioned above, due our decision to create a nested JSON as our data, it differed from AB3 substantially.
JsonAdaptedLiability
,JsonAdaptedPolicy
andJsonAdaptedAsset
all have its ownJsonProperty
fields and are stored as aList
insideJsonAdaptedPerson
- Add Assets Feature #137
-
Code contributed: RepoSense link
- Project management:
- Set up DonnaFin’s GitHub team organisation and repository
- Renaming AB3 to DonnaFin during refactoring #41, and catching traces of AB3 when working on other features/work.
- Documented project README, target user profile and value proposition
- Shared responsibility to maintain issues
- Changes AB3 links to DonnaFin in project README and our GitHub Pages
- Enhancements to existing features:
- Testings:
- Add
Asset
,Policy
,Liability
andNotes
testings. #172, #193- ensure null values are not accepted by any field
- add and ensure regex validation + error message handling
- Improve test quality in parsers #346
- Add tests for valid commands in wrong window #349
- created
ParserStrategyTestUtil
for cleaner test code - tested
clientViewParser
command - tested error message handling for valid commands in wrong window
- created
- More storage tests + null tests for
JsonAdaptedLiability
,JsonAdaptedPolicy
andJsonAdaptedAsset
#349- This is to prevent
NullPointerException
from occurring, which completely breaks the app. - Prevent duplicates/ purposeful insertion of null value
- This is to prevent
- Add
- Bug fixes:
- Ensure single-word commands cannot be activated when input is more than one word. Add support of upper/lower cases in command word. #144
- Valid command in wrong window should show an appropriate message as it is not an unknown command #306
- Fix index larger than MAX_VALUE showing different error message #303
- Enhancements:
- Amend
SampleDataUtil
functions to fit with the newAsset
,Liability
andPolicy
structure and how it interacts withPerson
.#137 - Amend
Person
equals function to have the flexibility to compare all its attributes or only compare basic contact information. #137 - Remove
StatusBarFooter
#94- We decided that it was not necessary for our application.
- Refactor directory from seedu.address to donnafin #83
- Add css to horizontal tabs (when it existed) #97
- Remove traces of AB3 + change person -> client #41, #94, #328, #293, #328
- this happens consistently throughout my contributions that are hard to record at times
- Remove Edit command and tags #56, #246
- We no longer support tagging as it does not fit our use case
- AB3 edit command is not relevant to how our edits will be conducted
- Update Project README to match DonnaFin #30
- Map escape key to home window (since removed) #80
- Add function to trigger edit for specific contact fields #82
- Add fxml files for home and client window switching #62
- Improve code quality #328
- added loggers as well
- Amend
- Testings:
- Documentation:
- User Guide #163, #187, #240, #312, #335, #342 :
- Sectioned our features into global, client window, home window and database
- Wrote the guide for these features:
add
,delete
,view
,tab
,edit
,append
,remove
,home
and editing notes - Add tips and notes to help the users understand better
- Wrote the Command Summary and added links to each command for better user experience
- Developer Guide #43, #28, #326, #349:
- Transferred our initial user stories to our repo
- Added target user and value proposition
- update UML description for Ui and Logic #171
- Added new ClientPanel and explained our
ParserStrategy
andParserContext
implementation
- Added new ClientPanel and explained our
- Explain how storage for
Asset
,Policy
,Liability
work usingJsonAdaptedLiability
,JsonAdaptedPolicy
andJsonAdaptedAsset
- nested JSON objects are stored and implemented differently
- Add use cases for
Asset
,Policy
,Liability
features
- User Guide #163, #187, #240, #312, #335, #342 :
- Community: