By: Team W13-2
Since: Sept 2018
Licence: MIT
- 1. Introduction
- 2. Quick Start
- 3. Features
- 3.1. Auto-completion of commands:
TAB
key - 3.2. Viewing help :
help
, aliash
- 3.3. Toggling UI tabs :
toggle
, aliast
- 3.4. Adding a person:
add
, aliasa
- 3.5. Listing all persons :
list
, aliasls
- 3.6. Editing a person :
edit
, aliase
- 3.7. Locating persons by name:
find
, aliasf
- 3.8. Deleting a person :
delete
, aliasd
- 3.9. Selecting a person :
select
, aliass
- 3.10. Listing entered commands :
history
, aliashs
- 3.11. Undoing previous command :
undo
, aliasu
- 3.12. Redoing the previously undone command :
redo
, aliasr
- 3.13. Show Faculty Location :
showLocation
- 3.14. Suggested Meeting Location :
generateLocation
- 3.15. Adding an event:
addEvent
, aliasae
- 3.16. Viewing an event’s contacts:
seeEventContacts
, aliassec
- 3.17. Adding an event tag:
addEventTag
, aliasaet
- 3.18. Deleting an event:
deleteEvent
, aliasde
- 3.19. Edit event address:
editEventAddress
, aliaseea
- 3.20. List all events:
listEvent
, aliaslse
- 3.21. Find events by event tags:
findEvent
, aliasfe
- 3.22. Import Contacts:
importContacts
, aliasic
- 3.23. Notifications:
notification
, aliasn
- 3.24. Favourite:
favourite
, aliasfv
- 3.25. Clearing all entries :
clear
, aliascls
- 3.26. Exiting the program :
exit
, aliasq
- 3.27. Saving the data
- 3.1. Auto-completion of commands:
- 4. Features coming up in V2.0
- 4.1. Add group event:
addGroupEvent
- 4.2. List group events:
listGroupEvent
- 4.3. Rename groups :
renameGroup
- 4.4. Merge groups :
mergeGroup
- 4.5. Split groups :
splitGroup
- 4.6. View team members who belong to a group :
viewGroup
- 4.7. View other contacts in the same group as a specific contact :
commonGroupContacts
- 4.8. Remove a contact from a group :
remove
- 4.9. Delete an entire group :
deleteGroup
- 4.10. Import user’s timetable :
importCalendar
- 4.11. Share multiple contacts with my peers :
share
- 4.12. Archive groups :
archive
- 4.13. Unarchive old groups :
unarchive
- 4.14. Generate timing for a group’s event/meeting :
generateTiming
- 4.15. Generate convenient location for an event/meeting :
generateConvenientLocation
- 4.1. Add group event:
- 5. FAQ
- 6. Command Summary
1. Introduction
EventsPlus+ is for the busy university student who prefer to use a desktop app for managing contacts and planning ad-hoc events. EventsPlus+ aims to simplify some of the more time-consuming administrative tasks such as coordinating location and date of ad-hoc events using a Command Line Interface (CLI).
2. Quick Start
-
Ensure you have Java version
9
or later installed in your Computer. -
Download the latest
eventsPlus+.jar
here. -
Copy the file to the folder you want to use as the home folder for your Address Book.
-
Double-click the file to start the app. The GUI should appear in a few seconds.
-
Type the command in the command box and press Enter to execute it.
e.g. typinghelp
and pressing Enter will open the help window. -
Some example commands you can try:
-
list
: lists all contacts -
add
n/John Doe p/98765432 e/johnd@example.com a/John street, block 123, #01-01 f/SDE
: adds a contact namedJohn Doe
to the Address Book. -
delete
3
: deletes the 3rd contact shown in the current list -
exit
: exits the app
-
-
Refer to Section 3, “Features” for details of each command.
3. Features
Command Format
-
Words in
UPPER_CASE
are the parameters to be supplied by the user e.g. inadd n/NAME
,NAME
is a parameter which can be used asadd n/John Doe
. -
Command words are case-sensitive e.g.
addEvent
is a valid command word, butaddevent
is not. -
Items in square brackets are optional e.g
n/NAME [t/TAG]
can be used asn/John Doe t/friend
or asn/John Doe
. -
Items with
…
after them can be used multiple times including zero times e.g.[t/TAG]…
can be used ast/friend
,t/friend t/family
etc.p/PHONE_NUMBER…
can be used asp/98765432
,p/98765432 p/88888888
etc. (i.e. 1 or many times) -
Parameters can be in any order e.g. if the command specifies
n/NAME p/PHONE_NUMBER
,p/PHONE_NUMBER n/NAME
is also acceptable. -
Items in curly brackets are considered to be an entity. The rules outside the curly brackets apply to the entity as a whole. e.g.
{group/GROUP_NAME i/1 INDEX}…
can be used asgroup/CS2103_Group1 i/1 group/CS2013_Group2 i/3
3.1. Auto-completion of commands: TAB
key
To auto-complete any command words, press the TAB
key.
For example, if ad
is typed, add
will be displayed in the command box upon pressing the TAB
key.
Note that only command words will be auto-completed, and the auto-completion will only be successful if there are any valid command words (including command aliases) containing the current input as a prefix. The auto-completed is the nearest word containing the current input as a prefix.
3.2. Viewing help : help
, alias h
Format: help
3.3. Toggling UI tabs : toggle
, alias t
Format: toggle
Undo/Redo commands will not undo/redo the toggle command. |
3.4. Adding a person: add
, alias a
Adds a person to the address book
Format: add n/NAME p/PHONE_NUMBER… e/EMAIL a/ADDRESS [t/TAG] f/FACULTY
|
Examples:
-
add n/John Doe p/98765432 p/88888888 e/johnd@example.com a/John street, block 123, #01-01 f/-
-
a n/Betsy Crowe t/friend e/betsycrowe@example.com a/Newgate Prison p/1234567 t/criminal f/SOC
3.5. Listing all persons : list
, alias ls
Shows a list of all persons in the address book.
Format: list
or ls
3.6. Editing a person : edit
, alias e
Edits an existing person in the address book.
Format: edit INDEX [n/NAME] [p/PHONE] [e/EMAIL] [a/ADDRESS] [t/TAG]…
Examples:
-
edit 1 p/91234567 e/johndoe@example.com
ore 1 p/91234567 e/johndoe@example.com
Edits the phone number and email address of the 1st person to be91234567
andjohndoe@example.com
respectively. -
edit 2 n/Betsy Crower t/
ore 2 n/Betsy Crower t/
Edits the name of the 2nd person to beBetsy Crower
and clears all existing tags.
3.7. Locating persons by name: find
, alias f
Finds persons whose names contain any of the given keywords.
Format: find KEYWORD [MORE_KEYWORDS]
Examples:
-
find John
orf John
Returnsjohn
andJohn Doe
-
find Betsy Tim John
orf Betsy Tim John
Returns any person having namesBetsy
,Tim
, orJohn
3.8. Deleting a person : delete
, alias d
Deletes the specified person from the address book.
Format: delete INDEX
Examples:
-
list
delete 2
ord 2
Deletes the 2nd person in the address book. -
find Betsy
delete 1
ord 1
Deletes the 1st person in the results of thefind
command.
3.9. Selecting a person : select
, alias s
Selects the person identified by the index number used in the displayed person list.
Format: select INDEX
Examples:
-
list
select 2
ors 2
Selects the 2nd person in the address book. -
find Betsy
select 1
ors 1
Selects the 1st person in the results of thefind
command.
3.10. Listing entered commands : history
, alias hs
Lists all the commands that you have entered in reverse chronological order.
Format: history
or h
Pressing the ↑ and ↓ arrows will display the previous and next input respectively in the command box. |
3.11. Undoing previous command : undo
, alias u
Restores the address book to the state before the previous undoable command was executed.
Format: undo
Undoable commands: those commands that modify the address book’s content ( |
Examples:
-
delete 1
list
undo
oru
(reverses thedelete 1
command) -
select 1
list
undo
Theundo
command fails as there are no undoable commands executed previously. -
delete 1
clear
undo
oru
(reverses theclear
command)
undo
oru
(reverses thedelete 1
command)
3.12. Redoing the previously undone command : redo
, alias r
Reverses the most recent undo
command.
Format: redo
Examples:
-
delete 1
undo
oru
(reverses thedelete 1
command)
redo
orr
(reapplies thedelete 1
command) -
delete 1
redo
orr
Theredo
command fails as there are noundo
commands executed previously. -
delete 1
clear
undo
oru
(reverses theclear
command)
undo
oru
(reverses thedelete 1
command)
redo
orr
(reapplies thedelete 1
command)
redo
orr
(reapplies theclear
command)
3.13. Show Faculty Location : showLocation
Shows the location of the person’s (identified by index number) faculty in the the location display panel.
Format: showLocation INDEX
Examples:
-
showLocation 5
3.14. Suggested Meeting Location : generateLocation
Creates a randomly suggested location in NUS to meet up for an event (uniquely identified by date and event’s index number).
Format: generateLocation d/EVENT_DATE i/EVENT_INDEX
Examples:
-
generateLocation d/2018-04-01 i/1
3.15. Adding an event: addEvent
, alias ae
Adds an event in the system with information specified by the user.
Format: addEvent n/EVENT_NAME dsc/EVENT_DESCRIPTION d/DATE(YYYY-MM-DD) st/START_TIME(HHMM) et/END_TIME(HHMM) a/EVENT_ADDRESS [i/CONTACT_INDEX]… [t/EVENT_TAG]…
The user can input values for the following fields when adding an event:
-
Event name
-
Event description
-
Event date
-
Event start time
-
Event end time
-
Event address
-
Contact Index / Indices
-
Event Type(s)
Note that each of these fields, except for address, contact indices and event type, are mandatory, and has to be supplied by the user before the event can be successfully added into the system. In addition, note the following constraints for the input values.
|
Examples:
-
Without contacts and event tags
addEvent n/Doctor Appointment dsc/Consultation d/2018-10-14 st/1030 et/1200 a/123, Clementi Rd, 1234665
-
With a single contact
list
addEvent n/Doctor Appointment dsc/Consultation d/2018-10-14 st/1030 et/1200 a/123, Clementi Rd, 1234665 i/1
-
With multiple contacts
Find Betsy Tim John
addEvent n/Meeting dsc/Project meeting d/2018-10-14 st/1030 et/1200 a/123, Clementi Rd, 1234665 i/1 i/2 i/3
-
With contact indices and event tags
addEventTag t/Meeting t/Appointment
addEvent n/Doctor Appointment dsc/Consultation d/2018-10-14 st/1030 et/1200 a/123, Clementi Rd, 1234665 i/1 t/Meeting t/Appointment
In EventsPlus+, the events can be found in the Events tab,
and are displayed according to their date, in decreasing date order.
Within each date, the events are ordered from earliest to latest.
After the user executes the command addEvent n/Doctor Appointment dsc/Consultation d/2018-10-14 st/1030 et/1200 a/123, Clementi Rd, 1234665 i/1 t/Meeting t/Appointment
,
a message indicating successful execution of the command will be displayed.
The user will be automatically directed to the Events tab,
where the newly added event (as highlighted in green below) will be shown in the tab.
If no address is supplied, "TBD" will be set in place of the address field. For instance, upon execution of the command
addEvent n/Doctor Appointment dsc/Consultation d/2018-10-14 st/1030 et/1200
, the newly added event is as highlighted below.
The address field is set to "TBD".
3.16. Viewing an event’s contacts: seeEventContacts
, alias sec
Shows an event’s contacts in the persons list. The information displayed in aligned with that in the UI when hovering over the event contact.
Format: seeEventContacts d/DATE(YYYY-MM-DD) i/EVENT_INDEX
|
Example:
-
seeEventContacts d/2018-04-01 i/1
To view all persons again after this command, use thelist
command.
-
edit 1 p/12345678
seeEventContacts d/2018-04-01 i/1
The phone number of the person is edited, but is still the same person as the originally-added event contact. Hence, the system will show the edited event contact. To view all persons again after this command, use thelist
command.
-
edit 1 n/Alex Lim
seeEventContacts d/2018-04-01 i/1
The edited is a different person from the originally-added event contact. There is no existing person in the system who is the same as the originally-added event contact. No persons are shown. To view all persons again after this command, use thelist
command.
-
delete 1
seeEventContacts d/2018-04-01 i/1
AsAlex
has been deleted, no persons are shown. To view all persons again after this command, use thelist
command.
3.17. Adding an event tag: addEventTag
, alias aet
Adds an event tag specified by the user into the system.
Format: addEventTag t/EVENT_TAG [t/EVENT_TAG…]
|
Example:
-
addEventTag t/Lecture t/Dinner
Adds the event tags into the system, if they do not already exist in the system. The newly added tags are highlighted in green below.
3.18. Deleting an event: deleteEvent
, alias de
Adds an event in the system with information specified by the user.
Format: deleteEvent d/DATE(YYYY-MM-DD) i/EVENT_INDEX
Each of the fields are mandatory, and has to be supplied by the user before the event can be successfully deleted from the system.
|
Example:
-
deleteEvent d/2018-04-01 i/1
Before Deletion
After Deletion
3.19. Edit event address: editEventAddress
, alias eea
Edits the address of the specified event in the address book.
Format: editEventAddress d/DATE(YYYY-MM-DD) i/EVENT_INDEX a/EVENT_ADDRESS
|
Example:
-
editEventAddress d/2018-04-01 i/1 a/NUS SoC
Before command execution
After command execution
3.20. List all events: listEvent
, alias lse
Shows a list of all events in the address book.
Format: listEvent
3.21. Find events by event tags: findEvent
, alias fe
Shows a list of all events in the address book which are tagged as the specified tags in the command.
Event tags are case-insensitive, as described in the addEventTag section.
i.e. MEETING
and meeting
are regarded as the same tag.
Format: findEvent EVENT_TAG [EVENT_TAG…]
Examples:
Before findEvent
Execution
After findEvent
Execution
-
findEvent LECTURE
Shows all the events tagged aslecture
-
findEvent Class lecture
Shows all the events tagged aslecture
orclass
3.22. Import Contacts: importContacts
, alias ic
Import contacts from a specified csv file.
CSV file has to be exported from google contacts 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
3.23. Notifications: notification
, alias n
Allow users to enable/disable notifications which appears upon application statrup. Notification is enabled by default.
Format: notification enable/disable
Examples:
-
notification disable
3.24. Favourite: favourite
, alias fv
Allow users to favourite a upcoming events based on most recently displayed events list. Favourite is null by default.
Format: favourite d/DATE i/EVENT_INDEX
Examples:
-
favourite d/2018-04-01 i/1
3.25. Clearing all entries : clear
, alias cls
Clears all entries from the address book.
Format: clear
or cls
3.26. Exiting the program : exit
, alias q
Exits the program.
Format: exit
or q
3.27. Saving the data
Address book data are saved in the hard disk automatically after any command that changes the data.
There is no need to save manually.
4. Features coming up in V2.0
4.1. Add group event: addGroupEvent
Adds an event in the system with the specified information, for the specified group(s). At least one group has to be included in the user input. A notification will be sent to the user and contacts in the group 24 hours before the event. (refer to notification feature)
Format: addGroupEvent n/EVENT_NAME dsc/DESCRIPTION d/DATE(DD-MM-YY) t/TIME(HHMM) a/ADDRESS group/GROUP_NAME…
Examples:
-
addGroupEvent n/Project Meeting dsc/First Meeting d/12-09-18 t/1200 a/123, Clementi Rd, 1234665 group/CS2103_Group
-
addGroupEvent n/Project Meeting dsc/First Meeting d/12-09-18 t/1200 a/123, Clementi Rd, 1234665 group/CS2103_Group group/CS2103_otherGroup
4.2. List group events: listGroupEvent
Lists all group events in the system.
Format: listGroupEvent
Examples:
-
listGroupEvent
4.3. Rename groups : renameGroup
Renames a specified group, if it exists.
If the group does not exist, an error message is displayed accordingly to indicate that this command cannot be parsed. |
Format: renameGroup group/ORIGINAL_NAME n/NEW_GROUP_NAME
Examples:
-
renameGroup group/CS2103Group n/HelloWorld
4.4. Merge groups : mergeGroup
Merges a list of groups together. Any number of groups can be merged together.
When groups are merged, a new group will be created containing all the contacts in the listed groups.
At least one group must be listed. If only one group is listed, no changes will take place.
|
Format: mergeGroup n/NEW_GROUP_NAME group/GROUP_NAME…
Examples:
-
mergeGroup n/CS2103_MERGED group/CS2103_Group1 group/CS2103_Group2 group/CS2103_Group3
A new group calledCS2103_MERGED
is created containing all contacts fromCS2103_Group1
,CS2103_Group2
andCS2103_Group3
.
4.5. Split groups : splitGroup
Splits a group through a series of commands.
Firstly, splitGroup
command will inform the system that the user wishes to split a group.
The system will then display all contacts in this group and a message to inicate that it is awaiting user input.
To create new group, input the new group names and the indexes of the contacts. Each of the newly created groups must contain at least one contact.
The original group will not be deleted as a result of any of the above commands. However, the split groups will contain an indicator showing that it was created from splitting the original group. |
Format: splitGroup group/GROUP_NAME {n/NEW_GROUP_NAME i/INDEX…}…
Examples:
-
splitGroup group/CS2103_MERGE
n/CS2103_Group1 i/1 i/2 i/3 i/4 i/5
4.6. View team members who belong to a group : viewGroup
Shows the information of each team members in a particular group
Format: viewGroup/GROUP_NAME
Examples:
-
viewGroup/CS2103Group
4.7. View other contacts in the same group as a specific contact : commonGroupContacts
Shows other contacts who may be in the same group with the contact that the user is currently viewing.
Format: commonGroupContacts n/CONTACT_NAME
Examples:
-
commonGroupContacts n/James Bond
4.8. Remove a contact from a group : remove
Removes a specific contact from a group
Format: remove n/CONTACT_NAME group/GROUP_NAME
Examples:
-
remove n/James Bond group/CS2103Group
4.9. Delete an entire group : deleteGroup
Delete inactive groups or groups who you are not going to work with in the future without affecting contact list.
Format: deleteGroup group/GROUP_NAME
Examples:
-
deleteGroup group/CS2103Group
4.10. Import user’s timetable : importCalendar
Allows the user to import timetable from an external source to load into the app.
This allows app to prevent any possible clash with events in groups.
Format: importCalendar SOURCE
Examples:
-
importCalendar Google
App will redirect to the source (For example, Google) to handle majority of the importing process - e.g. logging in, calendar to import, etc.)
4.11. Share multiple contacts with my peers : share
Send selected contacts in EventsPlus+ to one other contact in EventsPlus+. At least one contact to be sent must be indicated, and only one recipient can be specified.
Format: share i/INDEX… t/INDEX
Examples:
-
list
share i/2 i/3 i/4 t/1
Sends the 2nd, 3rd and 4th person to 1st person in the (same) list.
4.12. Archive groups : archive
Archive groups to unclutter the list of visible group without losing the group’s information
Format: archive group/GROUP_NAME
Examples:
-
archive group/CS2103Group
4.13. Unarchive old groups : unarchive
Unarchive group to retrieve previously-archived group information and make group visible again.
Format: unarchive group/GROUP_NAME
Examples:
-
unarchive group/CS2103Group
4.14. Generate timing for a group’s event/meeting : generateTiming
Generates a possible meeting timing for a group’s event/meeting based on all member’s schedule and availability.
Format: generateTiming group/GROUP_NAME
Examples:
-
generateTiming group/CS2103Group
|
4.15. Generate convenient location for an event/meeting : generateConvenientLocation
This command builds on the existing generateLocation command, however, instead of generating a random location it will generate a location based on the people attending the event (i.e. members in the group or people tagged to the event).
Thus this can be used within the context of a group’s events or the user’s own personal events.
Format: generateConvenientLocation group/GROUP_NAME d/EVENT_DATE i/EVENT_INDEX
(for group events) or
generateConvenientLocation d/EVENT_DATE i/EVENT_INDEX
(for user’s personal events)
Examples:
-
generateConvenientLocation group/CS2103Group d/2018-09-30 i/1
-
generateConvenientLocation d/2018-09-30 i/1
|
5. FAQ
Q: How do I transfer my data to another Computer?
A: Install the app in the other computer and overwrite the empty data file it creates with the file that contains the data of your previous Address Book folder.
6. Command Summary
Command | Format | Example |
---|---|---|
Add Person |
|
|
Clear Address Book |
|
|
Delete Person |
|
|
Edit Person |
|
|
Find Persons |
|
|
List Persons |
|
|
Select Person |
|
|
Show Faculty location visually |
|
|
Suggest Location |
|
|
Add Event |
|
|
View an Event’s Contacts |
|
|
Delete Event |
|
|
Edit Event Address |
|
|
Add Event Tag |
|
|
List Events |
|
|
Find Events by Event Tag(s) |
|
|
Import Contacts |
|
|
Disable and Enable Notification |
|
|
Favourite Event |
|
|
Help |
|
|
History |
|
|
Undo |
|
|
Redo |
|