Overview

Welcome to the Pawbook User Guide! In this section, you will be given a brief overview of what Pawbook is all about and what you can takeaway from this user guide. We will show you how to use Pawbook from a user’s perspective.

This user guide contains (but not limited to) a quick start guide, a features walkthrough and a command summary table for easy reference. In each feature or functionality, we further provide command formats and command examples to ensure that you can become proficient in using Pawbook.

Introduction

Dog school managers face multiple administrative issues, such as a large amount of data to handle and having multiple users accessing the data. On top of this, such operations are also time-sensitive as dog schools aim to provide excellent customer service after all. As more people own dogs or aspire to be dog owners, dog schools are experiencing a rise in popularity, which brings to light the heavy administrative issues they face. These problems can all be resolved by Pawbook, a targeted solution for all your dog school needs!

With Pawbook, you can add and delete owner and dog profiles alike, to easily keep track of dogs and their respective owners. Pawbook also allows the managing of the various canine-training programs to cater to your furry customers. As an extension, Pawbook also facilitates the enrolling and dropping of dogs from programs. We understand that as a successful business, there can be multiple programs running in the school every day. To deal with this, Pawbook condenses your hectic timetable and provides a user-friendly view of your schedule of the day for increased convenience.

Pawbook is a desktop application for dog school managers to facilitate their bookkeeping of puppies and dogs in the school, optimized for input via a Command Line Interface (CLI) which caters to fast-typers who prefer to use a keyboard. You can navigate the application with ease and execute instructions by typing text-based commands in the command box provided without ever having to reach for your mouse!

Pawbook also has the benefits of a Graphical User Interface (GUI) to provide you with a visually appealing view, thus bringing you the best user experience to complement.

Purpose

The aim of this user guide is to help novice familiarise themselves with Pawbook. It also aids more experienced users by providing a detailed explanation on the different features and components of Pawbook. This allows old and new users alike to easily learn and use the various features and functionalities provided by Pawbook.

About the User Guide

In this section, we will teach you everything you need to know to effectively use this user guide.

Contributors

This user guide is created by CS2103T-T10-Group1.

  • Charles Lee Lin Ta
  • John Alec Mendoza Branzuela
  • Kou Yong Kang
  • Lam Xuan Yi, Shaelyn
  • Wei Yutong
  • Zhang Anli

This user guide provides you with all the information you need to utilize Pawbook. We understand the pains of using a Command Line Interface (CLI) program and have bested our efforts into ensuring a very readable guide on how to use our program.

If you need help setting up Pawbook, you can go to the Quick Start section.

If you want to find out more about Pawbook’s features and commands, you can go to the Commands section.

If you need an overview regarding the usage of Pawbook’s commands, head on to the Command Summary section.

Here are some important syntax to take note of to facilitate your reading before continuing.

Symbol/Format Meaning
Enter Indicates the enter button on the user’s keyboard
Markdown Example of what to type in the command textbox
Bold Note-worthy keywords
:bulb: Indicates an important tip that will enhance your user experience
:heavy_exclamation_mark: Indicates something that the user should take caution of

Syntax Format

Syntax Meaning Example Explanation
lower_case/ Prefix n/, p/, t/ To be placed right before the actual parameter value, order does not matter.
normal font Command keyword schedule -
CAPS_WITH_UNDERSCORE Compulsory parameter delete dog DOG_ID delete dog are the command keywords, while DOG_ID is compulsory and any valid dog ID can be provided.
[SQUARE BRACKETS] Optional parameter [t/TAG] When adding a dog for example, the tags to be added are optional.
Ellipsis Repeatable parameters [t/TAG]… When adding a dog for example, multiple tags can be supplied and all will be recognized, unlike non-repeatable parameters which only the last occurrence of the paramter will be recognized.

GUI Layout

In this section, you will be introduced to the layout of Pawbook’s Graphical User Interface (GUI). This will help you better understand what each component that you observe on-screen represents.

There are a total of two views that you can navigate to when using Pawbook:

Main Page View

You will be directed to the main page view upon launching Pawbook. On this page, you will first see the list of dogs that are currently stored in Pawbook.

Here is how the main page view looks like on launch:

MainPageView

Component Purpose
Menu Bar A menu bar that allows users to click on shortcuts
Main Display The main display that shows the results of each command
Card Component Each card component represents one entity profile (i.e. Dog, Owner, Program)
Response Display A display that shows the response message from Pawbook after a command has been executed
Command Box A text field for the user to enter his/her command

Help Page View

The help page view provides a short summary list of commands that you can use, as well as a link to this user guide.

HelpPageView


Quick Start

If this is your first time using Pawbook, follow these simple steps to jump straight into the action:

  1. Ensure you have Java 11 or above installed in your computer.
  2. Download the latest pawbook.jar here.
  3. Copy the pawbook.jar file to the folder you wish to use as the root directory for Pawbook (other configuration and data files will be stored in the same directory or subdirectories).
  4. Double-click the file to start the app. The GUI should appear shortly.
  5. Congratulations, you have successfully launched Pawbook! For new users, type help in the command box to launch the help page view.
  6. Type the command in the command box and press Enter to execute it. e.g. typing add and pressing Enter will allow you to start adding information into Pawbook.
:bulb: Please refer to the features below for details of each command.
:heavy_exclamation_mark: Ensure that the data/pawbook.json file is not corrupted or edited wrongly. If any part of the file is invalid or corrupted, Pawbook will not be able to restore the data from the previous session and will start fresh, writing over the same file when saving!

Commands

In this section, you will learn about the commands available in Pawbook and how to use them.

Add Command: Create a dog/owner/program

Function: Creates an entry for an entity (dog/owner/program) and adds to Pawbook.
Use case: When you want to create a new entry for a new customer or program, this is the right command! For instance, when a new dog arrives at the school with its owner, you will first need to add the owner followed by the dog.

Format:

add dog n/DOG_NAME b/BREED d/DATE_OF_BIRTH s/SEX o/OWNER_ID [t/TAG]...
add owner n/OWNER_NAME p/PHONE e/EMAIL a/ADDRESS [t/TAG]...
add program n/PROGRAM_NAME [s/SESSION_DATETIME]... [t/TAG]...

Note:

  • Different prefixes should be used for the respective entities to specify details.
  • Names are allowed to contain basic Latin letters, numerics, hyphens, commas, periods and apostrophes. This is catered for cases when a program name contains numbers and in some cases, even dog names and owner names. Extra punctuation are subjected to common usages.
  • Pawbook supports arbitrary length phone numbers. This is to support phone numbers with differing lengths from different regions.
  • Tags are optional and multiple tags can be added.
  • Tags are only able to take in one alphanumeric string. To write tags with multiple words, consider using camelCase for combining multiple words.
  • Date format used is dd-MM-yyyy, time format is HH:mm. For date and time of sessions, it will need therefore need to follow dd-MM-yyyy HH:mm.
Date time part Code Valid values
Date of month dd 01~31
Month MM 01~12
Year yyyy 0000~9999
Hours HH 00~23
Minutes mm 00~59

Examples:

  1. Creates an owner named John with the details provided in Pawbook.
    Command: add owner n/John Doe p/98765432 e/johnd@example.com a/311, Clementi Ave 2, #02-25 t/friends t/owesMoney

  2. Creates a dog named BRUCE belonging to owner with ID 1 in Pawbook.
    Command: add dog n/Bruce b/Chihuahua d/12-02-2019 s/Male o/1 t/playful t/active

  3. Creates a program with program name Obedience Training.
    Command: add program n/Obedience Training s/02-02-2020 18:00 t/puppies

:bulb: Address fields are free from input checking to allow flexibility to users from different countries with different address formats.
:bulb: Owners are considered to be the same if they share the same name and either the same phone or email.
:bulb: Dogs are considered to be the same if they share the same name and the same owner.
:bulb: Programs are considered to be the same if they share the same name.

To add a dog called Oreo, with breed Jack Russell Terrier, date of birth 20 August 2020, sex female, belonging to the owner with ID 1, tags shy and docile, type add dog n/Oreo b/Jack Russell Terrier d/2-02-2020 s/Female o/1 t/shy t/docile into the commmand box. Add Command

If successfully added, Pawbook will display a success message as shown here. Add Command Result

Delete Command: Remove a dog/owner/program

Function: Removes the entry for an entity (dog/owner/program) from Pawbook.
Use case: When you want to delete an entity, you can simply use the delete command and delete the entity that you want using its ID number. For instance, when a dog is no longer under your care, you can delete the dog’s profile using this command.

Format:

delete dog DOG_ID
delete owner OWNER_ID
delete program PROGRAM_ID

Note:

  • The ID must be a positive integer 1, 2, 3 etc.

Examples:

  1. Deletes the owner with ID 1 in Pawbook.
    Command: delete owner 1

  2. Deletes the dog with ID 2 in Pawbook.
    Command: delete dog 2

  3. Deletes the program with ID 3 in Pawbook.
    Command: delete program 3

:heavy_exclamation_mark: Take note that deleting an owner will automatically delete all the dogs that belong to that owner as well. We do not allow dogs in Pawbook to not have an owner!
:heavy_exclamation_mark: Requiring the type of entity you are deleting to be specified helps ensure that you do not accidentally delete the wrong entity and lose important customer data!
:bulb: Deleting using ID instead of name? Yes, all commands other than add and find uses the entity’s ID. When a new entity is added to Pawbook, the system assigns an unique ID to each of them.

The ID for all entities is displayed in the first line beside its name. ID

To delete dog 3 from Pawbook, type delete dog 3 into the command box. Delete Command

If successfully deleted, Pawbook will display a success message as shown here. Delete Command Result

Edit Command: Modify the details of a dog/owner/program

Function: Edits a dog/owner/program from Pawbook.
Use case: This command allows you to edit the attributes of the entity (dog/owner/program) in your Pawbook. Let’s say you just added an entry for a dog but you realized that you filled in one of its particulars wrongly. The edit command allows you to quickly correct that mistake. More details about each of the editable attributes can be found here.

Format:

edit dog DOG_ID [n/DOG_NAME] [b/BREED] [d/DATE_OF_BIRTH] [s/SEX] [o/OWNER_ID] [t/TAG]...
edit owner OWNER_ID [n/OWNER_NAME] [p/PHONE] [e/EMAIL] [a/ADDRESS] [t/TAG]...
edit program PROGRAM_ID [n/PROGRAM_NAME] [s/SESSION_DATETIME]... [t/TAG]...

Note:

  • The ID must be a positive integer 1, 2, 3 etc.
  • Only include the attributes that need to be edited after the integer
  • Multiple attributes can be edited at once

Examples:

  1. Edits the owner with ID 1 in Pawbook.
    Command: edit owner 1 p/12345678

  2. Edits the dog with ID 2 in Pawbook.
    Command: edit dog 2 n/Bruce t/playful

  3. Edits the program with ID 3 in Pawbook.
    Command: edit program 3 t/learn

:bulb: Tags are only able to take in one alphanumeric string!
:bulb: The same restrictions from Add Command regarding identity of entities apply here.
:heavy_exclamation_mark: Take note that editing sessions for programs and tags for any entity will automatically override all its current sessions/tags! To clear all sessions/tags, use “s/” and “t/” respectively without any values.
:heavy_exclamation_mark: At least one attribute needs to be modified!

To edit the phone number of owner with ID 1 to 91234567, type owner ID p/91234567 into the command box. Edit Command

If successfully edited, Pawbook will display a success message as shown here. Edit Command Result

Enrol Command: Allows dog(s) to join program(s)

Function: Enrols a specified dog to a specified program that the dog was previously not enrolled in. Batch enrolment is also supported, which means that multiple dogs can be enrolled into the same program, or one dog can be enrolled into multiple programs.
Use case: When you want to enrol a dog into a specific program, you can use this command. One instance is when after a new dog Bruce has just joined the school and is applying for Obedience Training. You can then enrol Bruce into the Obedience Training program after you have added Bruce into the system.

Format:

enrol d/DOG_ID [d/DOG_ID]... p/PROGRAM_ID (enrolling multiple dogs into one program)
enrol d/DOG_ID p/PROGRAM_ID [p/PROGRAM_ID]... (enrolling one dog into multiple programs)

Note:

  • The dogs and programs IDs must all be valid.
  • Dog must not be enrolled in the program.

Examples:

  1. Enrol dog with ID 2 into program with ID 3.
    Command: enrol d/2 p/3

  2. Enrol dogs with ID 2 and 3 into program with ID 4.
    Command: enrol d/2 d/3 p/4

  3. Enrol dog with ID 2 into programs with ID 3 and ID 4.
    Command: enrol d/2 p/3 p/4

:bulb: Even for batch enrolment, the dog must not be enrolled in any of the programs, or all dogs must not be enrolled in that program, in order for the command to work.
:heavy_exclamation_mark: Take note that enrolling multiple dogs into multiple programs at once is NOT allowed as it is error-prone. For example, enrol d/2 d/3 p/4 p/5 is NOT allowed!

To enrol dog 4 into program 13, type enrol d/4 p/13 into the command box. Enrol Command

Upon successful enrollment, Pawbook will display a success message as shown here. Enrol Command Result

Drop Command: Remove dog(s) from enrolled program(s)

Function: Removes a specified dog from a specified program that the dog was previously enrolled in. Batch removal is supported, which means that multiple dogs can be removed from the same program, or a single dog can be removed from multiple programs.
Use case: After a dog has finished a program or has dropped out of the program, you can remove him from the program using this command.

Format:

drop d/DOG_ID [d/DOG_ID]... p/PROGRAM_ID (removing multiple dogs from one program)
drop d/DOG_ID p/PROGRAM_ID [p/PROGRAM_ID]... (removing one dog from multiple programs)

Note:

  • The dogs and programs IDs must all be valid.
  • Dog must be enrolled in the program.

Examples:

  1. Remove dog with ID 2 from program with ID 3.
    Command: drop d/2 p/3

  2. Drop dogs with ID 2 and 3 from program with ID 4.
    Command: drop d/2 d/3 p/4

  3. Drop dog with ID 2 from programs with ID 3 and 4.
    Command: drop d/2 p/3 p/4

:bulb: Even for batch removal, the dog must be enrolled in all of the programs, or all dogs must be enrolled in that program for the command to work.
:heavy_exclamation_mark: Take note that removing multiple dogs from multiple programs at once is NOT allowed! For example, drop d/2 d/3 p/4 p/5 is NOT allowed!

To drop dog 4 from program 13, type drop d/4 p/13 into the command box. Drop Command

Upon successful dropping, Pawbook will display a success message as shown here. Drop Command Result

Schedule Command: See all the programs in a day

Function: Displays all programs happenings on the current day or any specified date.
Use case: As a busy dog school manager, this allows you to view the programs lined up on any specified date at a glance.

Format:

schedule [DATE]

Note:

  • Date has to be specified in the dd-MM-yyyy format, details are explained here.
  • If no date is provided, the schedule command will display all programs occurring on the current day.

Examples:

  1. Display the schedule for today.
    Command: schedule
  2. Display the schedule for 1st April 2021.
    Command: schedule 01-04-2021

To view the schedule for 01-02-2021, type schedule 01-02-2021 into the command box. Schedule Command

If there is a schedule to be viewed, Pawbook will display a success message as shown here. Schedule Command Result

List Command: Switch to viewing a particular type of entity

Function: Displays entities filtered by type.
Use case: To see the three different types of entities (dog/owner/program), you can use this command. Let’s say you want to see all the dogs that you are in-charge of. Simply type list dog and all the dogs in Pawbook will be displayed.

Format:

list dog
list owner
list program

Note:

  • On Pawbook’s startup, all dogs are listed.
  • List command supports plural forms of the entity words, as well as unlimited 's'.

Examples:

  1. List all dogs.
    Command: list dog
  2. List all owners.
    Command: list owner
  3. List all programs.
    Command: list program

To view all the programs in Pawbook, type list program into the command box. List Command

If there are programs to be viewed, Pawbook will display a success message as shown here. List Command Result

Find Command: Search for entities by keywords

Function: Shows the list of entities with names that contain the keywords supplied.
Use case: When you forgot the ID of an entity (dog/owner/program) and want to find it by their name. You can also find multiple entities by providing multiple keywords. This may be helpful when you want to see just one specific entity profile.

Format:

find KEYWORD [MORE_KEYWORDS]...

Note:

  • As long as a name contains one of the keywords, the corresponding entity will show up in the results.

Examples:

  1. Find all entities with the name “Alice”.
    Command: find alice

  2. Find all entities with the name “Alice”, “Bob” or “Charlie”.
    Command: find alice bob charlie

:bulb: find is able to take in multiple keywords and return all results as long as the name contains any one of the keywords. :bulb: find is able to search for results based on substrings of keywords.

To find entities containing Berry and Training, type find berry training into the command box. Find Command

If there are entities to be viewed, Pawbook will display a success message as shown here. Find Command Result

Function: Views the entity with the given ID together with all entities related to the specified entity.
Use case: When you want to have a more detailed view of a particular entity (dog/owner/program), you can use this command to see more details. The first entry at the top will be the profile of the entity you want to view. This is followed by the all its related entities. For instance, when you view Bruce the dog, you will first see the his profile, followed by his owner’s profile and finally all the programs that Bruce is enrolled in.

Format:

view ENTITY_ID

Examples:

  1. View ID 1 which belongs to an owner, the owner and all his dogs will be displayed.
    Command: view 1

  2. View ID 2 which belongs to a dog, the dog and its owner will be displayed, followed by the programs that the dog is enrolled in.
    Command: view 2

  3. View ID 3 which belongs to a program, the program and all the enrolled dogs will be displayed.
    Command: view 3

To view all entities related to entity with ID 4, type view 4 into the command box. View Command

If there are entities to be viewed, Pawbook will display a success message as shown here. View Command Result

Help Command: Ask for help!

Function: Shows the help page.
Use case: If you are unsure about how to use Pawbook, execute this help command to view a complete list of commands.

Format:

help

If you require help, type help into the command box. Help Command

A command summary will appear, for more detailed information, click the Copy URL button to get the link to our user guide. Help Command Result

Exit Command: Goodbye!

Function: Exits Pawbook.
Use case: It’s the end of the day and you want to close Pawbook. Simply use this command to exit. The data will be automatically saved upon exit and will still be there the next time you reopen Pawbook.

Format:

exit

To exit Pawbook, type exit into the command box. Exit Command


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 Pawbook home folder.

Q: Where is my data saved?
A: They are stored in the data sub-folder where the Pawbook application can be found.

Q: How can I make backups of my data in Pawbook?
A: Copy and paste the data folder located in the Pawbook home folder to somewhere safe and easy to remember. In order to restore the backup, copy the entire folder back into the same home folder and rewrite the existing folder.

Q: How do I delete all my data in Pawbook?
A: Delete the data folder in the Pawbook home folder.

Q: Will my data be compromised?
A: Fret not! All your data on Pawbook is stored in your local device and will not be transferred over the Internet.

Q: Does Pawbook require an internet connection to function?
A: Pawbook does not access any web services and can be run completely offline.


Command Summary

Action Format
Add 1. add dog n/DOG_NAME b/BREED d/DATE_OF_BIRTH s/SEX o/OWNER_ID [t/TAG]...
2. add owner n/OWNER_NAME p/PHONE e/EMAIL a/ADDRESS [t/TAG]...
3. add program n/PROGRAM_NAME [s/SESSION_DATETIME]... [t/TAG]...
Delete 1. delete dog DOG_ID
2. delete owner OWNER_ID
3. delete program PROGRAM_ID
Drop 1. drop d/DOG_ID [d/DOG_ID]... p/PROGRAM_ID
2. drop d/DOG_ID p/PROGRAM_ID [p/PROGRAM_ID]...
Edit 1. edit dog DOG_ID [n/DOG_NAME] [b/BREED] [d/DATE_OF_BIRTH] [s/SEX] [o/OWNER_ID] [t/TAG]...
2. edit owner OWNER_ID [n/OWNER_NAME] [p/PHONE] [e/EMAIL] [a/ADDRESS] [t/TAG]...
3. edit program PROGRAM_ID [n/PROGRAM_NAME] [s/SESSION_DATETIME]... [t/TAG]...
Enrol 1. enrol d/DOG_ID [d/DOG_ID]... p/PROGRAM_ID
2. enrol d/DOG_ID p/PROGRAM_ID [p/PROGRAM_ID]...
Exit exit
Find find KEYWORD [MORE_KEYWORDS]...
Help help
List 1. list dog
2. list owner
3. list program
Schedule schedule [DATE]
View view ENTITY_ID

Glossary

Term Explanation
CLI Short for Command Line Interface. CLI-based applications are primarily used through processing text commands.
GUI Short for Graphical User Interface. GUIs work as the tangible user interface between program and user. Users interact with Pawbook through the GUI on their devices.
Entity Refers to either an owner, a dog or a program.
Camel Case Refers to a style of writing without spaces and indicating the separation of words using a single capitalized letter.