Skip to content

Latest commit

 

History

History
113 lines (85 loc) · 5.75 KB

weigenie.adoc

File metadata and controls

113 lines (85 loc) · 5.75 KB

Wei Gen - Project Portfolio

Introduction

weigenie

[github]

Hi! My name is Wei Gen.

I am currently a second year student in NUS School of Computing, pursuing a Bachelor of Computing (Honours).

This project portfolio page aims to document the contributions I have made in the development of FinSec, a project that my team and I completed for the module CS2103T. This project has definitely been greatly beneficial to my own learning and self-development in becoming a more competent software engineer.

PROJECT: FinSec

Overview

FinSec is an application that was created with the end goal of aiding Financial Secretaries of any organisation in managing their financial data, mainly their contacts, claims, incomes and budget. It is a Command Line Interface (CLI) based tool to cater to computing professionals who are highly adept at typing but also provides a Graphical User Interface (GUI) interface for any users (like you!) to easily view interact with FinSec.

Role

My main role was to act as the Team Lead for the project, completing team tasks for the project and managing general tasks for the team members. As I was the only one who has been in the position of our target audience and could best understand their user requirements, so I was also the one to set the directions of the project.

I also developed the Claims feature (including logic, storage and model), as well as adding the association between Claims and Contacts. I also created the documentation and tests that came along with the features.

Summary of contributions

  • Major enhancement: added the Claim feature

    • What it does: To allow users to add Claim entries into the FinSec application and track their claim entries.

    • Justification: The Claim feature is a vital feature to the FinSec application since that the majority of organisations and clubs have claims to keep track of.

    • Implementation: The Person class in Address Book 3 (AB3) is remodelled to resemble a claim entry (with additional attributes of ID, Description, Amount, Date and Status).

    • Highlights: The implementation of this feature is fairly manageable since that it is an adaptation of the Person class. However, there is much more coupling compared to the Person class, thus it is more complex. There are also more stringent testing required, such as Date parsing.

  • Minor enhancement: added the Approve and Reject Claim features

    • What it does: To allow users to approve or reject pending claims.

    • Justification: Claims can have different statuses, and Budget will behave differently depending on their statuses.

    • Implementation: ApproveClaimCommand and RejectClaimCommand will check whether the claim chosen is a PendingClaim, and only if it is can its status be approved or rejected respectively.

  • Minor enhancement: added the association between Claims and Contacts

    • What it does: To ensure that adding a claim into the app’s list of claims will also add the claim into the associated contact’s list of claims as well.

    • Justification: Each claim added is associated to a contact. The user will be able to view all the claims associated to a contact when viewing them using the CheckCommand.

    • Implementation: During the addition of a claim, the app checks if there is a contact with the entered name. Only if there is an existing contact for the claim will the command be executed. It also adds the Claim ID to the contact’s list of claims.

    • Highlights: I have also added a table to the IndividualContactWindow for the user to view the details of every claim of each contact easily when they use check command on the contact.

  • Code contributed: [All commits][Project Code Dashboard]

  • Other contributions:

    • Project management:

      • Managed the release of version v1.2 on GitHub

      • Created GitHub organisation, team repository and managed access for the team.

      • Integrated various build services into the team repository.

    • Documentation

      • I made improvements to the Developer’s Guide and User Guides: #232, #195, #182

    • Community

      • I conducted reviews on other team’s PR to give suggestions and constructive comments: #4,

      • I also reported bugs and potential flaws in other teams' projects to help prepare them for the demo: #8, #5, #4

    • Enhancements to existing features:

      • Wrote additional tests for existing features to increase coverage (Pull requests #370, #356, #346)

    • Tools:

      • Integrated Travis, AppVeyor and Netlify into our project.

Contributions to the User Guide

Given below are sections I contributed to the User Guide. They showcase my ability to write documentation targeting end-users.

Contributions to the Developer Guide

Given below are sections I contributed to the Developer Guide. They showcase my ability to write technical documentation and the technical depth of my contributions to the project.