🚨 ATTENTION ALL TEACHERS! 🚨 Introducing ClassHive, a desktop app for managing all your school contacts! ClassHive is a fast and easy to use app that helps you keep track of all the people you will need to contact, including colleagues, parents and students. In ClassHive, instead of having to click many buttons, you can simply type in commands to access any function! Let's now explore the different features that were built just for you! 🚀
Getting started with ClassHive is easy! Just follow these steps:
Check your Java Version
17 or above installed in your Computer.Download ClassHive
.jar file). Choose where to keep ClassHive
Open ClassHive
On Windows
java -jar ClassHive.jar
On Mac
Command (⌘) + Space).cd (followed by a space), then drag and drop the folder where you saved ClassHive into the Terminal window. java -jar ClassHive.jar
Start using ClassHive!
If you've never used a CLI before don’t worry! This short tutorial will walk you through the basics, and you’ll be managing your contacts like a pro in no time!
1️⃣ Command box
2️⃣ Result Display Box
3️⃣ Contact List Panel
Now that you're familiar with the interface, let's try executing some commands!
1️⃣ Type the following command into the Command Box:
2️⃣ Press Enter.
3️⃣ You should see this.
1️⃣ Type the following command into the Command Box:
2️⃣ Press Enter.
3️⃣ Scroll down the Contact List Panel.
4️⃣ You should see this.
1️⃣ Type the following command into the Command Box:
2️⃣ Press Enter.
3️⃣ Scroll down the Contact List Panel.
4️⃣ You should see this.
You have completed your first few commands in ClassHive!🥳
You're now officially a ClassHive Pro. Head over to the Features section to explore more commands ClassHive has to offer.
It will be useful to know some information about the command format before getting started on the features!
Here are some notes about the command format:
Words in UPPER_CASE are the inputs for you to key in.
e.g. in add n/NAME, NAME is to be filled in by you. If NAME is John Doe, then type into the command box add n/John Doe.
Items in square brackets are optional to specify.
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 zero, one or more times.
e.g. [t/TAG]… can be used as (i.e. 0 times), t/friend, t/friend t/family etc.
Parameters can be specified in any order.
e.g. if the command needs your input for a contact's name and phone number, n/NAME p/PHONE_NUMBER, p/PHONE_NUMBER n/NAME is also acceptable.
Commands that do not take in user inputs (such as help, list, exit and clear) ignores the addition of any extra inputs.
e.g. if the command specifies help 123, it will be interpreted as help.
All commands are case-sensitive, so make sure to type in the command in small letters.
e.g. use add instead of ADD or Add
You can refer to the Command Summary and the Prefix Summary to see a summary of all commands and their related prefixes.
Caution: 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.
helpHelp is always near when using ClassHive! At any point in time, if you need instructions on how to use the app,
type help.
Format: help
Tip: You can also access help window by clicking on F1 or the help menu on the top left bar.
clearWhen you first download ClassHive, you might want to use the clear command to ensure you're starting with a
fresh database. The clear command allows you to remove all contacts from ClassHive with a single command.
Format: clear
Caution: This is an irreversible action that will remove ALL your contacts from ClassHive. Consider backing up your data before clearing (see FAQ section on transferring data).
Before clearing the entries:

After clearing the entries:

addTo make ClassHive ready for your personal use, add contacts into the app using the add command!
Format:
add n/NAME p/PHONE_NUMBER e/EMAIL a/ADDRESS [t/TAG]… r/Student g/GRADE c/CLASS rn/PARENT'S_NAME rp/PARENT'S_PHONEadd n/NAME p/PHONE_NUMBER e/EMAIL a/ADDRESS [t/TAG]… r/Parent g/CHILD'S_GRADE c/CHILD'S_CLASS rn/CHILD'S_NAME rp/CHILD'S_PHONEadd n/NAME p/PHONE_NUMBER e/EMAIL a/ADDESS [t/TAG]… r/StaffNote:
Tip: As the phone number field is compulsory, if a student does not have a contact number, you can add his or her parent's phone number instead!
Examples:
add n/John Doe p/98765432 e/johnd@example.com a/John street, block 123, #01-01 r/Student g/Sec 1 c/1A rn/Bob Doe rp/92932011 adds the student John Doe into ClassHive.add n/Bob Doe p/92932011 e/bobd@example.com a/John street, block 123, #01-01 r/Parent rn/John Doe rp/98765432 g/Sec 1 c/1A adds the parent Bob Doe into ClassHive.add n/Jamie Goh p/98128281 e/jamie@example.com a/Jamie street, block 123, #01-02 r/Student g/Pri 2 c/2C rn/Joseph Goh rp/98128272 adds the student Jamie Goh into ClassHive.add n/Betsy Crowe t/boss e/betsycrowe@example.com a/Serangoon Avenue 2 p/12345678 r/Staff adds the staff member Betsy Crowe into ClassHive.Expected output:
New person added: CONTACT, where CONTACT reflects the details of the contact added.
For example, upon running the command in the first example shown above, the expected output will be
New person added: John Doe; Phone: 98765432; Email: johnd@example.com; Address: John street, block 123, #01-01; Role: Student; Grade: SEC 1; Class: 1A; Parent's Name: Bob Doe; Parent's Phone: 92932011; Tags: editIf a contact's information has changed, simply use the edit command to change the contact's details.
Format: edit INDEX [n/NAME] [p/PHONE] [e/EMAIL] [a/ADDRESS] [t/TAG]…
Note:
INDEX, which refers to the index number shown in the displayed contact list. The index must be a positive integer 1, 2, 3, …Staff, make sure that the fields [g/GRADE], [c/CLASS], [rn/RELATIVE'S_NAME] and
[rp/RELATIVE'S_PHONE] are not included.Student or Parent, make sure that the fields [g/GRADE], [c/CLASS], [rn/RELATIVE'S_NAME] and
[rp/RELATIVE'S_PHONE] are included. Tip:
t/ without specifying any tags after it.Caution: When editing tags, all existing tags of the contact will be removed and replaced with the new tag.
Examples:
edit 3 n/Charlie Olive p/98989898 edits the name and phone number of the 3rd contact to be Charlie Olive and 98989898 respectively.edit 2 n/Betsy Crower t/ edits the name of the 2nd contact to be Betsy Crower and clears all existing tags.Expected output:
Edited Person: CONTACT, where CONTACT reflects the details of the contact edited.
For example, running the command in the first example above results in the output message Edited Person: Charlie Olive; Phone: 98989898; Email: charlotte@example.com; Address: Blk 11 Ang Mo Kio Street 74, #11-04; Role: Staff; Tags: [mentor].Before editing the 3rd contact:

After editing the 3rd contact:

deleteAs you use ClassHive, there may be some contacts that will leave the school. Since you no longer need to contact them,
you can use the delete command to delete their information, ensuring ClassHive remains uncluttered with unnecessary information.
Format: delete n/NAME p/PHONE_NUMBER
Note:
NAME and PHONE_NUMBER.Examples:
delete n/John Doe p/98765432 deletes John Doe with the phone number 98765432 from the app.Expected output:
Deleted Person: CONTACT, where CONTACT reflects the details of the contact deleted.
For example, running the command in the example above will result in the output message Deleted Person: John Doe; Phone: 98765432; Email: johnd@example.com; Address: John street, block 123, #01-01; Role: Student; Grade: SEC 1; Class: 1A; Parent's Name: Bob Doe; Parent's Phone: 92932011; Tags: .
noteAs you add more contacts into ClassHive, you might want to remember important details about them. The note command
allows you to add this information to specific contacts for easy reference later.
Format: note INDEX nt/NOTE
Note:
Examples:
note 3 nt/prefers to be contacted after 5pm adds a note about contact preferences to the 3rd contact.note 1 nt/student needs help with English adds a note about academic needs to the 1st contact in the list.Expected output:
Added note to Person: CONTACT, where CONTACT reflects the details of the contact added.
For example, upon running the command in the second example shown above, the expected output will be
Added note to Person: Alex Yeoh; Phone: 87438807; Email: alexyeoh@example.com; Address: Blk 30 Geylang Street 29, #06-40; Role: Parent; Child's Name: Anthony Yeoh; Child's Phone: 93282842; Child's Grade: SEC 1; Child's Class: 1A; Tags: [pta member]
findThere will be times when you need to quickly locate someone by name or phone number, the find command helps you do just that!
Format:
find KEYWORD [MORE_KEYWORDS] find NUMBERNote:
hans will match Hans.Hans Bo will match Bo Hans.Han will match with Hans or '9876' will match with '98765432'.Examples:
find 9876 returns 98766543, 97659876 and 90987648find John returns Johnny Lee and John Doefind al returns Roy Balakrishnan and Alex YeohExpected output:
[NUMBER] persons listed!, where NUMBER reflects the number of contacts that match the keyword entered.
For example, upon running the command in the third example shown above, the expected output will be
2 persons listed!
listShows a list of all contacts in ClassHive.
Format: list
Expected output:
Listed all personssortAs a teacher managing multiple classes, your contact list will eventually get larger over time. If you want to keep your
ClassHive contacts organized in a logical order, the sort command lets you arrange your contacts alphabetically by name
or chronologically by when they were added, making it easier to scan through your list.
Format: sort by [FIELD] [ORDER]
Note:
FIELD (name or date) and ORDER (asc or desc)FIELD can be either name or date (referring to when the contact was added)ORDER can be either asc (ascending) or desc (descending)Tip: Simply typing sort without any parameters will sort contacts alphabetically by name from A to Z.
Caution: sort command can only be used on the full contact list. If you've recently used find, group,
or any other filter-based command, run list first to reset the view.
Examples:
sort by name asc sorts all contacts alphabetically by name from A to Zsort by name desc sorts all contacts alphabetically by name from Z to Asort by date asc sorts all contacts from oldest to newest addedsort by date desc sorts all contacts from newest to oldest addedExpected output:
Sorted all persons by [FIELD] in [ORDER] order.
For example, upon running the command in the second example shown above, the expected output will be
Sorted all persons by name in descending orderBefore any sorting is done:

After sorting by contacts' names in descending order:

With the group command, you can organize your contacts into specific categories, helping you quickly find the people you're looking for. Whether it’s by their role, class, grade, or favorite status, you can filter and group your contacts to keep your list well-organized.
Format:
group by CATEGORY [CRITERIA]
| Category | Criteria |
|---|---|
| Role | Parent, Student, Staff |
| Class | Any non-empty value |
| Grade | pri 1 to pri 6 or sec 1 to sec 5 |
| Favourite | No criteria needed |
Note:
Parent = parent).Tip: to clear any active group and show all contacts again, type ungroup.
Examples:
group by ROLE student shows all students in your contact list. group by CLASS 2A shows students and their parents from class 2A. group by GRADE pri 4 shows all Primary 4 students and their parents. group by FAVOURITE shows all contacts marked as favourite.Expected output:
[NUMBER] persons listed!, where NUMBER reflects the number of contacts that match the keyword entered.
For example, upon running the command in the first example shown above, the expected output will be Results are grouped by: ROLE student 2 contacts found.
favouriteThe favourite command lets you mark important contacts as favourites, making it easy to find and highlight them later. Whether it's a key student, parent, or colleague, you can quickly access your favourite contacts whenever needed.
Format: favourite INDEX
Note:
INDEX refers to the index number shown in the displayed contact list.Examples:
favourite 1 marks the first contact on the list as favourite.favourite 1 AGAIN, unfavourite the first contact on the list.Expected output:
Toggled favourite status for: [CONTACT], where CONTACT eflects the details of the contact whose favourite status was toggled.
For example, upon running the command in the first example shown above, the expected output will be
Toggled favourite status for: Alex Yeoh; Phone: 87438807; Email: alexyeoh@example.com; Address: Blk 30 Geylang Street 29, #06-40; Role: Parent; Child's Name: Anthony Yeoh; Child's Phone: 93282842; Child's Grade: SEC 1; Child's Class: 1A; Tags: [pta member]
exitAfter you have finished updating your contacts, you will want to safely close ClassHive. The exit command allows you to
properly shut down the application, ensuring all changes are saved.
Format: exit
ClassHive data are saved in the hard disk automatically after any command that changes the data. There is no need to save manually.
ClassHive data are saved automatically as a JSON file [JAR file location]/data/classhive.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, ClassHive 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 ClassHive 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.
Q: How do I transfer my data to another Computer?
A: Install the app in the other computer by following the instructions in the Quick Start section
and replace the empty data file it creates with the file that contains the data of your previous ClassHive 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 minimised, and no new Help Window will appear. To fix this issue, manually restore the minimised Help Window.| Action | Format, Examples |
|---|---|
| Help | help |
| Clear | clear |
| Add | add n/NAME p/PHONE_NUMBER e/EMAIL a/ADDRESS [t/TAG]… r/Student g/GRADE c/CLASS rn/KIN'S_NAME rp/KIN'S_PHONE Examples: Adding students: add n/John Doe p/98765432 e/johnd@example.com a/John street, block 123, #01-01 r/Student g/Sec 1 c/1A rn/Bob Doe rp/92932011 Adding parents: add n/Bob Doe p/92932011 e/bobd@example.com a/John street, block 123, #01-01 r/Parent rn/John Doe rp/98765432 g/Sec 1 c/1A Adding staff: add n/Betsy Crowe t/boss e/betsycrowe@example.com a/Serangoon Avenue 2 p/12345678 r/Staff |
| Delete | delete n/NAME p/PHONEe.g., delete n/Betsy Crowe p/12345678 |
| Edit | edit INDEX [n/NAME] [p/PHONE_NUMBER] [e/EMAIL] [a/ADDRESS] [t/TAG]…e.g., edit 2 n/James Lee e/jameslee@example.com |
| Note | note INDEX nt/NOTEe.g., note 1 nt/student needs extra help with Mathematics |
| Find | find KEYWORD [MORE_KEYWORDS]e.g., find James Tan find NUMBER e.g, find 98765432 |
| List | list |
| Sort | sort by [FIELD] [ORDER]e.g., sort by name asc, sort by date desc |
| Group | group by [category] [criteria]e.g., group by ROLE student, group by CLASS 1A, group by FAVOURITE, group by GRADE pri 1 |
| Ungroup | ungroup |
| Favourite | favourite [INDEX]e.g., favourite 1 |
| Exit | exit |
Tip:
All fields with square brackets around it, such as [t/TAG], denote an optional field.
| Prefix | Used for specifying which field? | Used in which commands? |
|---|---|---|
| n/ | name | add, delete, edit for contacts of all roles |
| p/ | phone number | add, delete, edit for contacts of all roles |
| a/ | address | add, delete, edit for contacts of all roles |
| e/ | add, delete, edit for contacts of all roles | |
| t/ | tags | add, delete, edit for contacts of all roles |
| r/ | role | add, delete, edit for contacts of all roles |
| g/ | student's grade | add, delete, edit for Parent and Student contacts only |
| c/ | student's class | add, delete, edit for Parent and Student contacts only |
| rn/ | relative's name (child's name or parent's name) | add, delete, edit for Parent and Student contacts only |
| rp/ | relative's phone (child's phone or parent's phone) | add, delete, edit for Parent and Student contacts only |
| nt/ | note | note for contacts of all roles |