Project: insurance Sure Can Arrange Meeting (iScam)

iScam is a desktop location book application used for teaching Software Engineering principles. The user interacts with it using a CLI, and it has a GUI created with JavaFX. It is written in Java, and has about 18 kLoC.

Given below are my contributions to the project.

  • New Feature: Added the ability to store meeting data into a JSON file.
    • What it does: allows the user to store meeting objects as a JSON file into a local storage.
    • Justification: This feature improves the product significantly because a user can store and retrieve past added meetings.
    • Highlights: This enhancement affects all instances of meeting commands since past saved meetings can be easily retrieved, updated and amended. It makes iScam more feasible to use since meetings are saved. It even comes with test cases to ensure extend code coverage.
  • Code contributed: RepoSense link

  • Project management:
    • Managed releases v1.1 - v1.4 (4 releases) on GitHub
  • Enhancements to existing features:
    • Updated the AboutUs page for our team. (Pull requests #7, #14, #16, #204)
    • Updated current DG as per issues flagged up in the forum. (Pull request #200)
    • Limited type of inputs acceptable for Name, Phone, Location, Email, Tags and InsurancePlan inputs to prevent iScam from crashing due to data overloading. (Pull request #200)
    • Customised iScam to include Clients instead of Persons to be more relevant to the insurance agent user. (Pull request #21)
    • Packaged all client and meeting files to respective packages for ease of access of future editors. (Pull requests #61, #174)
    • Wrote test cases for meeting book storage to increase coverage from 51.30% to 52.81% and 55.87% to 67.12%. (Pull requests #85, #243)
    • Changed icon of app to be something more relevant (Pull request #240)
  • Documentation:
    • User Guide:
      • Added documentation for ClientBook and MeetingBook retrieval #85
      • Added limitations implemented for inputs of client and meeting commands #243
    • Developer Guide:
      • Added implementation details of the storage component #85
      • Added storage component to LogicClassDiagram #209
    • About Us:
      • Added pictures for team members (#7, #14, #204)
      • Added information of team members (#7, #14, #16)
  • Community:
    • PRs reviewed (with non-trivial review comments): #60, #69
    • Reported bugs and suggestions for other teams in the class (examples: 1, 2, 3)
  • Tools:
    • Integrated a third party library (plantUML) to the project (#200)
  • Others:
    • Helped to raise and create issues spotted when testing unrelated component (#199)
    • Set achievable deadlines to help the team progress milestones on time
  • Diagram extracts from DG
    • Storage’s Class Diagram Storage Class Diagram