SocialBook is a desktop app specifically designed to ease the administrative process for social workers.
By providing a comprehensive way to store the personal details of those they are helping, as well as functionalities to make the information managing process efficient, SocialBook streamlines the process for social workers.
SocialBook is optimized for use via a Command Line Interface (CLI) while still having the benefits of a Graphical User Interface (GUI). If you can type fast, SocialBook can get your contact management tasks done faster than traditional GUI apps.
Ensure you have Java 17 or above installed in your Computer.
Download the latest .jar
file from here.
socialbook.jar
fileCopy this file into the folder you want to use for SocialBook.
Open a command terminal, cd
into the folder you put the .jar
file in. After which enter java -jar socialbook.jar
in the command terminal to run the application.
If done correctly, a GUI similar to the image below should appear in a few seconds. Note that the app will contain some sample data for you to get started and familiarise with.
Type the command where "Enter command here..." is seen in the command box and press the enter / return key on your computer to execute it. e.g. typing help
and pressing enter / return will open the help window.
Some example commands you can try:
list
: Lists all current (i.e. not archived) contacts.
add n/John Doe p/98765432 e/johnd@example.com a/311, Clementi Ave 2 #02-25 dob/1999-03-09
: Adds a contact named John Doe
to SocialBook with these specified details.
delete 3
: Deletes the 3rd contact shown in the current list.
clear
: Deletes all contacts.
exit
: Exits the app.
6. Refer to the Features below for details of each command.
Notes about the command format:
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.
Extraneous parameters for commands that do not take in parameters (such as listappt
, statistics
, exit
and clear
) will be ignored.
e.g. if the command specifies statistics 123
, it will be interpreted as statistics
.
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.
e.g. if you copy add n/John Doe p/98765432
and p/98765432
is on a new line in the PDF, when copied over into the command box, it may be copied as add n/John Doep/98765432
instead which is an invalid command format.
help
Shows a message explaining how to access the help page as well as all the available commands. If the [COMMAND]
is specified, the help message for that command
will be displayed.
Format: help [COMMAND]
Examples:
help
help add
help edit
add
Adds a person to SocialBook.
Format: add n/NAME p/PHONE e/EMAIL a/ADDRESS dob/DATE_OF_BIRTH [pri/PRIORITY = LOW] [income/INCOME = 0] [famsize/FAMILY_SIZE = 1] [r/REMARK] [t/TAG]...
JOHN DOE
is the same as john doe
.John Doe
is the same as John Doe
.PRIORITY, INCOME, FAMILY SIZE
, if not specified, their values will be defaulted to LOW, 0, 1
respectively.Tip: A person can have any number of tags (including 0)
Examples:
add n/John Doe p/98765432 e/johnd@example.com a/311, Clementi Ave 2, #02-25 dob/1999-03-09 famsize/3 income/5000
add n/Betsy Crowe t/friend e/betsycrowe@example.com a/Newgate Prison p/1234567 dob/2002-12-25 pri/MEDIUM t/criminal
list
Shows a list of persons in the address book, sorted according to the latest sorting order specified by the sort
command. If no sorting order has been specified, the list will be sorted by priority from HIGH to LOW.
Format: list [archive/] [all/]
list
: Shows a list of people who are current contacts (i.e. not archived)list archive/
: Shows a list of people who are archivedlist all/
: Shows a list of all peopleCaution:
archive/
and all/
concurrently, e.g. list archive/ all/
❌, list archive/
✅archive/
and all/
should not have parameter values, e.g. list archive/bob
❌, list archive/
✅edit
Edits an existing person's details in SocialBook.
Format: edit INDEX [n/NAME] [p/PHONE] [e/EMAIL] [a/ADDRESS] [dob/DATE_OF_BIRTH] [pri/PRIORITY] [income/INCOME] [famsize/FAMILY_SIZE] [r/REMARK] [t/TAG]…
INDEX
. The index refers to the index number shown in the displayed person list. The index must be a positive integer not exceeding the largest index number e.g. 1, 2, 3,…edit INDEX t/
or edit INDEX r/
where INDEX
is the person's index.Examples:
edit 1 p/91234567 e/johndoe@example.com
Edits the phone number and email address of the 1st person to be 91234567
and johndoe@example.com
respectively.edit 2 n/Betsy Crower t/
Edits the name of the 2nd person to be Betsy Crower
and clears all existing tags.find
Finds persons that match the specified filters.
Format: find [n/START_OF_NAME]... [a/PART_OF_ADDRESS]... [pri/PRIORITY]... [income/INCOME]...
n/alice
will match Alice
.find
command).find n/A
returns all persons whose first name starts with A only.find a/clementi
returns all persons who stay at clementi only.find pri/high
returns all persons with high priority only.find income/2000
returns all persons with income less than or equal to 2000.00 only.find n/alex n/david n/bobby
OR
search) but when combined, only those who also pass the filters of other types are are returned (i.e. AND
search) e.g. find n/A n/B pri/HIGH
returns all persons whose name starts with either A or B but have high priority.Examples:
find pri/high
returns Alice Tan
and David Wong
(from sample data)find n/a n/b n/c pri/high pri/medium
returns Alice Tan
and Benny Lim
sort
Sorts persons in the order of the specified parameter.
Format: sort PARAMETER
sort name
works the same as sort NAME
.find a/clementi
sort address
will sort the contact list of those staying in Clementi in order of their address.Examples:
sort name
sort updated
delete
Deletes the specified people from SocialBook.
Format: delete INDEXES
INDEXES
.Examples:
list
followed by delete 2,3
or delete 3,2
deletes the 2nd and 3rd person in SocialBook.find Betsy
followed by delete 1
deletes the 1st person in the results of the find
command.get
Gets the specified parameters of each individual person in current person list.
Format: get PARAMETERS
get PHONE name
will return phone number and name details too.Examples:
list
followed by get phone EMAIL
gets the phone numbers followed by the emails of the people in SocialBook.list
followed by get pHone phone
gets only one set of the phone numbers of the people in SocialBook.find pri/HIGH
followed by get nAmE ADDress
gets the names followed by the addresses of the high priority people.clear
Clears all entries from SocialBook.
Examples:
find n/John
followed by clear
will delete all persons in SocialBook and not just those with John
in their names.Format: clear
addappt
Adds an appointment with a person to the address book.
Format: addappt INDEX date/yyyy-MM-dd from/HH:mm to/HH:mm
INDEX
.
date
specifies the date of the appointment in the yyyy-MM-dd
format, where:
yyyy
is the four-digit year (e.g., 2024
)MM
is the two-digit month (e.g., 01
)dd
is the two-digit day of the month (e.g., 08
)from
and to
specify the start and end times of the appointment in the HH:mm
format (24-hour clock).For more details on the command format, refer to the notes about the command format.
Examples:
addappt 1 date/2024-11-08 from/16:00 to/17:00
addappt 2 date/2024-11-26 from/17:00 to/18:30
listappt
Displays a list of all appointments in the address book.
Format: listappt
editappt
Edits an existing appointment in the address book.
Format: editappt INDEX [date/yyyy-MM-dd] [from/HH:mm] [to/HH:mm]
INDEX
.
date
specifies the new date of the appointment in the yyyy-MM-dd
format, where:
yyyy
is the four-digit year (e.g., 2024
)MM
is the two-digit month (e.g., 01
)dd
is the two-digit day of the month (e.g., 08
)from
and to
specify the new start and end times of the appointment in the HH:mm
format (24-hour clock).For more details on the command format, refer to the notes about the command format.
Examples:
editappt 1 date/2024-11-15 from/16:00 to/18:00
: Updates the first appointment to November 15, 2024, from 4:00 to 6:00 PM.editappt 2 from/10:00 to/11:30
: Updates the start and end times of the second appointment to 10:00 AM and 11:30 AM, respectively, on the same date.deleteappt
Deletes the specified appointment from the address book.
Format: deleteappt INDEX
INDEX
.
Examples:
listappt
followed by deleteappt 2
deletes the second appointment from the address book.statistics
Displays the statistics of current person list.
Statistics include:
Format: statistics
scheme
Displays the schemes that specified people from SocialBook are eligible for.
Format: scheme INDEXES
INDEXES
are eligible for.Examples:
scheme 1
shows scheme that the 1st person in SocialBook is eligible for.addscheme
Adds a scheme to the specified person in the address book.
Format: addscheme PERSON_INDEX i/SCHEME_INDEX
SCHEME_INDEX
to the person at the specified PERSON_INDEX
.Examples:
addscheme 1 i/1
adds the 1st scheme to the 1st person in the address book.viewscheme
Displays the schemes that the specified person in the address book is attached to.
Format: viewscheme INDEX
INDEX
is attached to.Examples:
viewscheme 1
shows the schemes that the 1st person in the address book is attached to.deletescheme
Deletes the specified scheme from the specified person in the address book.
Format: deletescheme PERSON_INDEX i/SCHEME_INDEXS
SCHEME_INDEXES
from the person at the specified PERSON_INDEX
.Examples:
deletescheme 1 i/1
deletes the 1st scheme from the 1st person in the address book.deletescheme 1 i/1, 2
deletes the 1st and 2nd scheme from the 1st person in the address book.archive
Archives the specified person from the address book.
Format: archive INDEX
INDEX
.Examples:
list
followed by archive 2
archives the 2nd person in the address book.Info: It is still possible to make changes to archived people
unarchive
Unarchives the specified person from the address book.
Format: unarchive INDEX
INDEX
.Examples:
list archive/
followed by unarchive 1
unarchives the 1st person in the address book.undo
Undoes the previous command from SocialBook.
Format: undo
Examples:
delete 1,2
followed by undo
will add persons at index 1 and 2 back to that index on SocialBook.clear
followed by undo
will retrieve back the uncleared SocialBook.edit 1 n/John
followed by undo
will change name back to what it was before.exit
Exits the program.
Format: exit
SocialBook data are saved in the hard disk automatically after any command that changes the data. There is no need to save manually.
SocialBook data are saved automatically as a JSON file [JAR file location]/data/socialbook.json
. Advanced users are welcome to update data directly by editing that data file.
Caution:
If your changes to the data file makes its format invalid, SocialBook will discard all data and start with an empty data file at the next run. Hence, it is recommended to take a backup of the file before editing it.
Furthermore, certain edits can cause the SocialBook to behave in unexpected ways (e.g., if a value entered is outside the acceptable range). Therefore, edit the data file only if you are confident that you can update it correctly.
Commands entered into SocialBook are automatically saved while it is running. To go through previously entered commands, use the up and down arrow keys to go to the previous command and next command respectively.
You can press the up key to go through the previous commands until the command entered earliest is reached. Once there are no more previous commands to retrieve, pressing the up key has no effect, and remains at the command entered earliest.
On the other hand, you can press the down key until the command entered most recently is reached, and then pressing the down key once more empties the command field for a new command to be entered. Subsequent presses of the down key has no effect, and leaves the command field empty.
The calendar UI allows you to visualize your appointments throughout the day.
The right side of the calendar shows a timeline view of today's appointments. Each appointment is represented by a blue box with the person's name. For appointments lasting 30 minutes or more, the start time is also displayed. The height of the box represents the duration of the appointment.
The left side of the calendar shows a monthly calendar view along with an agenda view that lists appointments for the next 30 days, including today (e.g., November 7 to December 7). The agenda view provides detailed information for each appointment, including the person's name and the start and end times.
You can also navigate the calendar using these keyboard shortcuts:
Ctrl + P
: Go to the previous dayCtrl + N
: Go to the next dayCtrl + T
: Go to todayQ: 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 AddressBook home folder.
preferences.json
file created by the application before running the application again.help
command (or use the Help
menu, or the keyboard shortcut F1
) 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.Command | Format, Examples |
---|---|
help | help [COMMAND] |
add | add n/NAME p/PHONE_NUMBER e/EMAIL a/ADDRESS [t/TAG]… e.g., add n/James Ho p/98765432 e/jamesho@example.com a/123, Clementi Rd, 1234665 t/friend t/colleague |
list | list [archive/] [all/] e.g., list , list archive/ , list all/ |
edit | edit INDEX [n/NAME] [p/PHONE_NUMBER] [e/EMAIL] [a/ADDRESS] [dob/DATE_OF_BIRTH] [pri/PRIORITY] [income/INCOME] [famsize/FAMILY_SIZE] [r/REMARK] [t/TAG]… e.g., edit 2 n/James Lee e/jameslee@example.com |
find | find [n/START_OF_NAME]... [a/PART_OF_ADDRESS]... [pri/PRIORITY]... [income/INCOME]... e.g., find n/A n/B a/clementi pri/High |
sort | sort [name] [address] [priority] [income] [updated] e.g., sort name |
delete | delete INDEXES Indexes are the index of the person in the person list e.g., delete 2,3 |
get | get PARAMETERS e.g., get email phone |
clear | clear |
addappt | addappt INDEX date/yyyy-MM-dd from/HH:mm to/HH:mm e.g., addappt 1 date/2024-11-08 from/16:00 to/17:00 |
listappt | listappt |
editappt | editappt INDEX [date/yyyy-MM-dd] [from/HH:mm] [to/HH:mm] e.g., editappt 2 from/10:00 to/11:30 |
deleteappt | deleteappt INDEX |
statistics | statistics Shows general statistics |
scheme | scheme INDEX e.g., scheme 1 |
addscheme | addscheme PERSON_INDEX i/SCHEME_INDEX e.g., addscheme 1 i/1 |
viewscheme | viewscheme INDEX e.g., viewscheme 1 |
deletescheme | deletescheme PERSON_INDEX i/SCHEME_INDEX e.g., deletescheme 1 i/1 |
archive | archive INDEX e.g., archive 1 |
unarchive | unarchive INDEX e.g., unarchive 1 |
undo | undo |
exit | exit |