By: Team W10-3 Since: Aug 2018 Licence: MIT

1. Introduction

EventOrganiser is an application for managing and organising events built for NUS students, also known as EventOrganiser. More importantly, EventOrganiser is optimized for those who prefer to work with a Command Line Interface (CLI) while still having the benefits of a Graphical User Interface (GUI). If you can type fast, EventOrganiser can help you to arrange events faster than traditional GUI apps. Interested? Jump to the Section 2, “Quick Start” to get started. Enjoy!

2. Quick Start

  1. Ensure you have Java version 9 or later installed in your Computer.

  2. Download the latest eventorganiser.jar here.

  3. Copy the file to the folder you want to use as the home folder for your EventOrganiser.

  4. Double-click the file to start the app. The GUI should appear in a few seconds.

    Ui
  5. Type the command in the command box and press Enter to execute it.
    e.g. typing help and pressing Enter will open the help window.

  6. Some example commands you can try:

    • listUser : lists all users in EventOrganiser

    • addUser` n/John Doe p/98765432 e/johnd@example.com pass/password a/John street, block 123, #01-01` : creates new user named John Doe to EventOrganiser.

    • addEvent` n/CS2103 Project Meeting a/SoC Canteen t/Urgent` : adds an event named CS2103 Project Meeting to be held at SoC Canteen.

    • exit : exits the app

3. How it works, in brief

  • To use the application, you must first create an account using the addUser command, and then login.

  • If you are not yet logged in, you can still view event details using selectEvent, and find events using findEvent and findEventByTime, and list events using listEvent.

  • Without logging in, you can also use the selectUser, findUser, listUser, listFriends, suggestFriendsByInterests commands.

  • When you are done, simply logout or exit the application.

3.1. Organise an event

  • If you are looking to organise an event, you may do so using the addEvent command.

  • After creating the event, you may wish to specify the date, time, or specify only after participants have joined.

  • You may create polls to get participants to vote on the details of the event using addPoll and addPollOption.

  • You can create a special TimePoll using addTimePoll after all participants have joined to decide on a suitable time. This generates poll options based on the NUSMOD schedules of the participants.

  • You may decide to deleteEvent after the event is over, or leave it in the organiser as a form of record.

3.2. Join an event

  • If you are looking to join an event as a participant, you may search for an event to join using the findEvent and findEventByTime commands.

  • You can also search for other users using the findUser and listFriends commands to see what events they have joined and join that event as well.

  • After joining the event using joinEvent, you can vote in the polls by displaying the poll details using displayPoll.

  • You can then add options using addOption, or simply vote for an option using vote.

3.3. Manage your account

  • After setting up your account, you can edit your own details using the editUser command, and delete your own account using deleteUser.

  • You can also search for other users using suggestFriendsByInterests and add them as your friend using addFriend, or remove them as a friend using deleteFriend.

  • You can populate your schedule using an NUSMODs link, and also manually add time slots into your schedule.

4. Special Considerations

4.1. XML file

  • We store all of the EventOrganiser data under data/addressbook.xml

  • This file is to be stored securely on the computer. No user is allowed to read or edit the xml file using a text editor.

4.2. User Uniqueness

  • We define the uniqueness of a user by its tuple of NAME and PASSWORD. No two users can have the same NAME and PASSWORD pair. If two users have the same name, then they will have to use different passwords.

  • As user/password pair may allow for a brute-force password attack, we urge all users to choose a secure password that is not easily guessed or commonly used by others.

4.3. Event Uniqueness

  • We define the uniqueness of an event by the event name, location, tags and event organiser. No two events may be identical with respect to these four attributes.

4.4. Timetable

Timetable download guide

To be referenced by any commands that use tt/ prefix.
Format Command tt/ http://modsn.us/XXXX

  • Ensure that your computer is synced with an atomic clock.

  • Two possible error messages may be returned by the download, namely A - "Cannot retrieve NUSMODS module information" and B - "Invalid NUSMODS URL".

  • Note that the timetable download may take a while regardless if the link is valid or not.

  • Only the current semester timetable will be downloaded. Other semesters timetable will not be downloaded.

  • In the case of slow internet speeds or no internet, the download will return with either A or B. Please try again with a better internet connection as we are not able to control such factors.

  • If the link given is not a http link such as fakelink, hscp:// or any other random string, the download will return A.

  • If the link given is a modsn.com link but it does not link to a valid timetable, the download will return B.

  • If the link given is a modsn.com link with a valid timetable but it is an empty timetable, the download will return properly with the empty timetable.

Warning: Timetable download will overwrite any existing schedule in the user.

5. Features

Command Format

  • If there than one prefix of the same kind with valid keywords, only the last prefix with valid keywords will be parsed.

  • Words in UPPER_CASE are the parameters to be supplied by the user e.g. in add n/NAME, NAME is a parameter which can be used as add n/John Doe.

  • Items in square brackets are optional e.g n/NAME [t/TAG] can be used as n/John Doe t/friend or as n/John Doe.

  • Items with ​ after them can be used multiple times including zero times e.g. [t/TAG]…​ can be used as   (i.e. 0 times), t/friend, t/friend t/family etc.

  • 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.

  • Dates are all specified in dd-MM-yyyy format (e.g. 01-01-2019, and Times are all specified in 24-hr HH:mm format (e.g. 13:30 is 1pm).

5.1. View help : help

Shows all the commands in the application and how to use them.

5.2. User Commands

5.2.1. Add a user : addUser

Adds a new unique user to EventOrganiser.
Format: addUser n/NAME p/PHONE_NUMBER e/EMAIL pass/PASSWORD a/ADDRESS [i/INTEREST]…​ [tt/TIMETABLE] [t/TAG]…​

  • INTEREST refers to the things that the user is interested in, such as hobbies.

  • TAG refers to a group that the user is affiliated with, such as faculty name or class number.

  • A user can have any number of tags and interests (including 0).

  • Interests and tags must be alphanumeric.

  • Each interest and tag can only be one word long. For example, 'i/play tennis' will not be accepted and should be written as 2 separate interests ('i/play' and 'i/tennis').

  • Section 4.4, “Timetable” download requires a valid nusmods link.

  • Section 4.2, “User Uniqueness” property must be satisified.

Examples:

  • addUser n/John Doe p/98765432 e/johnd@example.com pass/password123 a/John street, block 123, #01-01

  • addUser n/Betsy Crowe p/92346611 e/betsycrowe@example.com pass/123 a/Yui Road, block 30, #010-123 i/study t/SOC

5.2.2. Login a user : login

Logs in the user to EventOrganiser. A user must first log in to enable certain commands to be executed.

Format:

login n/USERNAME pass/PASSWORD

Examples:

login n/Alex Yeoh pass/password

5.2.3. Logout a user : logout

Logs out the user from EventOrganiser.

Format:

logout

5.2.4. List all users : listUser

Shows a list of all users in EventOrganiser.
Format: listUser

5.2.5. Find users by name, phone number, email, address, interest, tag : findUser

Finds users with matching name, phone number, email, address, interest, tag.
Format: findUser [n/NAME] [p/PHONE_NUMBER] [e/EMAIL] [a/ADDRESS] [i/INTEREST] [t/TAG]

  • Prefixes (e.g. "n/", "p/", "e/", "a/", "i/", "t/") of the attributes that they want to search for must be included.

  • Any combination of the above prefixes and keywords (let’s call them conditions for now) is valid. Eg. findUser e/EMAIL a/ADDRESS searches based on the email and address conditions.

  • The order of the conditions does not matter.

  • At least one prefix with valid keywords must be present

  • The search is based on CONDITION 1 AND CONDITION 2 AND …​ . For example, findUser n/John i/dance will search for users that satisfy the conditions of both name 'John' and interest 'dance'. Likewise for attributes that can be stated more than one (interest and tag), findUser i/tennis i/soccer will search for users that satisfy the conditions of both interest 'tennis' and interest 'soccer'.

  • The search for all attributes is not case sensitive. For example, findUser n/john will search for all users with the name 'John'.

  • Substrings or superstrings of any attribute will not be matched e.g. phone number 87438807 will not match 874388070, and likewise, name Ale will not match Alex.

Examples:

  • If there are multiple prefixes with accompanying valid keywords, only users that satisfy all the conditions will be shown.

  • findUser p/87438807 i/dance
    Returns any user with the phone number 87438807 AND interest dance

  • findUser n/john e/john@example.com t/teacher
    Returns any user with the name 87438807 AND email john@example.com AND tag teacher

  • If there are multiple of the same prefixes with accompanying valid keywords, only the last prefix and its keyword will be parsed.

  • findUser i/tennis i/soccer
    Returns any user with the interest soccer

  • findUser n/Alex n/Bernice n/Li
    Returns any user with name Li

  • Within each prefix, if the keyword has space, the keyword will be split by space. Users that satisfy at least one of the conditions will be shown.

  • findUser n/Alex Yu
    Returns any user with the name Alex OR Yu

  • findUser t/SOC FASS SDE
    Returns any user with the tag SOC OR FASS OR SDE

5.2.6. Delete a user : deleteUser

Deletes the currently logged in user from EventOrganiser.
Format: deleteUser

  • There must be a user that is currently logged in and this is the user that is intended to be deleted.

  • The events organised by this user will also be deleted.

  • After the user is deleted, no other user in the EventOrganiser will be currently logged-in.

  • After the user is deleted, if the deleted user is in the friend list of another user, the other user’s friend list will be updated to show that the deleted user is no longer in the list.

5.2.7. Select a user : selectUser

Selects the user identified by the index number used in the displayed user list.
Format: selectUser INDEX

  • Selects the user and loads the details of the user at the specified INDEX in the browser panel.

  • The index refers to the index number shown in the displayed user list.

  • The index must be a positive integer 1, 2, 3, …​

Examples:

  • listUser
    selectUser 2
    Selects the 2nd user in EventOrganiser.

  • findUser Betsy
    selectUser 1
    Selects the 1st user in the results of the find command.

5.2.8. Edit a user : editUser

Edits the currently logged-in user in EventOrganiser.
Format: editUser [n/NAME] [p/PHONE_NUMBER] [e/EMAIL] [a/ADDRESS] [pass/PASSWORD] [i/INTEREST]…​ [tt/TIMETABLE] [su/SCHEDULE_UPDATE] [t/tags]…​

  • At least one of the optional fields must be provided.

  • There must be a user that is currently logged in and this is the user that is intended to be edited.

  • Existing values will be updated to the input values.

  • When editing interests/tags, the existing interests/tags of the user will be removed (adding of tags is not cumulative). Hence if you want to add new interests/tags on top of the existing ones, you have to include the existing ones in the edit command.

  • Due to what is mentioned above, you can remove all the user’s interests/tags by typing i/ or t/ without specifying any interests/tags after it.

  • After the user is edited (eg change of name), if the edited user is in the friend list of another user, the other user’s friend list will be updated to show the updated version of the edited user.

  • Note schedule-related parameters are applied in this order: TIMETABLE, SCHEDULE_UPDATE

  • When using schedule update, the parameter should be "day 0000" where day is the day of the week and 0000 is the 24h representation of the time. Note that schedule only records in 30 min slots, thus the minute value will be rounded off to the nearest 30 minutes.

  • Section 4.4, “Timetable” download requires a valid nusmods link

  • Section 4.2, “User Uniqueness” property must be satisified.

Examples:

  • login n/Alex Yeoh pass/password
    editUser p/91234567 e/johndoe@example.com
    Edits the phone number and email address of the user Alex Yeoh to be 91234567 and johndoe@example.com respectively.

  • login n/Alex Yeoh pass/password
    editUser n/Betsy Crower t/
    Edits the name of the user Alex Yeoh`to be `Betsy Crower and clears all existing tags.

5.2.9. Add a friend : addFriend

Adds a person to the logged-in user’s friend list.
Format: addFriend INDEX

  • Login is required.

  • The index refers to the index number shown in the displayed user list.

  • Adds the person at the specified INDEX into the logged-in user’s friend list.

  • The index must be a positive integer 1, 2, 3, …​

  • The person specified at the INDEX cannot be the logged-in user himself/herself.

  • The person specified at the INDEX cannot be already in the logged-in user’s friend list.

Examples:

  • addFriend 2
    User specified at INDEX 2 is added to the logged-in user’s friend list.

5.2.10. Delete a friend : deleteFriend

Deletes a person from the logged-in user’s friend list.
Format: deleteFriend INDEX

  • Login is required.

  • The index refers to the index number shown in the displayed user list.

  • Deletes the person at the specified INDEX from the logged-in user’s friend list.

  • The index must be a positive integer 1, 2, 3, …​

  • The person specified at the INDEX cannot be the logged-in user himself/herself.

  • The person specified at the INDEX must be already in the logged-in user’s friend list.

Examples:

  • deleteFriend 2
    User specified at INDEX 2 is deleted from the logged-in user’s friend list.

5.2.11. Suggest friends based on similar interests : suggestFriendsByInterests

Suggest friends for an existing user in EventOrganiser that have at least one similar interest with the selected user.
Format: suggestFriendsByInterests INDEX

  • Displays all the suggested friends for the selected user at the specified INDEX.

  • The index refers to the index number shown in the displayed user list.

  • The index must be a positive integer 1, 2, 3, …​

  • Users who have at least one similar interest with the selected user will be displayed.

  • Note that similar interest means that the interest must be exactly alphanumeric equivalent, case sensitive. For example, 'study' will not be similar to 'Study'.

  • Users who are already in the friend list of the selected user will not be displayed.

Examples:

  • suggestFriendsByInterests 1
    Displays users in EventOrganiser that have at least one similar interest with the selected 1st user, and are not yet in the selected user’s friend list.

5.2.12. List all friends of a user : listFriends

List all the users that are in the friend list of the selected user.
Format: listFriends INDEX

  • List all the users that are in the friend list of the selected user at the specified INDEX.

  • The index refers to the index number shown in the displayed user list.

  • The index must be a positive integer 1, 2, 3, …​

Examples:

  • listFriends 1
    List all the users who are in the friend list of the 1st user in EventOrganiser.

5.2.13. Get free time between users : maxSchedule

Compares the schedule of multiple users and return a string of common free time slots. LIMIT is a XXXX-XXX specified timing to limit the time range displayed.
Format: maxSchedule INDEX INDEX…​ [sl/ LIMIT]…​

Example:

  • maxSchedule 1 2
    Compares the schedule of users of index 1 and 2 and return a string of all common free time.

  • maxSchedule 1 2 sl/ 0800-0900
    Compares the schedule of users of index 1 and 2 and return a string of common free time limited to 0800 to 0900 hours inclusive.

5.3. Create and confirm event commands

5.3.1. Create a new event : addEvent

Adds a new event to EventOrganiser.
Format: addEvent n/NAME a/LOCATION [t/TAG] …​

  • Login is required.

  • Adds a new event with the given name, location and any number of tags.

  • Tags must be a single word not separated by spaces.

  • The newly created event will display the logged in user as the event organiser.

  • The event organiser is immediately added as one of the participants.

  • The newly created event will automatically be selected for further editing.

Examples:

  • addEvent n/NUS Tennis Welcome Session a/SOC Canteen t/Public

  • addEvent n/CS1101S Meet-up a/UTown t/ByInvite

5.3.2. Delete an event : deleteEvent

Deletes the specified event from EventOrganiser.
Format: deleteEvent INDEX

  • Deletes the event at the specified INDEX.

  • The index refers to the index number shown in the displayed event list.

  • The index must be a positive integer 1, 2, 3, …​

  • Login is required, and the event can only be deleted by the event organiser.

  • While it is recommended that the event organiser closes the event after it is over, this is not required, in case the details of the event is needed to record-keeping purposes.

Examples:

  • listEvent
    deleteEvent 2
    Deletes the 2nd event in EventOrganiser.

5.3.3. Select an event : selectEvent

Selects an event to be edited.
Format: selectEvent INDEX

  • An event must be selected before setDate, setTime, addPoll, addTimePoll, addOption, and vote commands can be used.

  • The event is automatically selected after you have either created the event using addEvent or joined the event using joinEvent.

  • Selecting an event displays the event participants as well as the polls associated with the event.

  • Each poll in the event is given a unique poll index.

EventSelectedDisplay

5.3.4. Edit an event : editEvent

Edits an existing event in EventOrganiser. Only the event name, location and tags may be edited using this command.
Format: editEvent [n/NAME] [a/ADDRESS] [t/TAG] …​

At least one of the optional fields must be provided.

  • Edits the previously selected event i.e. a event must already be selected.

  • To edit an event, the currently logged in user must be the event organiser.

  • Existing values will be updated to the input values.

  • When editing tags, the existing tags of the event will be removed i.e adding of tags is not cumulative.

  • You can remove all the event’s tags by typing t/ without specifying any tags after it.

Examples:

  • editEvent n/CS2102 Discussion t/URGENT
    Edits name of the currently selected event to CS2102 Discussion and its tag to URGENT.

5.3.5. Set the event date : setDate

Sets the event date.
Format: setDate d/DAY-MONTH-YEAR

  • Day, month and year are specified as numbers.

  • Day and month must be written as two digits, e.g. January must be specified as 01 and not 1.

  • Year must be written out in full.

  • An event must first be selected, and you must be the event organiser to set the date.

  • You are allowed to set a date before the current day, should you wish to do so for record-keeping purposes.

Examples:

  • setDate d/08-09-2018

  • setDate d/11-12-2019

5.3.6. Set the event time : setTime

Sets the event time.
Format: setTime t1/HOUR:MINUTE t2/HOUR:MINUTE

  • Time is specified in 24 hour format, separated by a colon.

  • The time with prefix t1 represents the start time and prefix t2 represents the end time.

  • An event must first be selected, and you must be the event organiser to set the time.

Examples:

  • setTime t1/23:00 t2/23:30

  • setTime t1/13:30 t2/14:00

5.3.7. Create a new poll for an event : addPoll

Sets up a new poll for the pre-selected event with the specified name.
Format: addPoll n/POLL_NAME

  • Events must be selected first. Only the event organiser may create a new poll.

  • Multiple polls of the same name are allowed.

  • addPoll n/Date
    Upon adding a new poll, only the index and name of the poll is displayed, as shown. The event organiser can then proceed to add options to the poll. Selecting the event again using the selectEvent command displays the list of all polls in the event.

The following screenshot shows the outcome of this command.

AddPollDisplay

5.3.8. Create a new time-based poll for an event : addTimePoll

Sets up a new time-based poll for the event with the specified name after all users have joined.
Format: addTimePoll d1/DAY-MONTH-YEAR d2/DAY-MONTH-YEAR

  • This is a special type of poll which generates poll options based on the given date range and the schedules of the participants who have joined the event.

  • The time poll options represent 30 minute slots within the start and end date specified. All event particpants must be free at that slot for it to be in the time poll.

  • The date with prefix d1 represents the start of the given date range and d2 represents the end of the date range.

  • The start date must not be after the end date, and the given dates must not be more than 30 days apart.

  • The time poll does not automatically update if a new user joins the event, and should be created only after all users have joined.

Examples:

  • addTimePoll d1/08-09-2018 d2/10-09-2018

5.3.9. Add options to poll : addOption

Add new poll option in the specified poll.
Format: addOption i/POLL_INDEX o/POLL_OPTION

  • The poll index is the index of the poll in the selected event, which can be viewed by selecting the event using selectEvent.

  • An event must first be selected. As long as you have joined the event, you may add options to the poll.

  • An option can be any string.

  • Time polls do not support adding of options.

  • When options are added and no users have voted, the list of most popular options is empty.

Examples:

  • addOption i/1 o/Play chess
    Adds an option to the first poll of the selected event, where the option is Play chess. This option would be relevant in the context of a poll for an appropriate activity.

  • addOption i/3 o/12 November
    addOption i/3 o/13 November
    In the following example, the options 12 November and 13 November have been added to the poll. Since there are no voters yet, the most popular options list is empty.

AddOptionDisplay

5.3.10. Get poll result : displayPoll

Gets the result of a specified poll.
Format: displayPoll i/POLL_INDEX

  • The index is the index of the poll in the pre-selected event.

  • An event must be selected before hand.

  • This index can be viewed by selecting the event using the selectEvent command.

  • This command displays the most popular options as well as the names of the users who voted for each option.

Examples:

  • displayPoll i/1
    Displays the poll with index 1 associated with the already selected event, if it exists in the event.

5.4. Join event commands

5.4.1. Find event by the name of the event : findEvent

Finds events based on the attributes of the event: event name, event location, date, start time, event organiser, and event participants.
Format: findEvent [e/EVENT_NAME] [a/LOCATION] [d/DATE] [t1/START_TIME] [on/ORGANISER_NAME] [pn/PARTICIPANT_NAME]

  • All names of event, location, organiser and participant names must match exactly.

  • Only one of each attribute can be searched (last argument of each tag is used).

Examples:

  • findEvent e/CS2103 weekly meeting on/Alex Yeoh
    Finds all events with the name "CS2103 weekly meeting" and with the organiser whose name is "Alex Yeoh".

5.4.2. Find event by a time interval: findEventByTime

Finds events held on a specific date, and is held between a start and end time.
Format: findEvent d/DAY-MONTH-YEAR t1/HOUR:MINUTE t2/HOUR:MINUTE

  • The tag t1 specifies the start time and t2 is the end time.

  • Day, month and year are specified as numbers.

  • Day and month must be written as two digits, e.g. January must be specified as 01 and not 1.

  • Year must be written out in full as four digits.

  • Times are specfied in 24 hour, HOUR:MINUTE format.

Examples:

  • findEvent d/12-12-2018 t1/12:00 t2/18:00
    Finds all events held between 12pm and 6pm on 12 December 2018.

5.4.3. List all events : listEvent

Shows a list of all events in EventOrganiser.
Format: listEvent

5.4.4. Join event : joinEvent

Joins event identified by event index in the event list.
Format: joinEvent INDEX

  • Login is required. The current user is added to the participant list of the event.

Examples:

  • joinEvent 2

5.4.5. Vote for date : voteOption

Vote for a option specified in a specified poll, if there is one. Format: voteDate i/POLL_INDEX o/POLL_OPTION

  • The index is the index of the poll in the pre-selected event.

  • The option specified must be in the poll.

  • User must have joined the event in order to vote.

  • A user may vote for multiple options in the poll.

  • Adding a vote may or may not change the most popular options list.

Examples:

  • voteDate i/3 o/12 August

  • voteDate i/3 o/13 November
    In the following example, Alex Yeoh has voted for 13 November. Since it is the most popular option, 13 November appears in the most popular options list.

VoteOptionDisplay

5.5. [Coming in v2.0] Leave event : leaveEvent

Leaves event identified by event index in the event list.
Format: leaveEvent INDEX

  • Login is required. The current user is removed from the participant lists and polls.

  • Event organisers may not leave the event they organised.

Examples:

  • leaveEvent 2

5.6. Listing entered commands : history

Lists all the commands that you have entered in reverse chronological order.
Format: history

Pressing the and arrows will display the previous and next input respectively in the command box.

5.7. Exiting the program : exit

Exits the program.
Format: exit

5.8. Saving the data

EventOrganiser data is saved in the hard disk automatically after any command that changes the data.
There is no need to save manually.

6. 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 EventOrganiser folder.

7. Command Summary

7.1. User commands

  • Help : help

  • Add User addUser n/NAME p/PHONE_NUMBER e/EMAIL pass/PASSWORD a/ADDRESS [t/TAG] [i/INTEREST]…​
    e.g. addUser n/James Ho p/22224444 e/jamesho@example.com pass/password a/123, Clementi Rd, 1234665 t/friend t/colleague

  • Login login n/NAME pass/PASSWORD e.g. login n/Alex Yeoh pass/password

  • Logout logout

  • List User : listUser

  • Find User (by name, phone number, email, address, interest, or tag) : findUser [n/NAME] [p/PHONE_NUMBER] [e/EMAIL] [a/ADDRESS] [t/TAG] [i/INTEREST]
    e.g. findUser n/Alex Yeoh

  • Delete User : deleteUser
    e.g. deleteUser

  • Add a friend addFriend INDEX e.g. addFriend 2

  • Delete a friend deleteFriend INDEX e.g. deleteFriend 2

  • Suggest friends based on similar interests : suggestFriendsByInterests INDEX e.g. suggestFriendsByInterests 1

  • List all friends : listFriends INDEX e.g. listFriends 1

  • Edit User : editUser [n/NAME] [p/PHONE_NUMBER] [e/EMAIL] [a/ADDRESS] [i/INTEREST]…​ [t/TAG]…​ [tt/TIMETABLE] [su/SCHEDULE_UPDATE]
    e.g. editUser n/Alex Yeoh e/jameslee@example.com
    e.g. editUser tt/ http://modsn.us/H4v8s
    e.g. editUser su/ monday 0000

  • Select User : selectUser INDEX
    e.g.selectUser 2

  • History : history

  • Free time between persons: maxSchedule INDEX INDEX …​ [sl/ LIMIT]
    e.g. maxSchedule 1 2
    e.g. maxSchedule 1 2 3 sl/ 0800-0900

7.2. Event organiser commands

  • Add Event : addEvent n/EVENT_NAME a/LOCATION [t/TAG]…​
    e.g. addEvent n/CS2103 Project Meeting a/SoC Canteen t/Urgent

  • Delete Event : deleteEvent INDEX
    e.g. deleteEvent 1

  • Edit Event : editEvent [n/NAME] [a/ADDRESS] [t/TAG] …​
    e.g. editEvent n/CS2102 Meeting t/URGENT t/ByInvite

  • Select Event : selectEvent INDEX
    e.g. selectEvent 1

  • Add Poll : addPoll n/POLL_NAME
    e.g. addPoll n/Activity

  • Add Option : addOption i/POLL_INDEX o/POLL_OPTION
    e.g. addOption i/1 o/Play games

  • Add Time Poll : addTimePoll d1/DAY-MONTH-YEAR d2/DAY-MONTH-YEAR
    e.g. addTimePoll d1/01-12-2018 d2/02-12-2018

  • Display Poll : displayPoll INDEX
    e.g. displayPoll 1

  • Set Event Date : setDate d/DAY-MONTH-YEAR
    e.g. setDate d/12-12-2018

  • Set Event Time : setTime t1/HOUR:MINUTE t2/HOUR:MINUTE
    e.g. setTime t1/12:30 t2/13:45

7.3. Event participant commands

  • Join Event : joinEvent INDEX
    e.g. joinEvent 1

  • Vote : vote i/POLL_INDEX o/POLL_OPTION
    e.g. vote i/1 o/Play games

  • Find Event With Attributes : findEvent [e/EVENT_NAME] [a/LOCATION] [d/DAY-MONTH-YEAR] [t1/HOUR:MINUTE (START_TIME)] [on/ORGANISER_NAME] [pn/PARTICIPANT_NAME]
    e.g. findEvent d/19-12-2018 on/Alex Yeoh
    e.g. findEvent a/NUS SoC Canteen

  • Find Event by Time : findEventByTime d/DAY-MONTH-YEAR t1/HOUR:MINUTE t2/HOUR:MINUTE
    e.g. findEventByTime d/19-12-2018 t1/12:30 t2/13:45

  • List Events : listEvent
    e.g. listEvent