MoneyGoWhere is a personal finance application targeted to students at the National University of Singapore (NUS), designed by my team and I for our Software Engineering project. It was morphed from a basic command line Address Book. Some notable features include setting budget goals, viewing statistics, customised searching and sorting, setting reminders for bills, viewing exchange rates, changing the application currency and importing and exporting data from and to a Csv file.
My role was to complete find and sort features, and minor features such as natural language date parsing, exchange rate and changing the application currency. The sections that follow in this document will elaborate these features in detail. I have also made notable contributions to the User Guide and Developer Guide.
Listed in the table below are some notations that are used throughout the document.
Icon | Description |
---|---|
|
Command that can be executed, or a component, class or object in the architecture of the application |
[lightbulb o] |
Tips that might be helpful in navigating the application |
[info circle] |
Important information that should be noted |
Useful information for a deeper understanding of the command |
As shown in Table 1, “Legend table”, these icons associated to their following descriptions, such as commands, tips, important information and useful information, enable greater clarity in understanding the document. Note that useful information will have text enclosed in its box.
This section shows a summary of my contributions to the team project.
-
Major enhancement #1: Implemented customisable find feature
-
What it does: It allows users to type
find
to display a range of spending entries based on different attributes. -
Justification: It enables the users to specifically view what they need to know, rather than scrolling through a long general list of spending entries.
-
Highlights: This enhancement has good integration with existing commands. It also required in-depth understanding of the underlying codebase.
-
-
Major enhancement #2: Implemented user-defined sort feature
-
What it does: It allows users to type
sort
to re-order the displayed spending entries based on preferred fields. -
Justification: It enables users to customise the order of the information being presented of greater priority, for instance, showing their most expensive purchases first, followed by date of purchase, to allow them to be mindful of their spending.
-
Highlights: This enhancement had a challenging design approach. It also required some restructuring of the code base implementation and an in-depth analysis of design alternatives.
-
-
Other enhancements: Implemented exchange rate and currency features, and natural language date parsing (Natty).
-
Code contributed: [Collated code]
-
Project management
-
Enhancements to existing features:
-
Documentation:
-
Community:
-
Tools:
Listed below are sections I contributed to the User Guide, which includes the find and sort features and the flexible date formats section. It showcases my ability to write documentation targeting end-users. For brevity, detailed information for flexible date formats can be found in the User Guide.
Listed below are sections I contributed to the Developer Guide, which includes the features section for Find and Sort, and the Product Scope section. It showcases my ability to write technical documentation and display the technical depth of my contributions to the project.