PROJECT: EventsPlus+


Overview

EventsPlus+ is a Command Line Interface (CLI) desktop address book application catered for busy university students to manage their contacts, events, project meetings and ad-hoc events efficiently. It aims to simplify some of the more time-consuming administrative tasks such as coordinating location and date of ad-hoc events. The user interacts with it using a CLI, and it has a GUI created with JavaFX. It is written in Java, and has more than 10 kLoC.

Summary of contributions

  • Code contributed: [RepoSense]

  • Major enhancement: added import contacts function

    • What it does: Allows the user to import contacts from external source (google contacts) into EventsPlus+.

    • Justification: Users should be able to easily import contacts from external source without having to go through the trouble of adding in contacts 1 by 1.

    • Highlights: Users will be notified with the number of successful imported contacts. Failure of importing should be the caused by bad formatting or missing mandatory fields.

  • Other contributions:

    • Project management:

      • Managed releases v1.3 on GitHub

    • Documentation:

      • Updated documentation for the enhancements as above: (Pull requests #101, #185, #187)

      • Updated User Guide with initial planned features (Pull requests #4)

      • Updated author name for reposense (Pull requests #123)

    • Community:

      • PRs reviewed (with non-trivial review comments): #5, #9, #130, #172

      • Reported bugs and suggestions for other teams in the class (examples: 1, 2, 3)

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.

Import Contacts: importContacts, alias ic

Import contacts from a specified csv file.
CSV file has to be exported from google contacts as Google CSV.

Adding an event
  • Ensure that First Name, Email, Phone Number, Address and Company (Faculty) is filled with valid input

  • Any missing field or invalid input will result in failure in importing contacts

  • Exported csv file should be named as google.csv

Format: importContacts file/ABSOLUTE_FILEPATH

Examples:

  • importContacts file/~/Downloads/google.csv
    Imports all contacts from root/Downloads/google.csv into application address book

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.

Import Contacts

Current Implementation

When FileReader is created, it will read the provided CSV file, breaking the first line into Arrays of Strings.
FileReader then take note of the index of mandatory fields:

  • Name

  • Email

  • Phone Number

  • Address

  • Faculty

ModelManager now implements importContacts and it calls on VersionedAddressBook.
VersionAddressBook is being called so that undo redo can work on import contacts command.
VersionAddressBook extends AddressBook and it implements importContacts.
importContacts will get the list of contacts from FileReader and the index all all mandatory fields.
For each of the contact in contact list, Person is created using index saved for each mandatory fields.
Returned Person objects are then inserted into UniquePersonsList with validation.
The number of successful inserts will be displayed.

The following sequence diagram shows how the importContactsCommand operation works:

ImportContactsSequenceDiagram