User Guide
EventfulNUS is a single-user desktop app for managing contacts and events specifically for event organisers of the Inter-Faculty Games (IFG), hosted annually by the National University of Singapore Students’ Sport Club. Specifically, one may add, edit, and delete details about people or events involved in IFG events. Learn more about IFG here.
While optimised for use via a Command Line Interface (CLI), it also has the benefits of a Graphical User Interface (GUI). If you can type fast, you will certainly benefit from event organisation tasks being done faster than traditional GUI apps.
Quick start
-
Ensure you have Java
17
or above installed in your Computer. Learn more about checking and changing your system’s version of Java here. -
Download the latest
.jar
file that will execute the app from here. -
Copy the file to the folder you want to use as the home folder for EventfulNUS, where both the app and your data will be stored.
-
Open the command terminal on your computer (Search
terminal
and open the first app in your search results). -
See where your terminal’s current working folder, or directory, is by typing
pwd
and pressing ‘Enter’. -
Locate the path you need to take to change the terminal’s directory into the one you put the jar file in.
For example, if your
eventfulnus.jar
file is inUsers/{your_computer_username/Downloads/eventfulnus
, and your terminal’s current wokring directory isUsers/{your_computer_username}
, you must relocate your working directory by enteringcd Downloads/eventfulnus
into the terminal.If your terminal’s working directory is
Users/{your_computer_username}/Desktop
and you need to relocate the terminal’s working directory toUsers/{your_computer_username}/Downloads/eventfulnus
, you can first entercd ..
to escape out of theDesktop
folder into theUsers/{your_computer_username}
folder, then entercd Downloads/eventfulnus
to relocate into the folder with the.jar
file.As a general tip,
cd ..
relocates the terminal’s working directory to the folder directly containing the current working directory.Once you have reached the folder containing the
.jar
file, when you typels
and press ‘Enter’, the.jar
file should show up in the list of files in the terminal’s current working directory. -
Enter the
java -jar eventfulnus.jar
command to run the application.
A GUI similar to the below should appear in a few seconds. Note how the app contains some sample data from a sample database.
On the left is a view of all people saved, and on the right is a view of all events saved.
A person has an index, or number, in the list of people in insertion order, a name, a phone number, an email, and optionally certain roles.
An event has a sport, two teams competing against each other, a venue, a date and time, and optionally some participants that correspond to people in the app.
-
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.
Some example commands you can try:-
list
: Lists all contacts. -
add n/John Doe p/98765432 e/johnd@example.com r/volunteer-emcee
: Adds a person namedJohn Doe
to the local database, with these details:- 98765432 as a phone number
- johnd@example.com as an email
- A volunteer emcee role
-
delete 3
: Deletes the 3rd person shown in the current list of people. -
listevent
: Lists all events. -
addevent sp/Chess t/COM t/BIZ d/2024 12 12 1800 v/USC pa/John
: Adds a chess event with these details:- Involves faculties COM and BIZ
- Held on 12 December 2024, at 6pm
- Held at USC
- John is the only participant
-
deleteevent 2
: Deletes the second event shown in the current list of events. -
clear
: Deletes all contacts and events. -
exit
: Exits the app.
-
Refer to the Features below for details of each command.
Features
Notes about the 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
. -
Items in square brackets are optional.
e.gn/NAME [r/ROLE]
can be used asn/John Doe r/athlete
or asn/John Doe
. -
Items with
…
after them can be used multiple times including zero times.
e.g.[r/ROLE]…
can be used asr/athlete
,r/athlete r/volunteer
etc. -
Parameters can be in any order.
e.g. if the command specifiesn/NAME p/PHONE_NUMBER
,p/PHONE_NUMBER
is also acceptable. -
Extraneous parameters for commands that do not take in parameters (such as
help
,list
,exit
andclear
) will be ignored.
e.g. if the command specifieshelp 123
, it will be interpreted ashelp
. -
If you are using a PDF version of this document, be careful when copying and pasting commands that span multiple lines as space characters surrounding line-breaks may be omitted when copied over to the application.
Viewing help : help
Shows a message explaining how to use some of the commands. Also contains a link to this guide.
Format: help
Persons
Adding a person: add
Adds a person to the database.
Format: add n/NAME p/PHONE_NUMBER e/EMAIL [r/ROLE]…
Examples:
add n/John Doe p/98765432 e/johnd@example.com
add n/Betsy Crowe p/98213132 e/betsycrowe@example.com
To add specific roles to a person, you can use the following commands:
- add … r/athlete -
- , {sport2}, {sport3}... - add … r/referee -
- , {sport2}, {sport3}... - add … r/committee -
- - add … r/committee - Sports -
- - add … r/sponsor -
- add … r/volunteer -
Example:
add n/John Doe p/98765432 e/john@mail.com r/athlete - COM - Soccer Men
Before:
After:
You may check a summary of the list of roles, faculties, sports, positions, and more via this link.
Listing all persons : list
Shows a list of all persons in the database.
Format: list
Editing a person : edit
Edits an existing person in the database.
Format: edit INDEX [n/NAME] [p/PHONE] [e/EMAIL] [r/ROLE]…
- Edits the person at the specified
INDEX
. The index refers to the index number shown in the displayed person list. - The index must be a positive integer 1, 2, 3, …
- At least one of the optional fields must be provided.
- Existing values will be updated to the input values.
- When editing roles, the existing roles of the person will be removed i.e adding of roles is not cumulative.
- You can remove all the person’s roles by typing
r/
without specifying any roles after it. - When a person’s details are edited, if they are participants of an Event, their changed details will be reflected in the participants section of an Event in the GUI.
Examples:
-
edit 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 Crowe r/
Edits the name of the 2nd person to beBetsy Crowe
and clears all existing roles.
Before:
After:
Locating persons by name: find
Finds all persons whose names or attributes contain any of the specified keywords (case-insensitive) and displays them as a list with index numbers.
Format: find KEYWORD [MORE_KEYWORDS]…
- The search is case-insensitive. e.g
hans
will matchHans
- The order of the keywords does not matter. e.g.
Hans Bo
will matchBo Hans
- The
name
,phone
,email
, androles
are searched for a match. - Partial matches will also show in results e.g.
Han
will matchHans
- Persons matching at least one keyword will be returned (i.e.
OR
search). e.g.Hans Bo
will returnHans Gruber
,Bo Yang
Examples:
-
find john
returnsjohn
andJohn Doe
-
find John David
returnsJohn Doe
,David Li
Deleting a person : delete
Deletes the specified person from the database.
Format: delete INDEX
- Deletes the person at the specified
INDEX
. - The index refers to the index number shown in the displayed person list.
- The index must be a positive integer 1, 2, 3, …
- When the person deleted is part of an Event (see more below), the Event’s participants will reflect this deletion and no longer show the person among its participants.
Examples:
-
list
followed bydelete 2
deletes the 2nd person in the database. -
find Besty
followed bydelete 1
deletes the 1st person in the results of thefind
command.
Before find
:
After find
:
Before delete
:
After delete
:
Events
Adding an event : addevent
Adds an event to the database.
Format: addevent sp/SPORT t/FACULTY 1 t/FACULTY 2 d/LOCALDATETIME v/VENUE [pa/PARTICIPANTS]…
Examples:
addevent sp/Chess t/COM t/BIZ d/2024 12 12 1800 v/USC pa/John
Before:
After:
Please take note that faculties and sports use ONLY shortcuts found in this section.
Editing an event : editevent
Edits an existing event in the database.
Format: editevent INDEX sp/SPORT t/FACULTY 1 t/FACULTY 2 d/LOCALDATETIME v/VENUE [pa/PARTICIPANTS]…
- Edits 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, …
- At least one of the optional fields must be provided.
- Existing values will be updated to the input values.
- When editing participants, the existing participants of the events will be removed i.e adding of participants is not cumulative.
- You can remove all the event’s participants by typing
pa/
without specifying any participants after it.
Examples:
-
editevent 1 sp/Chess
Edits the sport of the first currently-displayed event to beChess
. -
editevent 2 sp/Basketball Women pa/
Edits the sport of the second currently-displayed event to beBasketball Women
and clears all existing participants.
Before:
After:
Listing all events : listevent
Shows a list of all events in the database.
Format: listevent
Finding events by keywords : findevent
Finds all events whose names or attributes contain any of the specified keywords (case-insensitive) and displays them as a list with index numbers.
Format: findevent KEYWORD [MORE_KEYWORDS]…
- The search is case-insensitive. e.g
usc
will matchUsc
,USC
, etc. - The order of the keywords does not matter. e.g.
USC Chess
will matchChess USC
. - The
name
(sport
andteams
),venue
,date
, andparticipants
are searched for a match. - Partial matches will also show in results e.g.
Che
will matchChess
. - Events matching at least one keyword will be returned (i.e.
OR
search). e.g.Utown Usc
will return events containingUtown Chess
,Usc Table Tennis
, etc.
Deleting an event : deleteevent
Deletes an existing event from the database.
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, …
Examples:
-
listevent
followed bydeleteevent 2
deletes the 2nd event in the database. -
findevent dummy
followed bydeleteevent 1
deletes the 1st event in the results of thefind
command.
Miscellaneous Features
Clearing all entries : clear
Clears all entries from the database. But remember, they’re gone forever.
Format: clear
Exiting the program : exit
Exits the program.
Format: exit
Saving the data
EventfulNUS data is saved in the hard disk automatically after any command that changes the data. There is no need to save manually.
Editing the data file
EventfulNUS data is saved automatically as a JSON file [JAR file location]/data/eventfulnus.json
. Advanced users are welcome to update data directly by editing that data file.
Furthermore, certain edits can cause the EventfulNUS to behave in unexpected ways (e.g., if a value entered is outside of the acceptable range). Therefore, edit the data file only if you are confident that you can update it correctly.
Using Shortcuts
To use EventfulNUS faster, you may find these shortcuts useful.
WARNING: For parsing of faculties / teams, only the shortcuts are accepted, not the full faculty names. Faculties (Code - Faculty Name):
- BIZ - Business
- CDE - Design and Engineering
- COM - Computing
- DEN - Dentistry
- FASS - Arts and Social Sciences
- LAW - Law
- MED - Medicine
- NUSC - NUS College
- SCI - Science
- YNC - Yale-NUS College
INFO: For parsing of sports, both the shortcuts and full sport names are accepted. Sports (Code - Sport Name):
- BMT - Badminton
- BBM - Basketball Men
- BBW - Basketball Women
- BDM - Bouldering Men
- BDW - Bouldering Women
- CHE - Chess
- COB - Contact Bridge
- DGB - Dodgeball
- FBM - Floorball Men
- FBW - Floorball Women
- HBM - Handball Men
- HBW - Handball Women
- LOL - League of Legends
- NET - Netball
- REV - Reversi
- SCM - Soccer Men
- SCW - Soccer Women
- SQH - Squash
- SWM - Swimming Men
- SMW - Swimming Women
- TBT - Table Tennis
- TCB - Tchoukball
- TEN - Tennis
- RUG - Touch Rugby
- TKM - Track Men
- TKW - Track Women
- ULT - Ultimate Frisbee
- VAL - Valorant
- VBM - Volleyball Men
- VBW - Volleyball Women
Branches of Committee Members (Code - Branch Name):
- SPO - Sports
- MKT - Marketing
- PUB - Publicity
Positions of Committee Members (Code - Branch Name)
- PD - Project Director
- VPD - Vice Project Director
- SD - Sports Director
- VSD - Vice Sports Director
- MEM - Member
Volunteer Roles (Code - Role Name):
- PHOTO - Photographer
- MC - Emcee
- USH - Usher
- LOG - Logistics
- FA - First Aid
- BMA - Booth Manner
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 EventfulNUS home folder.
Known issues
-
When using multiple screens, if you move the application to a secondary screen, and later switch to using only the primary screen, the GUI will open off-screen. The remedy is to delete the
preferences.json
file created by the application before running the application again. -
If you minimize the Help Window and then run the
help
command (or use theHelp
menu, or the keyboard shortcutF1
) again, the original Help Window will remain minimized, and no new Help Window will appear. The remedy is to manually restore the minimized Help Window. - Currently, only standard English names for people and events are accepted. We are planning to add support for more languages in the future.
Command summary
Action | Format, Examples |
---|---|
Add Person | add n/NAME p/PHONE_NUMBER m/EMAIL [r/ROLE]… |
Add Event | addevent sp/SPORT t/FACULTY 1 t/FACULTY 2 d/LOCALDATETIME v/VENUE [pa/PARTICIPANTS] |
Clear All Entries | clear |
Delete Person | delete INDEX |
Delete Event | deleteevent INDEX |
Edit Person | edit INDEX [n/NAME] [p/PHONE] [e/EMAIL] [r/ROLE]… |
Edit Event | editevent INDEX [sp/SPORT] [t/FACULTY 1] [t/FACULTY 2] [d/LOCALDATETIME] [v/VENUE] [pa/PARTICIPANTS]… |
Find Person | find KEYWORD [MORE_KEYWORDS]… |
Find Event | findevent KEYWORD [MORE_KEYWORDS]… |
List People | list |
List Events | listevent |
Help | help |