By: AY1920S2-CS2103-W15-4 Since: Feb 2020 Licence: MIT
1. Introduction
Pet Store Helper (PSH) is for owners of pet stores who prefer to use a desktop app for managing their store. More importantly, PSH is optimized for those who prefer to work with a Command Line Interface (CLI) while still having the benefits of a Graphical User Interface (GUI). If you can type fast, PSH can help you get your work done faster than traditional GUI apps.
It is based on 2 main systems, one that manages pets, and another one that organises showering schedules.
Interested? Jump to the Section 2, “Quick Start” to get started. Enjoy!
2. Quick Start
-
Ensure you have Java 11 or above installed in your Computer.
-
Download the latest petStoreHelper.jar here.
-
Copy the file to the folder you want to use as the home folder for your Pet Shop Helper.
-
Double-click the file to start the app. The GUI should appear in a few seconds.
-
Type the command in the command box and press Enter to execute it.
e.g. typinghelp
and pressing Enter will open the help window. -
Some example commands you can try:
-
display p
: Displays the list of all pets. -
addpet n/Teddy g/male b/01/01/2019 s/dog f/brand A:15 f/brand B:20 t/small t/lazy
: Adds a new pet with nameTeddy
and other details as given. -
display s
: Displays the current schedule as a list of slots. -
addslot n/Teddy t/16/11/2020 1300 d/90
: Adds a new showering slot for Teddy with details as given. -
exit
: Exits the program.
-
-
Refer to Section 4, “Commands” for details of each command.
3. Features
3.1. Pet Tracker System
Details about each pet kept track of are its name, gender, species, date of birth and dietary requirements. In addition, tags for each pet may also be added.
3.1.1. Pet Food Inventory
This shows the a list of all pet food (inventory) and the needed amount per week. Double-click on each food item to view the breakdown for each pet individually.
3.2. Schedule System
There are 2 ways of displaying the slots tracked by the schedule system: either sequentially as a list of slots, or in the form of a calendar view.
3.2.1. Slots list view
Slots displayed here are arranged in chronological order, with the earliest slot displayed first. In the case where multiple slots start at the same time, the slot with the shortest duration is shown first.
3.2.2. Calendar view
Slots that fall on the same day are displayed on the same row. They are then positioned horizontally according to the time they start. The width taken up by each slot in this view is proportional to its duration.
If there are conflicted slots, then the time period in which these conflicted slot lie in is simply rendered as single "conflicted" slot.
3.3. Statistics
The statistics of the pet store shown are:
-
The proportion of species of pets,
-
The planned schedule for the next 3 days, and
-
A breakdown of how many of each type of pet food is needed in a week.
4. Commands
Command Format
-
Words in
UPPER_CASE
are the parameters to be supplied by the user e.g. inadd n/NAME
,NAME
is a parameter which can be used asadd n/John Doe
. -
Items in square brackets are optional e.g
n/NAME [t/TAG]
can be used asn/Some Pet t/lazy
or asn/Some Pet
. -
Items with
…
after them can be used multiple times including zero times e.g.[t/TAG]…
can be used ast/cute
,t/small t/white
etc. -
Parameters can be in any order e.g. if the command specifies
n/NAME g/GENDER
,G/GENDER n/NAME
is also acceptable.
4.1. Common / general commands
4.1.3. Changing the display: display
Changes the display board to show the specified system.
Format: display SYSTEM
Examples:
-
display p
Displays all pets. -
display s
Displays all slots as a list. -
display c
Displays all slots in calendar view. Conflicted slots are shown in red color. Non-conflicted slots are in pink. -
display i
Displays a list of all pet food (inventory) and the needed amount per week.
4.1.4. Saving the data: backup
All data is saved to the hard disk automatically after any command that changes the data.
There is no need to save manually.
However, it is possible to save a separate backup file through the backup
command.
The file name is a timestamp in the format "yyyyMMdd_HH_mm_ss".
4.1.5. Retrieving data: load
Loads the specified file from the hard disk.
Format: load FILE_NAME
Examples:
-
load 20200402_21_54_52
Loads the file 20200402_21_54_52.json from the hard disk. -
load pettracker
Loads the file pettracker.json from the hard disk.
4.1.6. Statistics: stats
Provides statistics about the pet tracker, schedule system, and inventory.
-
There is a pie chart representing the ratio of different pet species.
-
A timetable that shows an overall schedule for recent 3 days.
-
A bar chart that shows the weekly consumption of different pet food.
4.2. Pet-related commands
4.2.1. Adding a pet: addpet
Adds a pet to the pet tracker system.
Format: addpet n/NAME g/GENDER b/DATE OF BIRTH s/SPECIES f/FOOD : AMOUNT [t/TAG]…
Example:
-
addpet n/Garfield g/male b/01/01/2019 s/cat f/Brand A: 30 t/lazy t/lasagna
4.2.2. Finding pets by names: findpets
Finds pets whose name contains any of the given keywords. The application will automatically change to the pet display system.
Format: findpets PETNAME [MORE PETNAMES]…
Example:
-
findpets garfield odie
Returns a list of pets, whose names either containgarfield
orodie
or both.
4.2.3. Editing a pet: editpet
Edits any field of an existing pet in the system.
Format: editpet INDEX [n/NAME] [g/GENDER] [t/TAG]…
Example:
-
display p
editpet 2 n/Coco b/02/01/2020 t/cuddly t/grey
Overwrites information of the 2nd pet in the system with name "Coco", date of birth "2 Jan 2020, and 2 tags of “cuddly”, “grey”. -
findpets garfield
editpet 2 n/Coco
Overwrites the name of the 2nd pet in the results offindpets garfield
to "Coco" -
display s
editpet 1 n/garfield
Overwrites name of the 1st pet in the whole pet list to be "Garfield".
4.2.4. Deleting a pet: deletepet
Deletes the specified pet from the system.
Format: deletepet INDEX
Examples:
-
display p
deletepet 2
Deletes the 2nd pet in the system. -
findpets n/garfield
deletepet 2
Deletes the 2nd pet in the results of thefindpets garfield
command. -
display i
deletepet 2
Deletes 2nd pet in the whole pet list.
4.3. Schedule-related commands
4.3.1. Adding a slot: addslot
Adds a new occupied slot to the schedule.
Format: addslot n/PETNAME t/DATETIME d/DURATION
Examples:
-
addslot n/Coco t/16/11/2020 1300 d/90
-
addslot n/Brian Griffin t/17/11/2020 1500 d/45
4.3.2. Finding slots: findslots
Finds slots occupied by a pet matching the specified name, or slots occupied on the given date, or both. Slots that matched the query will be returned and displayed sequentially as a list.
Format: findslots [n/PETNAME] [t/DATE]
Example:
-
findslots n/Brian Griffin
Displays the slots occupied byBrian Griffin
,Brian Griffin Jr
,Griffin
orBrian Smith
. -
findslots n/Coco t/16/11/2020
Displays the slots occupied byCoco
on16/11/2020
.
4.3.3. Edting a slot: editslot
Edits an existing occupied slot in the schedule.
Format: editslot INDEX [n/PETNAME] [t/DATETIME] [d/DURATION]
Examples:
-
display s
editslot 1 t/16/11/2020 1300 d/120
Edits the datetime and duration of the 1st slot to be16/11/2020 1300
, and120
minutes respectively. -
findslots t/1/1/2020
editslot 3 d/45
Edits the duration of the 3rd slot in the search results offindslots
to be45
minutes. -
display p
editslot 12 n/Brian Griffin
Edits the pet occupying the 12th slot to beBrian Griffin
.
4.3.4. Deleting a slot: deleteslot
Deletes the specified slot from the schedule.
Format: deleteslot INDEX
Examples:
-
display s
deleteslot 2
Deletes the 2nd slot in the schedule. -
findslots n/Coco
deleteslot 2
Deletes the 2nd slot in the search results offindslots
. -
display i
deleteslot 2
Deletes the 2nd slot in the schedule.
4.3.5. Showing all conflicts: conflicts
Displays the slots that have a conflict, i.e., an overlap in time with another occupied slot. The conflicted slots are displayed sequentially as a list.
Format: conflicts
5. Command Summary
-
Common / general commands
-
Help:
help
-
Exit:
exit
-
Display:
display SYSTEM
e.g.display p
e.g.display s
e.g.display c
e.g.display i
-
Statistics:
stats
-
Back up:
backup
-
Load backup:
load FILE_NAME
e.g.load 20200402_21_54_52
-
-
Pet-related commands
-
Add pet:
addpet n/NAME g/GENDER b/DATE OF BIRTH s/SPECIES f/FOOD NAME: AMOUNT [f/FOOD NAME: AMOUNT] [t/TAG]…
e.g.addpet n/Garfield g/male b/01/01/2019 s/cat tabby t/lazy f/Brand A: 30 t/lasagna
-
Find pet:
findpets [n/NAME]… [t/TAG]…
e.g.findpets n/garfield n/odie t/jon
-
Edit pet:
editpet INDEX [n/name] [b/DATE OF BIRTH] [t/TAG]…
e.g.editpet 2 n/garfield t/cuddly
-
Delete pet:
deletepet INDEX
e.g.deletepet 2
-
-
Schedule-related commands
-
Add slot:
addslot n/PETNAME t/DATETIME d/DURATION
e.g.addslot n/Coco t/16/11/2020 1300 d/90
e.g.addslot n/Brian Griffin t/17/11/2020 1500 d/45
-
Find slot:
findslots [n/PETNAME] [t/DATE]
e.g.findslots n/Brian Griffin
e.g.findslots t/20/2/2020
e.g.findslots n/Coco t/16/11/2020
-
Edit slot:
editslot INDEX [n/PETNAME] [t/DATETIME] [d/DURATION]
e.g.editslot 1 t/16/11/2020 1300 d/120
e.g.editslot 3 d/45
e.g.editslot 12 n/Brian Griffin
-
Delete slot:
deleteslot INDEX
e.g.deleteslot 2
-
Show conflicts:
conflicts
-
6. 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 Pet Shop Helper folder.