User Guide
FriendBook is a GUI/CLI program made for SoC Students to help them track and manage their friends and plans.
This User Guide is written to help new users understand how to use FriendBook. It contains information on how to install and launch FriendBook, and how to use commands in the application.
Here’s a quick summary of what FriendBook can do for you:
- All features are easily achieved using simple, typed commands!
- Reminders on how each command can be used!
- Add friends into FriendBook and keep track of their information!
- Add plans into FriendBook and keep track of them!
- Add useful information like deadlines to each of your plans!
- Associate a friend with each of your plans!
Table of Contents
- Installation Guide
- Disclaimers
- Important Information
- Friend-Related Features
- Plan-Related Features
- General Commands
- FAQs
- Command Summary
- Glossary
Installation Guide
- Ensure you have Java 11 or above installed in your Computer. Click here to learn how to find out what Java version you have!
- You might also need to install JavaFX 11. You can find the installation guide here.
- Download the latest
friendbook.jar
from here (link coming soon). - Open up the terminal (Mac) or command prompt (Windows).
- Type
cd
followed by the directory path to the folder where you have downloaded FriendBook in and pressEnter
. - Use the command
java -jar friendbook.jar
to get the application running! - If you have successfully done everything, a GUI similar to the following image should appear. Please note that the application should have no data when it is used for the first time.
Disclaimers
- As FriendBook is still in its beta release stage, we only support a limited number of friends and plans. Our application may not work as expected if too many friends and plans (more than 2147483647) are used!
- Currently, each plan can only be associated with exactly one person. We are working on making this requirement more flexible!
-
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.
Important Information
Texts in this box shows a command and its corresponding syntax
- Words in
UPPER_CASE
are the parameters to be supplied by the user. - Texts in [square brackets] indicate that the argument is optional.
-
...
indicate that more than 1 parameter of that type can be passed into the command. Otherwise, only 1 is allowed.
Prefixes
Prefixes allow you to specify important values when entering a command.
Here is a table of all available prefixes:
Prefixes | Description |
---|---|
n/ |
Used to indicate the name of a Friend or Plan. |
p/ |
Used to indicate the Phone number of a Friend. |
e/ |
Used to indicate the Email of a Friend. |
a/ |
Used to indicate the Address of a Friend. |
t/ |
Used to indicate the Tags of a Friend. |
d/ |
Used to indicate the start or end date of a Plan. |
f/ |
Used to indicate the Friend associated with the Plan. |
Friend-Related Features
add-friend
This command allows you to add a friend to your FriendBook.
add-friend n/NAME p/PHONE_NUMBER e/EMAIL a/ADDRESS [t/TAG]...
Examples of Correct Usage:
add-friend n/John Doe p/98321234 e/johnd@example.com a/Thomson Avenue t/Classmate
add-friend n/Jack Ma p/92839102 e/jack.ma@yahoo.com a/Sixth Avenue
Successful Output:
Unsuccessful Output:
-
Invalid command :
Invalid command...
-
Non-unique person added (by their name or email) :
This friend already exists in the FriendBook...
-
Empty or invalid name :
Names should only contain alphanumeric characters and spaces, and it should not be blank...
-
Invalid phone number :
Phone numbers should only contain numbers, and it should be at least 3 digits long
-
Invalid email format :
Emails should be of the format local-part@domain...
-
Invalid tag format :
Tag names should be alphanumeric and not contain any spaces.
Disclaimer:
/
or -
are allowed. It cannot consist of only numbers.
delete-friend
This command allows you to delete a friend from your FriendBook.
delete-friend INDEX
Examples of Correct Usage:
delete-friend 1
delete-friend 2
Successful Output:
Unsuccessful Output:
-
Invalid command :
Invalid command...
-
Missing or invalid arguments :
Invalid command...
-
INDEX is greater than the number of friends :
The friend index provided is bigger than your number of friends.
Disclaimer:
Invalid command...
error being raised instead.
edit-friend
This command allows you to edit a friend’s details in your FriendBook.
edit-friend INDEX [n/NAME] [p/PHONE] [e/EMAIL] [a/ADDRESS] [t/TAG]...
Examples of Correct Usage:
edit-friend 3 n/Jack Ma
edit-friend 1 p/99990000
Successful Output:
Unsuccessful Output:
-
Invalid command :
Invalid command...
-
Empty or invalid name :
Names should only contain alphanumeric characters and spaces, and it should not be blank...
-
Invalid phone number :
Phone numbers should only contain numbers, and it should be at least 3 digits long
-
Invalid email format :
Emails should be of the format local-part@domain...
-
Invalid tag format :
Tag names should be alphanumeric and not contain any spaces.
-
INDEX is greater than the number of friends :
The friend index provided is bigger than your number of friends.
-
No optional arguments provided :
At least one field to edit must be provided.
-
Friend (identified by name or email) already exists :
This friend already exists in the FriendBook...
Additional Information:
Disclaimer:
Invalid command...
error being raised instead.
find-friend
This command allows you to find a friend by name in your FriendBook.
find-friend NAME...
Examples of Correct Usage:
-
find-friend John
returnsjohn
andJohn Doe
-
find-friend alex david
returnsAlex Yeoh
,David Li
Successful Output:
Unsuccessful Output:
-
Invalid command :
Invalid command...
-
Empty arguments :
Invalid syntax: Missing arguments...
Additional Information:
hans
will match Hans
).
Hans Bo
will match Bo Hans
).
Disclaimer:
Han
will not match Hans
).
list-friend
This command allows you to list all your friends in your FriendBook.
list-friend
Successful Output:
Plan-Related Features
add-plan
This command allows you to add a plan to your FriendBook and associate an existing Friend with this plan.
add-plan n/PLAN_NAME d/DATE_TIME f/FRIEND_NAME
Examples of Correct Usage:
add-plan n/Meeting d/2024-10-23-10:00 f/John
Successful Output:
Unsuccessful Output:
-
Invalid command :
Invalid command...
-
Missing arguments :
Invalid syntax: Missing arguments...
-
Date-Time in wrong format or date does not exist:
Date-Time given is invalid. Date-Time must be in YYYY-MM-DD-HH:MM format
-
Date-Time in the past :
Date-Time given is invalid. Ensure that the Date-Time provided is not in the past.
-
Not a valid friend :
The friend does not exist in the FriendBook.
-
Empty or invalid name for Friend :
Names should only contain alphanumeric characters and spaces, and it should not be blank...
-
Plan (identified by name, date-time and friend) already exists :
This plan already exists in the FriendBook
Additional Information:
Disclaimer:
/
or -
are allowed. It cannot consist of only numbers.
delete-plan
This command allows you to delete a plan from your FriendBook.
delete-plan INDEX
Examples of Correct Usage:
delete-plan 4
Successful Output:
Unsuccessful Output:
-
Invalid command :
Invalid command...
-
Missing or invalid arguments :
Invalid command...
-
INDEX is greater than the number of friends :
The plan index provided is bigger than your number of plans.
Disclaimer:
Invalid command...
error being raised instead.
edit-plan
This command allows you to edit a plan’s details in your FriendBook.
edit-plan INDEX [n/PLAN_NAME] [d/DATE_TIME] [f/FRIEND_NAME]
Examples of Correct Usage:
edit-plan 3 n/Dota 3
edit-plan 1 d/2024-10-23-10:00
Successful Output:
Unsuccessful Output:
-
Invalid command :
Invalid command...
-
Date-Time in wrong format or date does not exist :
Date-Time given is invalid. Date-Time must be in YYYY-MM-DD-HH:MM format
-
Date-Time in the past :
Date-Time given is invalid. Ensure that the Date-Time provided is not in the past.
-
INDEX is greater than the number of friends :
The plan index provided is bigger than your number of plans.
-
No optional arguments provided :
At least one field to edit must be provided.
-
Plan (identified by name, date-time and friend) already exists :
This plan already exists in the FriendBook.
-
Not a valid friend :
The friend does not exist in the FriendBook.
Additional Information:
Disclaimer:
Invalid command...
error being raised instead.
complete-plan
This command allows you to mark a plan as completed in your FriendBook.
complete-plan INDEX
Examples of Correct Usage:
complete-plan 4
Successful Output:
Unsuccessful Output:
-
Invalid command :
Invalid command...
-
Missing or invalid arguments :
Invalid command...
-
INDEX is greater than the number of friends :
The plan index provided is bigger than your number of plans.
Disclaimer:
Invalid command...
error being raised instead.
uncomplete-plan
This command allows you to unmark a plan’s completion status in your FriendBook.
uncomplete-plan INDEX
Examples of Correct Usage:
uncomplete-plan 4
Successful Output:
Unsuccessful Output:
-
Invalid command :
Invalid command...
-
Missing or invalid arguments :
Invalid command...
-
INDEX is greater than the number of friends :
The plan index provided is bigger than your number of plans.
Disclaimer:
Invalid command...
error being raised instead.
find-plan
This command allows you to find a plan by name in your FriendBook.
find-plan FRIEND_NAME
Examples of Correct Usage:
-
find-plan John
returns all plans associated toJohn
Successful Output:
Unsuccessful Output:
-
Invalid command :
Invalid command...
-
Missing FRIEND_NAME argument :
Invalid syntax: Missing arguments...
-
Not a valid friend :
The friend does not exist in the FriendBook.
Additional Information
hans
will match Hans
).
Disclaimers
FRIEND_NAME
must be the full name of a friend in the FriendBook.
list-plan
This command allows you to list all your plans in your FriendBook.
list-plan
Successful Output:
General Commands
clear
This command clears the stored friends and plans on the friendbook.json
file which is located in the data
folder in FriendBook’s home folder.
help
This command provides the FriendBook user guide’s link.
exit
This command closes the FriendBook application.
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 FriendBook home folder.
Q: How do I suggest feedback for FriendBook?
A: You may email us at friendbook@u.nus.edu.sg
.
Q: What features can we look forward to in the future?
A: We are currently looking into the following features: Allowing Plans to have multiple Friends, cloud storage of Plan and Friend data, and allowing users to create their own FriendBook themes and plugins.
Command Summary
Action | Format, Examples |
---|---|
add-friend |
add-friend n/NAME p/PHONE_NUMBER e/EMAIL [t/TAG]... e.g., add-friend n/John Doe p/98321234 e/johnd@example.com
|
edit-friend |
edit-friend INDEX [n/NAME] [p/PHONE] [e/EMAIL] [t/TAG]... e.g., edit-friend 3 n/Jack Ma
|
delete-friend |
delete-friend INDEX e.g., delete-friend 1
|
find-friend |
find-friend KEYWORD [MORE_KEYWORDS] e.g., find-friend Jack
|
list-friend | list-friend |
add-plan |
add-plan n/PLAN_NAME d/DATE_TIME f/FRIEND_NAME e.g., add-plan n/Project Meeting d/2023-10-23-10:00 f/Royden
|
edit-plan |
edit-plan INDEX [n/PLAN_NAME] [d/DATE_TIME] [f/FRIEND_NAME] e.g., edit-plan 1 d/2025-01-01-10:00
|
complete-plan |
complete-plan INDEX e.g., complete-plan 4
|
uncomplete-plan |
uncomplete-plan INDEX e.g., uncomplete-plan 4
|
delete-plan |
delete-plan INDEX e.g., delete-plan 4
|
find-plan |
find-plan FRIEND_NAME e.g., find-plan John
|
list-plan | list-plan |
clear | clear |
help | help |
exit | exit |
Glossary
Term | Description |
---|---|
Case-insensitive | Treating or interpreting upper- and lower-case letters as being the same. |
CLI | Stands for Command Line Interface. It is a text-based interface where users can input commands that interact with a computer’s operating system. |
Command | A sequence of words that represents an action that FriendBook can understand and execute. |
Directory Path | A type of “road map” to a specific file or directory. |
GUI | Stands for Graphical User Interface. It is a digital interface in which a user interacts with graphical components such as icons, buttons, and menus. |
JAR | A file that contains all the resources needed for FriendBook to run. |
Java | A general-purpose programming language on which FriendBook is built. |
Syntax | The set of rules that define what the various combinations of words and symbols mean. |