Skip to content

Latest commit

 

History

History
93 lines (63 loc) · 6.09 KB

nanosync.adoc

File metadata and controls

93 lines (63 loc) · 6.09 KB

Benedict Pak - Project Portfolio for MoneyGoWhere

About the Project

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

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.

Table 1. Legend table
Icon Description

command

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.

Summary of contributions

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]

Other contributions

  • Project management

    • Created all major milestones on GitHub page

    • Assigned members to issues upon discovery of bugs (Examples: #163, #230)

    • Reviewed Pull Requests (Examples: #56, #68, #95, #203)

  • Enhancements to existing features:

    • Refactored and modified existing classes, including package name AddressBook to SpendingBook code base to match application needs: (Examples: #73, #75, #78)

  • Documentation:

    • Cleaned up the User Guide and Developer Guide (Examples: #43, #103, #106)

  • Community:

    • Offered suggestions for other teams in the class (Examples: #62, #64, #111)

  • Tools:

    • Integrated Netlify for the team repo to allow continuous deployment of documentation previews

    • Integrated a third party library (Natty) to the project (Examples: #55, #62, #69)

Contributions to the User Guide

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.

Contributions to the Developer 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.