Streamline Your Shelter: Pawfection - Commanding Care with a Click!
Welcome to Pawfection, your desktop application for managing animals in a pet shelter, designed with you, the volunteer, in mind. Pawfection aims to provide a platform for volunteers to store and retrieve information about animals and tasks easily, ensuring seamless coordination within the shelter.
With Pawfection, experience a new level of convenience and control:
Begin your Pawfection Journey - New to Pawfection? Get started with our Quick Start Guide!
Animal
help
add
list
delete
edit
search
addtask
deletetask
mark
unmark
reset
Welcome to the Pawfection User Guide! Our goal is to empower you with the knowledge and confidence to unleash the full potential of Pawfection.
11
or above installed in your Computer.java --version
and press Enter to check if java is installed.java --version
and press Enter to check if java is installed.java --version
and press Enter to check if java is installed.If Java 11 is not installed, follow the instructions here to install Java 11.
pawfection.jar
.) from our Github Release.
Pawfection
to keep things organized!Navigate to Workspace. Navigate to the folder containing the pawfection.jar
file using this method:
New Terminal at Folder
(Mac) or Open in Terminal
(Windows) to instantly navigate to the folder in your Terminal.
cd
command in your Terminal.Run Pawfection. Use the java -jar pawfection.jar
command to run the application.
Main Window:
Here are the components of the Graphical User Interface (GUI), and their details.
Component Name | Details |
---|---|
Menu Bar | Contains the drop down menus: File and Help. |
Command Input Box | Text box for users to input commands. |
Message Display Box | Box that displays result of command. Error messages will be displayed here as well. |
Animal Entries | Contains information about individual animals currently at the shelter, including: Name, ID, Sex, Species and Breed of animal. |
Selected Animal | Animal that is selected either by left-clicking on the animal entry, or selected by a command. Selected animal is highlighted in orange. |
Detailed View | Box that contains more details about the currently selected animal. |
help
in the command box and pressing Enter
. The URL to this user guide will be displayed as seen in the image below.help
command more effectively by typing help ad
and pressing Enter
. A list of commands that contain the keyword ad
will be displayed.add n/Tofu i/0000 g/Male db/2019-01-01 da/2019-02-02 s/Dog b/Poodle
and press Enter
. Tofu
is now added to the animal list!Add more Animals. Try it out yourself! Add more animals to the list using the add
command.
Searching for Animals. Now that the list view is getting a little too crowded, let us try to search for animals. Type in search n/Tofu
and press Enter
. The animal list view will now only show animals with the name Tofu
.
Tofu
. Click on the Tofu
card on the left of GUI. The animal details view on the right will now show the details of Tofu
.list
and press Enter
. The animal list view will now show all animals.Tofu
. Type in addtask 3 Feed Tofu
and press Enter
. A task with the name Feed Tofu
is now added to Tofu
's task list.mark 3 1
and press Enter
. The first task of Tofu
is now marked as done.Congratulations! You are now ready to use Pawfection! Click here to explore other features.
Here are the main components of the commands:
Component | Example | Description |
---|---|---|
Command Word | add , search | The command to be executed |
Prefix | n/ , i/ | The attribute of the animal |
Parameter | NAME , ID | The value of the attribute of the animal, which is supplied by users |
Index | 1 , 2 | The position of the animal or task in the current list, based on 1-indexing, i.e first animal will be at index 1. |
To view the full list of animal attributes, refer to Attributes of Animal
.
Here are the additional symbols used in the commands:
Symbol | Example | Description |
---|---|---|
None | n/NAME | The parameter NAME is compulsory |
[ ] | [b/BREED] | The parameter BREED is optional |
... | TASK_INDEX ... | Multiple parameters of type TASK_INDEX can be accepted |
Notes about the command format:
Parameters can be in any order EXCEPT commands that take in ANIMAL_INDEX
and TASK_INDEX
as inputs.
e.g. if the command specifies n/NAME db/DOB
, db/DOB n/NAME
is also acceptable.
Extraneous parameters for some commands (e.g. list
, reset
, search
) will be ignored.
e.g. if the command specifies search 123 n/Pookie
, it will be interpreted as search n/Pookie
.
Prefixes are case-sensitive. n/
is not the same as N/
.
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.
Animal
Summarized in the table below are the attributes of Animal
along with their constraints. You are encouraged to read through
this table for an idea of what the attributes are supposed to look like, and refer to this table if you are unsure.
Animal
Format | Constraints | Example |
---|---|---|
n/NAME | Alphanumeric, not blank |
|
i/ID | 4-digit, unique number |
|
g/SEX | Male/Female, case-insensitive |
|
s/SPECIES | Alphabets, separated by singular whitespace |
|
b/BREED | Alphabets, separated by singular whitespace |
|
db/DOB | yyyy-MM-dd format. Not in the future.Not chronologically later than DOA |
|
da/DOA | yyyy-MM-dd format. Not in the future.Not chronologically earlier than DOB |
|
help
Displays either a link to this User Guide in a pop-up, or the usage guide of the specified command.
Format:
Examples:
help
help add
help del
Things to note:
COMMAND_NAME
is case-insensitive, and is able to do partial matches. E.g. "a", "ad", "dd", "AdD" will all match with "add".Upon success:
help
will produce a link to the User Guide in a pop-up.help add
will show usage guide of all commands that partial match with add
.Upon failure:
Inputs that result in no partial matches will produce the following error message:
add
Adds an animal to the animal catalog.
Format:
Examples:
add n/Pookie i/1234 g/MALE db/2019-01-01 da/2019-02-02 s/Dog b/Poodle
add n/Tofu i/1242 g/female db/2023-04-01 da/2023-05-25 s/cat b/British Shorthair
Things to note:
Animal
for a better idea of the constraints of each attribute.Upon success:
add n/Tofu i/1242 g/female db/2023-04-01 da/2023-05-25 s/cat b/British Shorthair
adds Tofu to the list.Upon failure:
Attempts to add
an animal with missing fields will produce the following error message listing the missing fields:
Attempts to add
an animal with an ID that already exists in the AnimalCatalog will produce the following error message:
Attempts to add
an animal with a wrong chronological DOB and DOA will produce the following error message:
Attempts to add
an animal with a wrong date format, or a date that does not exist e.g. 2019-02-31
will produce the following error message:
list
Shows a list of all animals in the animal catalog.
Format:
Things to note:
delete
Deletes the animal at the specified index from the animal catalog.
Format:
Examples:
delete 2
Upon success:
delete 2
deletes the animal at INDEX 2
.Upon failure:
delete -1
is not a valid command format due to INDEX
not being positive and will produce the following error message:
Invalid command formats will produce the following error message:
Edit
Edits animals specified by the index with the newly specified prefix attributes.
Format:
Examples:
edit 2 n/Pookie
edit 1 s/Dog b/Poodle
Things to note:
Animal
for a better idea of the constraints of each attribute.Upon success:
edit 2 n/Pookie
edits the name of the animal at INDEX 2
to be Pookie
.edit 1 s/Dog b/Poodle
edits the species of the animal at INDEX 1
to be Dog
and the breed to be Poodle
.Upon failure:
edit -1
is an invalid command format due to INDEX
not being positive and will produce the following error message:
edit 100
is an invalid command format due to missing prefix and will produce the following error message:
Search
Searches animals that are filtered using the specified prefixes.
Format:
Examples:
search n/Bear
search n/Pookie b/Poodle
search something n/Bear
is equivalent to search n/Bear
search nil/something n/Bear etc/else
is equivalent to search n/Bear
search something
and search nil/other else/other
is equivalent to search
Things to note:
n/pookie
will match animals named Pookie
search n/ear
will not match animals whose name contains ear
like Bear
, it will only search for animals whose names are spelt exactly ear
.search b/dog n/tofu
will only return a dog named tofu and not any other dog or any pet named tofuAnimal
for a better idea of the constraints of each attribute.Upon success:
search n/Bear
returns all animals with the name Bear
, not animals whose species is Bear
search n/Pookie b/Poodle
returns all animals with the name Pookie
and is of the breed Poodle
Upon failure:
If no valid inputs are provided, the search will return the following error message.
addtask
Adds a new task with the specified description to the task list of an animal.
Examples:
addtask 1 Feed Pookie
Format:
Things to note:
TASK
refers to the description of the task that you want to add into the task list of the animal.TASK
with the same description is allowed.Upon success:
addtask 1 Feed Pookie
adds a task with name Feed Pookie
to the task list of the first animal.Upon failure:
If the ANIMAL_INDEX
provided is out of range, the following error message will be produced:
If the ANIMAL_INDEX
provided is negative or zero, the following error message will be produced:
deletetask
Deletes the task at the specified task index from the task list of the animal at the specified animal index.
Format:
Examples:
deletetask 1 1
Things to note:
ANIMAL_INDEX
and TASK_INDEX
must be separated by a space. E.g. deletetask 12
will be treated as delete task
from animal with index 12, but because there is a missing TASK_INDEX
, the command is invalid.ANIMAL_INDEX
and TASK_INDEX
is specified must be adhered to.deletetask 1 2
.deletetask 1 2
is not equivalent to deletetask 2 1
.Examples:
deletetask 1 1
Upon success:
deletetask 1 1
deletes the first task from the first animal in the listUpon failure:
If the ANIMAL_INDEX
provided is out of range, the following error message will be produced:
If the TASK_INDEX
provided is out of range, the following error message will be produced:
If the ANIMAL_INDEX
or TASK_INDEX
provided is negative or zero, the following error message will be produced:
mark
Marks the task at the specified task index as done for the animal at the specified animal index.
Format:
Examples:
mark 1 1
mark 2 1 2
Things to note:
TASK_INDEX
are specified, all the tasks at the specified TASK_INDEX
will be marked as done.TASK_INDEX
provided is invalid, the rest of the TASK_INDEX
will not be marked as done.mark
command on task(s) previously marked as done will not cause an error to be thrown, and the task(s) would remain as marked.ANIMAL_INDEX
and TASK_INDEX
is specified must be adhered to.mark 1 2
.mark 1 2
is not equivalent to mark 2 1
.Examples:
mark 1 1
mark 2 1 2
Upon success:
mark 2 1 2
marks the first and second task of the second animal as done.Upon failure:
If no TASK_INDEX
is provided, the following error message will be produced:
If no ANIMAL_INDEX
is provided, the following error message will be produced:
If the ANIMAL_INDEX
provided is out of range, the following error message will be produced:
If any of the TASK_INDEX
provided is out of range, the following error message will be produced:
unmark
Marks the task at the specified task index as uncompleted for the animal at the specified animal index.
Format:
Examples:
unmark 1 1
unmark 3 1 2
Things to note:
TASKINDEX
are specified, all the tasks at the specified ANIMAL_INDEX
will be marked as uncompleted.TASK_INDEX
provided is invalid, the rest of the TASK_INDEX
will not be marked as uncompleted.unmark
command on task(s) previously marked as uncomplete will not cause an error to be thrown, and the task(s) would remain as uncomplete (unmarked).ANIMAL_INDEX
and TASK_INDEX
is specified must be adhered to.unmark 1 2
.unmark 1 2
is not equivalent to unmark 2 1
.Examples:
unmark 1 1
unmark 3 1 2
Upon success:
unmark 3 1 2
marks the first and second task of the third animal as uncompleted.Upon failure:
If no TASK_INDEX
is provided, the following error message will be produced:
If no ANIMAL_INDEX
is provided, the following error message will be produced:
If the ANIMAL_INDEX
provided is out of range, the following error message will be produced:
If any of the TASK_INDEX
provided is out of range, the following error message will be produced:
reset
Sets all tasks of all animals as uncompleted.
Format:
Things to note:
Upon success:
reset
will unmark all tasks of all animals and produce the following message:
The detailed view panel on the right shows greater details about the selected animal. There are 2 ways to view the details of a certain animal:
INDEX
of animal will automatically show the details of the animal in the detailed view. Commands include: add
, edit
, addtask
, deletetask
, mark
, unmark
.The animal cell whose details are currently being displayed in the detail view will be highlighted in orange.
list
, delete
, search
, and help
commands.Examples:
edit 2 n/Pooh
will automatically cause the animal at INDEX 2
to show in the detailed view, since it is a command in the list of animal-specific commands.Pawfection data are saved in the hard disk automatically after any command that changes the data. There is no need to save manually.
Pawfection data are saved automatically as a JSON file [JAR file location]/data/animalcatalog.json
. Advanced users are welcome to update data directly by editing that data file.
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 Pawfection home folder.
preferences.json
file created by the application before running the application again.Action | Format, Examples |
---|---|
Add | add n/NAME i/ID db/DOB da/DOA g/SEX b/BREED s/SPECIES |
Edit | edit INDEX [n/NAME] [g/SEX] [s/SPECIES] [b/BREED] [db/DOB] [da/DOA] |
Delete | delete INDEX e.g., delete 3 |
List | list |
Search | search [n/NAME] [i/ID] [g/SEX] [s/SPECIES] [b/BREED] [db/DOB] [da/DOA] e.g. search n/Pookie b/Poodle |
Addtask | addtask ANIMAL_INDEX TASK e.g. addtask 1 Feed Pookie |
Deletetask | deletetask ANIMAL_INDEX TASK_INDEX e.g. deletetask 1 1 |
Mark | mark ANIMAL_INDEX TASK_INDEX [TASK_INDEX]... e.g. mark 2 1 2 |
Unmark | unmark ANIMAL_INDEX TASK_INDEX [TASK_INDEX]... e.g. unmark 2 1 2 |
Reset | reset |
Help | help [COMMAND_NAME] |