Project: SPAM

SPAM is a desktop application that is made for fast-typing marketers to handle large quantities of marketing leads and contacts efficiently and precisely. It is a CLI application that has UNIX-like command line syntax, and sports an elegant and modern GUI created with JavaFX. The application is written in Java, and has about 15 kLoC.

Given below are my contributions to the project.

  • New Feature: Select and Unselect.

    • What it does: Selects/Unselects groups of contacts from the main list.
    • Justification: Marketers may choose to handle selected group of contacts, in which he/she can export and manipulate separately.
  • New Feature: Theme Selection.

    • What it does: Toggle between Light and Dark Theme in the application’s Settings.
    • Justification: Marketers may have personal preferences on the general appearance of the application, and that an appearance that suites personal appeals can improve one’s productivity while working with the application.
  • Code contributed: RepoSense link

  • Project management:

    • Creator and owner of the team organisation and tp fork repository.
    • Configured the permissions and teams in the tp repository.
    • Managed github page for the project’s documentation.
    • Upgraded gems and added webrick to run project’s documentation locally.
    • Added tipue-search function to github page to search the documentation.
  • Enhancements to existing features:

    • Advanced Find command to search contacts by any field. (Pull requests #72)
    • Embedded User Guide into Help window via JavaFX’s web viewer. (Pull requests #71)
  • Documentation:

    • User Guide:
      • Added Select/Unselect sections. #131
    • Developer Guide:
      • Added implementation details of the advanced find feature. #96
  • Community:

    • PRs reviewed (with non-trivial review comments): #56, #62, #65, #80, #112, #116, #229
    • Contributed to forum discussions (examples: 1, 2, 3)
    • Reported bugs and suggestions for other teams in the class (examples: 1, 2)