KnottyPlanners is a desktop app for wedding planners, optimised for use via a Command Line Interface (CLI) while still having the benefits of a Graphical User Interface (GUI). Especially if you are a wedding planner who can type fast, KnottyPlanners can make organising multiple weddings at once a walk in the park! 🌳
If you are a technical user experienced with CLI feel free to jump right into quick start for technical users!. If it's your first time, don't panic; we will walk you through it in this User Guide! 😊
Command Line Interface (CLI) allows you to type text commands to perform specific tasks quickly and efficiently on a computer. For example, type list in the interface and press enter; the user interface will show you all the contacts you have! Simple, right? Don't worry if you are still unsure about CLI, it's very easy to pick it up! 😁
Home key on Windows/Linux or command + ↑ on Mac.CTRL-F for Windows/Linux or COMMAND-F for Mac to find exactly what you need!Open up the command prompt (in Windows) or terminal (in MacBook) on your computer.
Type in java -version and hit enter.
If your version of Java is 17 and above, skip to step 6. If it is less than 17, click here to download Java 17.
For Windows users, download the Windows x64 Installer. For MacBook users, download the macOS ARM 64 DMG Installer. Follow the respective installation guides.
After successfully completing the installation, repeat steps 1 to 3 to ensure that you have Java 17.
Download the latest KnottyPlanners.jar file under the Assets tab from here.
Create a new folder in your Desktop and copy the KnottyPlanners.jar file into that folder.
Repeat step 1 to open up a new terminal.
Type in cd Desktop\NEW_FOLDER_NAME where NEW_FOLDER_NAME is the name of the folder you created in step 7 and hit enter.
Type in java -jar KnottyPlanners.jar and hit enter to run the application.
You can refer to the Command Summary for an overview of the available commands. If you need more information, the Features section below contains more details regarding each command.
Ensure you have Java 17 or above installed in your Computer.
Download the latest .jar file from here.
Copy the file to the folder you want to use as the home folder for your KnottyPlanners.
Open a command terminal, cd into the folder you put the jar file in, and use the java -jar KnottyPlanners.jar command to run the application.
You can refer to the Command Summary for an overview of the available commands. If you need more information, the Features section below contains more details regarding each command.
Note: We have a default database for you to try out and test commands! If you prefer not to have it, you can use the commands clear-ab and clear-wb to clear the address book and wedding book respectively.
Feel free to use this command summary table and navigate to the features that interest you by clicking on the action words. 😁
| Action | Format, Examples |
|---|---|
| Help | help |
| Add | add n/NAME p/PHONE_NUMBER e/EMAIL a/ADDRESS j/JOB [t/TAG] e.g., add n/James Ho p/22224444 e/jamesho@example.com a/123, Clementi Rd, 1234665 j/Photographer t/June & James |
| Delete | del n/NAME followed by y or ne.g., del n/John Doe followed by y |
| Edit | edit n/NAME [new/NEW_NAME] [p/NEW_PHONE] [e/NEW_EMAIL] [a/NEW_ADDRESS] [j/NEW_JOB]e.g., edit n/John new/James Lee e/jameslee@example.com |
| List | list |
| Add Wedding | add-wed w/NAME & NAME v/VENUE d/DATE or aw w/NAME & NAME v/VENUE d/DATE e.g., add-wed w/ John & June v/Orchard Hotel d/12/12/2030 or aw w/ John & June v/Orchard Hotel d/12/12/2030 |
| Delete Wedding | del-wed w/NAME & NAME or dw w/NAME & NAME followed by y or ne.g., del-wed w/John Loh & Jean Tan or dw w/John Loh & Jean Tan followed by y |
| List Weddings | list-wed or lw |
| Add Tag | tag-add n/NAME t/TAG [t/TAG]... or ta n/NAME t/TAG [t/TAG]... e.g., tag-add n/John Doe t/June & James or ta n/John Doe t/June & James or ta n/John Doe t/June & James t/Jeremy & Maya |
| Deleting Tags | tag-del n/NAME t/TAG [t/TAG]... or td n/NAME t/TAG [t/TAG]... e.g., tag-del n/John Doe t/June & James or td n/John Doe t/June & James or td n/John Doe t/June & James t/Jeremy & Maya |
| Filter | filter [n/KEYWORD]... [j/KEYWORD]... or fil n[n/KEYWORD]... [j/KEYWORD]... e.g., filter n/John or filter n/Sam j/Photographer or fil j/Caterer |
| View Wedding | view-wed NAME & NAME or vw NAME & NAME e.g., view-wed John & Sarah or vw John & Sarah |
| Clear Address Book | clear-ab or cab followed by y or n |
| Clear Wedding Book | clear-wb or cwb followed by y or n |
| Exit | exit |
IMPORTANT:
Delete and clear operations in KnottyPlanners:
All delete and clear operations (except tag-del) in KnottyPlanners will be followed by a confirmation prompt to avoid accidental deletion. Therefore, delete and clear operations must be followed by either the y command (confirm delete operation) or the n command (remove pending operation). Otherwise, the previous operation will remain pending and following delete and clear commands may be affected. Hence, if you accidentally mistype or enter an unintended command before confirming, we suggest that you use n to cancel any pending delete operations to ensure everything runs smoothly. 😊
TAKE NOTE: Y and N will be considered as invalid commands as they are NOT the same as y and n respectively.
The table below provides a brief explanation of each parameter encountered in the command summary above. It also details the constraints of each parameter used in a command.
IMPORTANT:
p/000 or a/nil).Autoformatting in KnottyPlanners:
KnottyPlanners aligns with industry standards by automatically formatting the NAME, JOB, TAG and WEDDING NAME fields.
All other fields that are not mentioned above are not formatted and will be saved based on your user input.
For each field:
Examples:
li sirui is formatted to Li Sirui to ensure consistency in the name format.Wedding Photographer is formatted to Wedding Photographer to ensure consistency in the job names.Adam & Harry is formatted to Adam & Harry to ensure consistency in the wedding names.Duplication Detection in KnottyPlanners:
This section details what constitutes as a duplicate in KnottyPlanners. KnottyPlanners uses names to distinguish contacts from one another. However, due to autoformatting, duplicates may not be exact matches and therefore, may not be immediately obvious to you, the user. Each parameter is followed by examples that explains if the input is considered a duplicate in KnottyPlanners.
NAME
Jeremy Ng is equivalent to JEREMY NG, Jeremy Ng and jeremy ng.Jeremy Ng is NOT the same as Jeremy Lin.JOB
Head Chef is equivalent to HEAD CHEF, Head Chef and head chef.Head Chef is NOT the same as Head Waiter.TAG and WEDDING NAME
John Stones & Mary Jane is equivalent to JOHN STONES & MARY JANE, John Stones & Mary Jane and john stones & mary jane.John Stones & Mary Jane is NOT the same as Mary Jane & John Stones.| Parameter | Prefix | Definition | Case-Sensitivity | Constraints | Examples |
|---|---|---|---|---|---|
NAME | n/ | Name of the person. | Case-insensitive | - Only alphanumeric characters, spaces, /, and . are allowed. - Should not be blank. - If the name contains a -, a possible workaround is to replace the - with an empty spacing. | 👍 Muhammad Ali 👍 Henry s/o Nathan 👍 Robert Downey Jr. ❌ Trent Alexander-Arnold ❌ @JohnnyBoi ❌ Tom s/O Pat ❌ Tom s/O Pat ❌ Sherry d/O Nat ❌ Henry D/o Nat |
PHONE | p/ | Phone number of the person. | NA | - Only numbers and + are allowed. - Should be at least 3 digits long. - Should not be blank. - Should not have spaces in between numbers. - There is no limit on the maximum length of phone numbers accepted to accommodate international phone numbers as well. | 👍 98765432 👍 +6598765432 ❌ 1234 5678 (HP) 1111-3333 (Office) |
EMAIL | e/ | Email address of the person. | Case-sensitive | - Should be in the format local-part@domain. - local-part should only contain alphanumeric characters and the special characters +, _, ., -. local-part may not start or end with any special characters, or contain consecutive special characters. - domain must be at least 2 characters long, start and end with alphanumeric characters. - Should not be blank. | 👍 gary@yahoo.com ❌ henry ❌ j++a@rocketmail.com |
ADDRESS | a/ | Address of the person. | Case-sensitive | - All values are allowed. - Should not be blank. | 👍 Woodlands Dr 71, Blk 680C, #08-12, S721767 |
JOB | j/ | Occupation of the person. | Case-insensitive | - All values are allowed. - Should not be blank. - We recommend that only one job is assigned per person for a better user experience. | 👍 DJ |
TAG | t/ | A tag is the wedding associated with that person. | Case-insensitive | - Only alphanumeric characters spaces, /, . and & are allowed. - Should be in the format NAME & NAME. - Should not be blank. | 👍 Ahmad & Esther 👍 Kattar d/o Hanif & Xavier Lee ❌ Jerry and Stacy ❌ Farah x Adam |
WEDDING NAME | w/ | Name of a wedding. | Case-insensitive | - Only alphanumeric characters spaces, /, . and & are allowed. - Should be in the exact format NAME & NAME. - Both names must be unique. - Should not be blank. | 👍 Henry & Terry👍 Eubanks Jr. & Ayesha ❌ Nwakame Dickson ❌ Siti n Syafie ❌ Jolyn &Max ❌ Sara & Sara |
VENUE | v/ | Location of the wedding. | Case-sensitive | - All values are allowed. - Should not be blank. | 👍 Fullerton Hotel, Ballroom 1, #01-05 |
DATE | d/ | Date of the wedding. | NA | - Should be in the format DD/MM/YYY. - Only numbers and / are allowed. - Should not be blank. - The range of dates allowed are 01/01/1900 to 31/12/2099 | 👍 12/12/2025 ❌ 12th June 2021 ❌ 2025-09-03 ❌ 31/12/1899 ❌ 01/01/2100 |
Important 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.
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.
Ensure that an empty space comes before each prefix. This will prevent your inputs from being misinterpreted by KnottyPlanners.
e.g. edit n/john a/woodlandsj/job will not be interpreted correctly. Rectify this by typing in edit n/john a/woodlands j/job.
Tags in KnottyPlanners are used exclusively to tag person to wedding, hence both wedding name and tag names should be 2 person names separated with a & (e.g. John Loh & Jean Tan, Stacy & Sam).
Items with … after them can be used multiple times including zero times.
e.g. [t/TAG]… can be used as (i.e. 0 times), John Loh & Jean Tan, Stacy & Sam etc.
Extraneous parameters for commands that do not take in parameters (such as help, list, list-wed, exit, clear-ab and clear-wb) will be ignored.
e.g. if the command specifies help 123, it will be interpreted as help.
Prefixes refer to the identifier before the parameter e.g. n/ before NAME. Invalid prefixes (i.e. prefixes that do not exist) will be ignored.
e.g. if the command specifies tag-add n/John Doe b/juice t/John Loh & Jean Tan, it will be interpreted as tag-add n/John Doe t/John Loh & Jean Tan.
If you are using a PDF version of this document, be careful when copying and pasting commands that span multiple lines as whitespace characters surrounding line-breaks may be omitted when copied over to the application.
helpYou can view a popup with an overview of all the commands, and a link to this user guide if you need more details.
Format: help
addYou can add a person to the list of contacts.
Format: add n/NAME p/PHONE_NUMBER e/EMAIL a/ADDRESS j/JOB [t/TAG]
IMPORTANT:
John is duplicated, you can consider changing into John Tan or John from school).Examples:
add n/John Doe p/98765432 e/johnd@example.com a/John street, Blk 123, #01-04 j/Photographeradd n/Betsy Crowe p/90341259 e/betsycrowe@example.com a/Newgate Center j/Caterer t/Stacy & Sam P.S. The wedding Stacy & Sam must be created first using add-wed command!del followed by y or nYou can delete a person from your list of contacts.
Format: del n/NAME followed by y or n
NAME from the address book.y is entered.n is entered, cancelling the delete operation and nothing will occur.IMPORTANT:
del n/NAME MUST BE followed by either of the two commands, otherwise, following delete commands may be affected. Refer to the Command Summary for more information. 😊
Examples:
del n/John Doe followed by y deletes the person named John Doe from the address book.del n/John Doe followed by n cancels the delete operation.editYou can edit an existing contact's details (name, phone number, email, address and job).
Format: edit n/NAME [new/NEW_NAME] [p/NEW_PHONE] [e/NEW_EMAIL] [a/NEW_ADDRESS] [j/NEW_JOB]
IMPORTANT:
edit n/John p/111 p/222 will edit John's phone number to 222 (the first phone number will be ignored).edit n/John n/Gary a/Tampines Heights will edit Gary's address to Tampines Heights (John's address will remain unedited).n/NAME.edit p/222 n/John will edit John's phone number to 222.edit a/Tampines Heights p/123 n/John will edit John's address to Tampines Heights and John's phone number to 123 respectively.edit n/John new/John is a valid command and no changes will be made, same applies to other fields.edit n/John new/john or edit n/John new/ john is a valid command and no changes will be made as names are auto-formatted to 'John' in KnottyPlanners.
Examples:
edit n/John Doe p/91234567 e/johndoe@example.com Edits the phone number and email address of John Doe to be
91234567 and johndoe@example.com respectively.edit n/James new/Clark e/clarknewemail@example.com j/Florist Edits the name, email and job to be
James, clarknewemail@example.com and Florist respectively.listYou can now view all contacts in the order they were added.
Format: list
add-wed / awYou can add a wedding to the list of weddings.
Format: add-wed w/NAME & NAME v/VENUE d/DATE / aw w/NAME & NAME v/VENUE d/DATE
John & Jane Local and John & Jane Overseas).IMPORTANT:
John & Jane is NOT the same as Jane & John and will not be treated as a duplicate.Examples:
add-wed w/John Loh & Jean Tan v/Orchard Hotel d/15/10/2022aw w/Jonus Ho & Izzat Syazani v/Pasir Ris Hotel d/02/11/2022del-wed / dwYou can delete a wedding from your list of weddings.
Format: del-wed w/NAME & NAME / dw w/NAME & NAME followed by y or n
NAME & NAME from the address book.y is entered.n is entered, cancelling the delete operation and nothing will occur.IMPORTANT:
dw w/NAME & NAME MUST BE followed by either of the two commands, otherwise, following delete commands may be affected. Refer to the Command Summary for more information. 😊
Examples:
del-wed w/John Loh & Jean Tan followed by y deletes the wedding named John Loh & Jean Tan from the address book.dw w/Jonus Ho & Izzat Syazani followed by n cancels the delete operation.list-wed / lwYou can now view all weddings in the order they were added.
Format: list-wed / lw
tag-add / taYou can add your contacts to a particular wedding.
Format: tag-add n/NAME t/TAG [t/TAG]... / ta n/NAME t/TAG [t/TAG]...
TAG field must be present.IMPORTANT:
Examples:
tag-add n/John Doe t/Adam and Steve adds the tag Adam and Steve to John Doe.ta n/Betsy Crower t/Lacy & Bacy t/Peter & Mary t/Jonny & Bonny adds the tags Lacy & Bacy, Peter & Mary, and Jonny & Bonny to Betsy Crower.tag-del / tdYou can remove your contacts from a particular wedding.
Format: tag-del n/NAME t/TAG [t/TAG]... / td n/NAME t/TAG [t/TAG]...
TAG field must be present.IMPORTANT:
Examples:
tag-del n/John Doe t/Adam and Steve removes the tag Adam and Steve from John Doe.td n/Betsy Crower t/Lacy & Bacy t/Peter & Mary t/Jonny & Bonny removes the tags Lacy & Bacy, Peter & Mary, and Jonny & Bonny from Betsy Crower.filter / filYou can conveniently search for contacts in your address book by name and/or job.
Format: filter [n/KEYWORD]... [j/KEYWORD]... / fil [n/KEYWORD]... [j/KEYWORD]...
NAME or JOB fields must be present.KEYWORD is not case-sensitive. e.g. photographer will match Photographer.jak will not match Jake, sam will not match Sam Tan, Photographer will not match Wedding Photographer.filter returns the largest range of matches based on your input.Tip:
Examples:
filter j/Photographer returns John and Ernest whose jobs are photographers.filter n/John returns a person whose name is John.fil n/jonus n/harry j/photographer returns Jonus, Harry and all photographers that are in your contacts.fil j/host j/caterer returns all hosts and caterers that are in your contacts.view-wed / vwYou can view a list of all contacts tagged to the specified wedding.
Format: view-wed NAME & NAME / vw NAME & NAME
view-wed / vw shows participants based on wedding names that match the keyword.NAME & NAME has to be in the correct order as saved in your wedding book e.g. alice & bob will not match Bob & Alice.jak will not match Jake, Sam will not match Sam Tan, ian & sky will not match Ian Pang & Sky Tan.AND search)
e.g. Alice will not return Alice & Bob.TAKE NOTE:
Examples:
view-wed Jane Lim & Tom Koh returns John Doe who is a caterer for that wedding.vw Ahmad & Esther returns Halim who is the best man for Ahmad and Jia Zhun who is a photographer for that wedding as well.clear-ab / cabYou can delete ALL contacts in the address book from the application.
Format:
clear-ab / cab followed by y clears all contacts in the address book.clear-ab / cab followed by n will not clear all contacts in the address book.clear-ab / cab clears all contacts in the address book.y, all entries will be deleted.n, no entries will be deleted.IMPORTANT:
y or n command. Refer to the Command Summary for more information️. 😊clear-wb / cwbYou can delete ALL weddings in the wedding book from the application.
Format:
clear-wb / cwb followed by y clears all weddings in the wedding book.clear-wb / cwb followed by n will not clear all weddings in the wedding book.clear-wb / cwb clears all weddings in the wedding book.y, all entries will be deleted.n, no entries will be deleted.IMPORTANT:
y or n command. Refer to the Command Summary for more information. 😊exitYou can exit the application and save any new changes.
Format: exit
KnottyPlanners data will be saved in the hard disk automatically after any command that changes the data. There is no need to save manually.
[JAR file location]/data/addressbook.json.[JAR file location]/data/weddingbook.json.CAUTION:
If your changes to the data file makes its format invalid, KnottyPlanners will discard all data and start with an empty data file at the next run. Hence, it is recommended to make a backup of the file before editing it.
Furthermore, certain edits can cause KnottyPlanners 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 and overwrite the empty data file it creates with the file that contains the data of your previous KnottyPlanners home folder.
Q: What should I do if the application does not start?
A: If you are using a Mac, you may need to right-click the jar file and select Open to run the application. If you are using Windows, you may need to run the jar file as an administrator.
Q: How do I update the application?
A: Download the latest jar file from the releases page.
Q: How do all the commands work?
A: Refer to the Command Summary section for details of each command. Additionally, some tips and important details are provided in the Features section.
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. The remedy is to manually restore the minimised Help Window.edit n/John p/111 p/222 the edited phone number will become 222).