Skip to content

Latest commit

 

History

History
85 lines (67 loc) · 5.63 KB

czkay.adoc

File metadata and controls

85 lines (67 loc) · 5.63 KB

Chong Zi Kang - Project Portfolio

PROJECT: MooLah


Overview

This Project Portfolio documents my contributions to MooLah, a project made in NUS' Software Engineering module.

My team, consisting of 5 Computer Science students, was tasked to enhance an existing project, Address Book Level 3. Over the course of the semester, we morphed the original Address Book code into MooLah, an expense tracker that accepts input through the Command Line Interface (CLI). We found many existing expense trackers on the market to be relatively troublesome and hence sought to create a hassle-free expense tracker specifically tailored to NUS students. MooLah has a clean and efficient Graphic User Interface (GUI) made from JavaFX, and supports many quality-of-life features such as autocompletion of input. At its core, MooLah allows users to easily manage their spending with the use of budgets, expenses, events and robust statistics calculations.

Summary of contributions

The following is a summary of my contributions to MooLah. I was mainly responsible for the development of events and time-based features.

  • Major enhancement: I added the ability to track events in MooLah.

    • What it does: This feature allows the user to add, edit and delete events, which are the user’s important future activities that they have to spend money on (e.g. a friend’s birthday). MooLah reminds the user of upcoming events, and on the day of the event, will automate the adding of the corresponding expense from the event.

    • Justification: Many of our users lead busy lives and may sometimes forget to input expenses from important events that they attend, or may forget these events altogether. My feature solves this issue by letting users input a future event; MooLah then automates the reminding and the eventual adding of the expense from the event. Such a 'fire-and-forget' implementation greatly enhances convenience for the user.

    • Highlights: Automating the reminding and adding of expenses from events requires MooLah to keep constant track of system time. I also had to work closely with my teammate who implemented the budgeting feature as every event, and its corresponding expense, had to fall under the correct budget.

  • Minor enhancements: I implemented several time-based features in MooLah.

    • Fully implemented the Timestamp field into MooLah’s expenses and events, hence allowing users to keep track of when exactly their expenses and events happen.

    • Implemented constant system-time checking in MooLah via the use of a timer that runs on a parallel thread. This allows MooLah to accurately refresh budgets and enables precise timekeeping of expenses, events and budgets. (#132)

    • Integrated, with some modifications, the third-party Natty library into MooLah. This allows MooLah to support natural language date-time parsing. (#132)

    • Improved the parsing and validity-checking of the Price field. (#216)

  • Code contributed

  • Other contributions:

    • Project management:

      • Oversaw code quality across the project. (i.e. made sure code adhered to good software engineering principles) (Example).

      • Managed and assigned issues that arose from the bug-testing session of the Mock Practical Examination.

    • Testing:

      • Refactored existing tests to include the newly added Timestamp field of expenses.

    • Documentation:

    • Community:

      • PRs reviewed (with non-trivial review comments): #84, #100.

      • Gave suggestions to other teams in the module (Example).

Contributions to the User Guide

Given below are my major contributions to MooLah’s User Guide. They showcase my ability to write documentation targeting end-users.

Contributions to the Developer Guide

Given below are my major contributions to MooLah’s Developer Guide. They showcase my ability to write technical documentation and the technical depth of my contributions to the project.