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
17or above installed in your Computer. Learn more about checking and changing your system’s version of Java here. -
Download the latest
.jarfile 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
terminaland open the first app in your search results). -
See where your terminal’s current working folder, or directory, is by typing
pwdand 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.jarfile 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/eventfulnusinto the terminal.If your terminal’s working directory is
Users/{your_computer_username}/Desktopand you need to relocate the terminal’s working directory toUsers/{your_computer_username}/Downloads/eventfulnus, you can first entercd ..to escape out of theDesktopfolder into theUsers/{your_computer_username}folder, then entercd Downloads/eventfulnusto relocate into the folder with the.jarfile.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
.jarfile, when you typelsand press ‘Enter’, the.jarfile should show up in the list of files in the terminal’s current working directory. -
Enter the
java -jar eventfulnus.jarcommand 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
helpand 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 Doeto 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_CASEare the parameters to be supplied by the user.
e.g. inadd n/NAME,NAMEis 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/athleteor asn/John Doe. -
Items with
… after them can be used multiple times including zero times.
e.g.[r/ROLE]…can be used as(i.e. 0 times),r/athlete,r/athlete r/volunteeretc. -
Parameters can be in any order.
e.g. if the command specifiesn/NAME p/PHONE_NUMBER,p/PHONE_NUMBERis also acceptable. -
Extraneous parameters for commands that do not take in parameters (such as
help,list,exitandclear) 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.comadd 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.comEdits the phone number and email address of the 1st person to be91234567andjohndoe@example.comrespectively. -
edit 2 n/Betsy Crowe r/Edits the name of the 2nd person to beBetsy Croweand 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
hanswill matchHans - The order of the keywords does not matter. e.g.
Hans Bowill matchBo Hans - The
name,phone,email, androlesare searched for a match. - Partial matches will also show in results e.g.
Hanwill matchHans - Persons matching at least one keyword will be returned (i.e.
ORsearch). e.g.Hans Bowill returnHans Gruber,Bo Yang
Examples:
-
find johnreturnsjohnandJohn Doe -
find John DavidreturnsJohn 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:
-
listfollowed bydelete 2deletes the 2nd person in the database. -
find Bestyfollowed bydelete 1deletes the 1st person in the results of thefindcommand.
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/ChessEdits 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 Womenand 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
uscwill matchUsc,USC, etc. - The order of the keywords does not matter. e.g.
USC Chesswill matchChess USC. - The
name(sportandteams),venue,date, andparticipantsare searched for a match. - Partial matches will also show in results e.g.
Chewill matchChess. - Events matching at least one keyword will be returned (i.e.
ORsearch). e.g.Utown Uscwill 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:
-
listeventfollowed bydeleteevent 2deletes the 2nd event in the database. -
findevent dummyfollowed bydeleteevent 1deletes the 1st event in the results of thefindcommand.
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.jsonfile created by the application before running the application again. -
If you minimize the Help Window and then run the
helpcommand (or use theHelpmenu, 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 |