Project: NUS Event Mailer Pro

NUS Event Mailer Pro (NUS EMP) is a desktop application used to manage events and contacts for NUS event organizers. The user interacts with it using a CLI, and it has a GUI created with JavaFX. It is written in Java, and has about 10 kLoC.

Given below are my contributions to the project.

  • Code contributed: RepoSense link

  • New Features:

    • Added new contact show feature, which shows all the events that the contact is participating in. (#126)
    • Added new event show feature, which shows all the contacts that are participating in the event. (#116)
    • Added prefix synonyms, which allows for prefix shorthands, e.g. --email → -e (#152, #214)
  • Enhancements to existing features:

    • Added new CommandType enum and updated main parser to differentiate between contact and event commands (#45)
    • Added the ability for contact/event fields to be optional (#62)
    • Renamed old AB3 class names to match NUS EMP (#82)
    • Added optional address field to events (#90)
    • Added event display inside contacts, and contact display inside events (#112)
    • Greatly improved the UI/UX of the contact and event screens (#161, #219, #310)
    • Added headings to the contact and event screens that match the state of what each screen is showing (#194, #312)
    • Fixed multiple bugs related to contact-event linking, by improving on the ParticipantMap data structure and adding an extra field to Contact and Event to update the UI properly (#191)
    • Improved user messages across most commands (#62, #203)
    • Wrote tests for every added feature and non-GUI enhancement
  • Documentation:

    • User Guide:
      • Added documentation for the features contact show and event show (#73)
      • Updated project description (#73, #232)
    • Developer Guide:
      • Improved on use cases and added NFRs (#39)
      • Updated the Model section and the section on the data model (#102, #227)
  • Project management:

    • Managed releases v1.3 - v1.6 (4 releases) on GitHub
      • Created release notes and uploaded generated jar files on time
    • Coordinated and closed each iteration milestone on time
    • Allocated tasks and features for each team member in iteration 1.4
    • Revised GitHub Actions workflow for MarkBind (#2, #227)
  • Community:

  • Tools:

    • Utilized GitHub CLI (gh) extensively for repository management and PR operations
    • Used GitHub Copilot for code-autocompletion, test generation, and code reviews