PowerBake is a desktop application designed to help small home bakery businesses track clients, manage pastry inventory, and organize orders efficiently.
Using PowerBake, you can efficiently manage your bakery with:
To enhance speed and productivity, PowerBake is optimized for a Command Line Interface (CLI) while still providing the benefits of a Graphical User Interface (GUI).
If you type quickly, PowerBake helps you process orders and manage your business faster than traditional GUI-based applications.
This guide is designed to be accessible to all users, whether you’re a new or experienced user.
If you are a new PowerBake user:
If you are an experienced PowerBake user:
Our goal is to make managing your bakery as smooth and efficient as possible, regardless of your level of experience.
For additional information, you may refer to the FAQ section or the Known Issues section.
Please note that this application was developed with Singapore-specific context in mind, so certain constraints or limitations may be unique to Singapore.
This section outlines the various elements found in this guide and explains what they represent.
Additional information are shown as a box with a "i" symbol.
This is an example of additional information.
Warnings are shown typically as a box with an exclamation mark as a symbol.
This is another warning style. Be careful!
Similarly, tips are shown within a box with a lightbulb as its symbol.
This is a tip you can follow for your convenience!
Let's learn how to get started with PowerBake! This guide will walk you through on how to install the application and how to use it!
By the end of this section, you will:
17 or above installed.Download the latest powerbake.jar file from our Github's latest release.
Find the file you have just downloaded. It is called powerbake.jar.
Create a new folder to use as the home folder for PowerBake.
Copy the file to the newly created folder.
How to copy the file into the new folder:
Right click on powerbake.jar and select Copy.
Navigate to the newly created folder.
Right click on the folder and select Paste.
At the end you should have an empty folder with the powerbake.jar file in it similar to this:

Now that you have installed PowerBake, lets learn how to launch it!
Open a command terminal
cmd then press EnterTerminal then press EnterCtrl + Alt + T to open the command terminal.How to use the terminal:
If you are unsure about how to use the terminal you can follow this guide.
Navigate into the folder you created earlier.
How to navigate into the folder:
Open the command terminal.
Type cd (with a space after cd).
Drag the folder into the terminal window.
Press Enter.
Run the following command to start PowerBake:
java -jar powerbake.jar
After a brief moment, you should see a window similar to this:
The first time you run PowerBake, it will contain sample data.
This helps you understand how the entries will appear and how the app will feel like when you start using it.
| Index | Component Name | Description |
|---|---|---|
| 1 | Command Box | You can type commands here and press Enter to execute them. |
| 2 | Result Display Box | Displays the result of executing a command. |
| 3 | Current View | Displays which tab you are currently viewing |
| 4 | List View | Displays the information of the tab you have currently open |
Now that you have PowerBake running, lets learn how to use it to manage your customers and orders in this tutorial!
This tutorial will guide you through the process of managing your bakery with PowerBake. When you're done you'll be familiar with the typical workflow of PowerBake!
Purpose: Before we can start managing our bakery, we need to have a list of our clients.
Imagine you have a a new client, Luke, who has just placed an order with you. Lets add him to PowerBake!
To add him to PowerBake, use this command in the Command Box
add client Luke -p 88776655 -a 5 Punggol Street -e luke@gmail.com
This command specifies the following details about Luke:
-p flag-a flag-e flagAfter hitting Enter, you should see a message indicating that Luke has been successfully added to PowerBake and the new entry should appear in the List View.
Congrats! You have successfully added your first client to PowerBake!
Purpose: Now that we have a client, we need to add the pastries that we offer to our clients.
So far we have created new a new client, Luke. Now, lets add a new pastry, Croissant, to PowerBake!
To add the Croissant to PowerBake, use this command in the Command Box and hit Enter:
add pastry Croissant -pr 5.5
This command specifies the following details about the Croissant:
-pr flagHitting Enter will display a message indicating that the Croissant has been successfully added to PowerBake and the new entry should appear in the List View.
Nice! You have successfully added your first pastry to PowerBake!
Purpose: Now that we have a client and a pastry, we can start taking orders!
Lets say Luke has placed an order for 2 Croissants and 2 Apple Pies. Lets add this order to PowerBake!
First, we have to find the index of the client Luke using the command in the Command Box:
find client luke
Here we find that the index of luke is 1!
Do note that when using the find command, the indexes of clients may change.
Make sure the index you use in the next step corresponds to the correctly in the list to the client you want to edit!
To add the order to PowerBake, use this command in the Command Box and hit Enter:
add order 1 -pn Croissant -q 2 -pn Apple Pie -q 2
You can add multiple pastries in a single order by sequentialy specifying the pastry and quantity for each pastry by using the -pn and -q flags.
For Example: add order 1 -pn Croissant -q 2 -pn Apple Pie -q 2 -pn Tart -q 3 ...
This command specifies the following details about the order:
-pn flag-q flagHitting Enter will display a message indicating that the order has been successfully added to PowerBake.
You can then view the order list using the command or clicking on the order tab:
view order
You can view the order in detail by finding the order index in the GUI and typing:
view order INDEX
New Orders automatically have the status of Pending.
Good Job! You have successfully added your first order to PowerBake! With this knowledge, you can now manage your bakery efficiently!
This step is optional but if you wish to start with a clean slate, use the following command in the Command Box:
clear
Do be careful, as this command irreversibly deletes ALL entries. This the operation cannot be undone.
This section explains the detailed list of commands and its usages which are available for you to use.
If you are familiar with PowerBake and just need a quick refresher on the commands available, you can click here for the Command Summary below.
Notes about the command format:
Words in UPPER_CASE are the parameters to be supplied by the user.
add client NAME -p PHONE -a ADDRESS -e EMAIL [-t TAGS]
NAME, ADDRESS, EMAIL, PHONE and TAGS are parameters which are to be replaced:
add client Luke -p 88776655 -a 5 Punggol Street -e luke@gmail.com -t client
Words in [Square Brackets] are optional parameters.
add client NAME -p PHONE -a ADDRESS -e EMAIL [-t TAGS]
TAGS is optional. You can use it like:
add client Luke -p 88776655 -a 5 Punggol Street -e luke@gmail.com -t client
OR
add client Luke -p 88776655 -a 5 Punggol Street -e luke@gmail.com
Extraneous parameters for commands that do not take in parameters (exit) will be ignored.
e.g. if the command specifies exit 123, it will be interpreted as exit.
Command words such as add and find are case-insensitive.
e.g. both the commands below are treated the same:
add client Luke -p 88776655 -a 5 Punggol Street -e luke@gmail.com
aDD client Luke -p 88776655 -a 5 Punggol Street -e luke@gmail.com
This section covers the different parameters used in PowerBake and their respective constraints.
To make sure commands to work successfully, ensure that all parameters follow the constraints mentioned below.
Characters with accents or diacritics (e.g., à, é, ô, ÿ) as well as those from non-Latin alphabets (e.g., Я (Cyrillic – Russian), あ (Japanese – Hiragana), ض (Arabic)), are currently not supported.
| Parameter | Description | Constraints | Example |
|---|---|---|---|
NAME | The name of your client |
| Luke JamesJ@mesジョン ドー俊涵 |
ADDRESS | The address of your client |
| 5 Sengkang StreetPGPR |
EMAIL | The email of your client |
| luke@gmail.comalex.ye_o+h@ex.amp-le.comluklu_+ke@gmail.com-luke@gmail.comjohn@examplenigel@example.cmihir@example-.comlucas@ex/ample.comnoel@example.c-m |
PHONE | The phone number of your client |
| 12345678+65 1234 5678 |
TAG | Extra details of your client |
| Gluten FreeEgg/Cheese Only |
PASTRY_NAME | The name of your pastry |
| Chocolate EclairCroissantChocolate Éclair |
PRICE | The price of your pastry |
| 312.50.99999.990One hundred-11.995.991000 |
QUANTITY | The number of pastry items ordered |
| 1999One00.91000 |
CLIENT_INDEX | The index of the client based on the list shown |
| 1 (only if client exists)0-1 |
INDEX | General index to reference client/pastry/order shown on the list |
| 1 (only if client/pastry/order exists)0-1 |
KEYWORD | Used in find command to search the relevant client/pastry/order list |
| Apple PieJohn Doe |
add clientThe add client allows you to seamlessly add key details of your client into the record. These details will then be integrated into keeping track of orders in the future.
add client NAME -p PHONE -a ADDRESS -e EMAIL [-t TAGS]
NAME: The name of your client.-a ADDRESS: The address of your client, 5 - 100 characters-e EMAIL: The email address of you client, follows valid format-p PHONE: 8-digit phone number of your client-t TAG: Extra details of your clientRefer to the Parameters section for more details about the parameters and their individual constraints.
All fields (except for TAG) are compulsory and must be not empty.
TAG can be left blank, you can add as many tags as you want.
PowerBake checks for duplicate clients using PHONE number. Adding of duplicate clients will be ignored and an error message will be shown.
Adding a client, Luke, into Powerbake application. He lives at 5 Sengkang Street and his email address is luke@gmail.com. His phone number is 88776655.
To add luke, simply type:
add client Luke -p 88776655 -a 5 Sengkang Street -e luke@gmail.com
Once enter is hit, a output message will be displayed of your success.
You can use the edit command to change the client details if you made a mistake here.
add pastryThe add pastry command allows you to add key details of pastries. These details will then utilised when keeping track of pastry orders in the future.
add pastry PASTRY_NAME -pr PRICE
PASTRY_NAME: The name of your pastry.-pr PRICE: The price of your pastry, supports up to 2 decimal places.Refer to the Parameters section for more details about the parameters and their individual constraints.
All fields are compulsory and must not be empty.
PowerBake checks for duplicate pastry using PASTRY_NAME, this check is case-insensitive. Adding of duplicate pastries will be ignored and an error message will be shown.
Adding a pastry, Croissant, into PowerBake application. Price is 5.50.
To add the Croissant, simply type
add pastry Croissant -pr 5.5
Once enter is hit, a output message will be displayed of your success.
You can use the edit command to change the pastry details if you made a mistake here.
add orderThe add order command allows you to create orders for clients with their ordered pastries.
add order CLIENT_INDEX -pn PASTRY_NAME -q QUANTITY [-pn PASTRY_NAME -q QUANTITY]
CLIENT_INDEX: The index of the client based on the list shown-pn PASTRY_NAME: The name of the pastry to be added-q Quantity: The quantity of pastry to be added to the orderRefer to the Parameters section for more details about the parameters and their individual constraints.
You can add multiple pastries in a single order by sequentialy specifying the pastry and quantity for each pastry by using the -pn and -q flags.
For Example: add order 1 -pn Croissant -q 2 -pn Apple Pie -q 2 -pn Tart -q 3 ...
Adding an order for client 1 an order of 10 Brownie and 20 Apple Pie into PowerBake application.
To add the Croissant, simply type
add order 1 -pn Brownie -q 10 -pn Apple Pie -q 20
Once enter is hit, a output message will be displayed of your success.
PowerBake assumes that once an order is created, it has been mutually agreed upon and is intended solely for fulfillment.
Therefore, if you made a mistake here, you should use the delete command and add the correct order again.
You can use the edit command to change only the status of the order.
deleteThe delete command helps you maintain a clean and relevant list of clients, pastries and orders.
delete client/pastry/order INDEX
INDEX: Represents position of the client/pastry/order list that you wish to remove.Refer to the Parameters section for more details about the parameters and their individual constraints.
The INDEX should be positive integer. For instance: 1, 2, etc.
This corresponds to the position of the client/pastry/order currently displayed in the list.
Deleting a client or a pastry will not delete the related order.
The reasoning behind this is that PowerBake assumes that orders are mutually agreed upon creation and are purely meant for tracking order fufillment, therefore, the order should maintain its integrity using its original form.
Do be careful, as this command irreversibly deletes the selected entry. This the operation cannot be undone.
If you want to remove the fifth client on the list, the command would look like this:
delete client 5
Before: 
After hitting Enter, you will see the fifth client removed from the list.
The remaining clients will adjust their index numbers accordingly.
After: 
If you want to remove the second pastry on the list, the command would look like this:
delete pastry 2
After hitting Enter, you will see the second pastry removed from the list.
The remaining pastries will adjust their index numbers accordingly.
If you want to remove the third order on the list, the command would look like this:
delete order 3
After hitting Enter, you will see the third order removed from the list.
The remaining orders will adjust their index numbers accordingly.
editThe edit command offers flexibility in managing details of Clients, Pastries or Orders in PowerBake.
To edit Client details:
edit client INDEX [-n NAME] [-p PHONE] [-e EMAIL] [-a ADDRESS] [-t TAGS]
To edit Pastry details:
edit pastry INDEX [-n PASTRY_NAME] [-pr PRICE]
To edit Order details:
edit order INDEX -s STATUS
INDEX: Represents position of the client/pastry/order list that you wish to edit.-n NAME: New name for your client/pastry that you wish to edit to-p PHONE: New phone number for your client that you wish to change-e EMAIL: New email for your client that you wish to use-a ADDRESS: New address for your client that you wish to update-t TAGS: New tags for your client to be associated with the client-n PASTRY_NAME: New pastry name to be edited to-pr PRICE: New price of the pastry to be updated to-s STATUS: New Status of the order to be updated toRefer to the Parameters section for more details about the parameters and their individual constraints.
The INDEX should be positive integer. For instance: 1, 2, etc.
This corresponds to the position of the client/pastry/order currently displayed in the list.
At least one field needs to be edited.
Editing client will update the related orders to allow update of contact details. However, editing a pastry will not update the values in the related orders.
This is to maintain the integrity of the original order details, ensuring that what was agreed upon at the time of ordering remains unchanged, even if the pastry's information is later modified.
If you want to edit the name and phone of the first client on the list, the command would look like this:
edit client 1 -n John -p 97432170
After hitting Enter, you will see the first client edited on the list.
If you want to edit the price of the second pastry on the list, the command would look like this:
edit pastry 2 -pr 9.00
After hitting Enter, you will see the second pastry updated from the list.
If you want to edit the status of the third order on the list, the command would look like this:
edit order 3 -s delivered
After hitting Enter, you will see the third order updated from the list.
viewThe view command offers a detailed insight of the client, pastry and order lists.
An in-depth look to access client information, types of pastries available and orders made thus far.
To view the various tabs:
view client/pastry/order
To view specific order:
view order INDEX
client: Access the client list.pastry: Access the pastry list.order: Access the order list.INDEX: The order index shown on the list that you wish to view.Refer to the Parameters section for more details about the parameters and their individual constraints.
The view command allows only either viewing client, or viewing pastry, or viewing order or viewing specific orders.
The INDEX should be positive integer. For instance: 1, 2, etc.
This corresponds to the position of the client/pastry displayed in list.
If you wish to view the client details, the command would be:
view client
After hitting Enter, you will see the client details being displayed on the GUI.
Here, you can observe all the details regarding client, such as their name, address, email address, phone number and tag.
If you wish to view the pastry details, the command would be:
view pastry
After hitting Enter, you will see the pastry details being displayed on the GUI.
Here, you can observe all the details regarding pastry, such as the name and the price of the pastry.
If you wish to view the order details, the command would be:
view order
After hitting Enter, you will see the order details being displayed on the GUI.
Here, you can observe the general details regarding order, such as their order number, client name, status.
If you wish to view the specific order details, the command would be:
view order INDEX
After hitting Enter, you will see the order details being displayed on the GUI.
Here, you can observe all the details regarding order, such as their order number, client name, pastry name, quantity and status.
You can also use the keyboard shortcut of Ctrl + Tab to tab between view tabs.
Alternatively, you can switch between client, pastry and order by utilising the GUI button.

findThe find command is a powerful tool to help you quickly search and locate specific client/pastry/order in PowerBake.
find client/pastry/order KEYWORD [MORE_KEYWORDS]
client/pastry/order: Represents which type of entity you wish to find from.KEYWORD: Returns searches that matches or partially matching to the keywordRefer to the Parameters section for more details about the parameters and their individual constraints.
Hans Bo will match Bo HansHans Bo will return Hans Gruber, Bo Yangclient/pastry/order with matching or partially matching KEYWORD.
ha will still return Hans Bofind order searches based on the NAME of the client who placed the order.When you use the find command, it filters the list and displays only matching entries, which may change the order and number of items shown.
As a result, the indexes in this filtered list will differ from those in the original, unfiltered list.
Therefore, any command that uses INDEX or CLIENT_INDEX must refer to the index as shown in the currently displayed (filtered) list — not the full list — to ensure it targets the correct entry.
To reset any of the list use the view command!
If you want to find the name of the first client on the list, the command would look like this:
find client Alex
OR
find client lex
After hitting Enter, the list will return Alex Yeoh.
If you want to find name of the Brownie and Apple Pie pastry on the list, the command would look like this:
find pastry Brownie Apple
After hitting Enter, the list will be updated to match the search.
If you want to find the order that belongs to a client on the list, the command would look like this:
find order Charlotte
After hitting Enter, you will see the only the orders that belongs to Charlotte shows up.
clearThe clear command deletes all clients, pastries and orders in PowerBake.
clear
The clear command does not require any parameters.
Do be careful, as this command irreversibly deletes ALL entries. This the operation cannot be undone.
helpThe help command provide popup message showing how to access this User Guide.
help
The help command does not require any parameters.
You can also get help by clicking on the Help button or pressing F1 on your keyboard.
exitThe exit command lets you have a swift way of closing PowerBake.
It is a simple command, where the application terminates while safeguarding all the data and changes you have made.
exit
The exit command does not require any parameters.
This section will go through how order, pastry and customer details are stored.
PowerBake data is saved automatically after any command that adds, deletes or edit. There is no need for any manual saving.
CAUTION: Adding data in the wrong format could lead to potential errors.
PowerBake data is saved in [JAR file location]/data/addressbook.json, experienced users can add or delete clients and pastries within the json file.
Caution:
If your changes to the data file makes its format invalid, PowerBake 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 PowerBake 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.
java -version
The command will display openjdk version 17.0.13 or java version 17.0.13 on the first line of the output, indicating that Java 17 is installed. The minor version numbers (the last two digits) may differ from ours.
cmd then press EnterTerminal then press EnterCtrl + Alt + T to open the command terminal.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 minimized, and no new Help Window will appear. The remedy is to manually restore the minimized Help Window.| Command | Usage | Example |
|---|---|---|
| Add Client | add client NAME -p PHONE -a ADDRESS -e EMAIL [-t TAGS] | add client Luke -a 5 Punggol Street -e luke@gmail.com -p 88776655 -t client |
| Add Pastry | add pastry PASTRY_NAME -pr PRICE | add pastry Tart -pr 3.40 |
| Add Order | add order CLIENT_INDEX -pn PASTRY_NAME -q QUANTITY [-pn PASTRY_NAME -q QUANTITY] | add order 1 -pn Brownie -q 10 -pn Apple Pie -q 20 |
| Delete Client | delete client INDEX | delete client 1 |
| Delete Pastry | delete pastry INDEX | delete pastry 1 |
| Delete Order | delete order INDEX | delete order 1 |
| Edit Client | edit client INDEX [-n NAME] [-p PHONE] [-e EMAIL] [-a ADDRESS] [-t TAGS] | edit client 1 -n John -p 97432170 |
| Edit Pastry | edit pastry INDEX [-n PASTRY_NAME] [-pr PRICE] | edit pastry 2 -pr 9.00 |
| Edit Order | edit order INDEX -s STATUS | edit order 3 -s delivered |
| View Client | view client | view client |
| View Pastry | view pastry | view pastry |
| View Order | view order | view order |
| View Specific Order | view order INDEX | view order 1 |
| Find Client | find client KEYWORD [MORE_KEYWORD] | find client Alex |
| Find Pastry | find pastry KEYWORD [MORE_KEYWORD] | find pastry Brownie |
| Find Order | find order KEYWORD [MORE_KEYWORD] | find order Charlotte |
| Clear | clear | clear |
| Help | help | help |
| Exit | exit | exit |
| Term | Explanation |
|---|---|
| Client/Customer | A client/customer in a bakery is a regular or business customer who places orders for baked goods, often in bulk or on a recurring basis. |
| Command | A user input that directs Powerbake to carry out a particular action. |
| Command Line Interface (CLI) | An interface where users interact with a system by entering text commands into a terminal or console. |
| Command Terminal | A text-based interface for interacting with the computer. Examples include the Command Prompt on Windows, Terminal on macOS, and bash on Linux. |
| Graphical User Interface (GUI) | An interface that enables users to engage with a system using visual elements like icons and other graphical indicators. |
| Home Folder | The folder where Powerbake is saved. The home folder is used to store data files used by Powerbake. |
| Hyperlink | A clickable reference on a webpage that directs users to another location or file, either on the same page or a different one. |
| JSON (JavaScript Object Notation) | A simple, human-readable data format used for data exchange that is easily parsed and generated by machines. |
| Local Storage | Local storage in an application refers to a method of storing data on a user's device, allowing the application to save information persistently without requiring a server connection. |
| Mainstream OS | Mainstream operating systems such as Windows, macOS and Linux. |
| Orders | Orders in a bakery refer to customer requests for specific baked goods, either for immediate purchase or scheduled pickup/delivery, often including custom or bulk requests. PowerBake assumes orders are mutually agreed upon creation and orders are used purely for order fufillment. |
| Parameter | A variable in a command that stands in for a specific piece of information that must be supplied when the command is executed. |
| Pastry | A Pastry in a bakery refers to baked goods made from dough or batter, often enriched with butter, sugar, and fillings like cream, fruit, or chocolate, including items such as croissants, danishes, and tarts. |
| Person | Used interchangeably between client or customers in development |