Welcome to BookKeeper, your solution for efficient customer management for small business owners in the floral
industry.
This application is designed to streamline customer lists and enhance productivity for individuals operating small businesses with limited resources and manpower. With BookKeeper, you can easily manage customer information, track orders, and personalize your customer interactions, all through a user-friendly command-line interface.
For the detailed documentation of this project, see the BookKeeper website.
The project simulates an ongoing software project for a desktop application (called AddressBook) used for managing contact details.
- It is written in OOP fashion.
- It provides a reasonably well-written code base bigger (around 6 KLoC)
- It comes with a reasonable level of user and developer documentation.
This project is based on the AddressBook Level-3 project and is a part of the se-education.org initiative.
Adds a customer to the customer's storage.
Example: add <customer name>
Expected output:
Successfully added <customer name> to your list!
Delete selected customer from the customer's storage.
Example: delete <customer name>
Expected output:
Successfully removed <customer name> from the list
Edit selected customer information by adding more information such as Age, Phone Number, Past purchased record, Birthday, Address.
Example: edit <customer name>
Expected output:
Successfully edit <customer name> information
Indicating that this specific customer is important.
Example: vip <customer name>
Expected output:
Successfully set <customer name> as VIP
Adds an order into the order's storage, together with the customer name.
Example: add <customer name, order, due date>
Expected output:
An order has been added for <customer name>
Delete order of the specific customer.
Example: delete <customer name, order>
Expected output:
<customer name> order of <(order item)> has been cancelled
Edit the customer's order.
Example: edit <customer name, old order, new order>
Expected output:
Successfully edit <customer name> order
Prioritize the customer's order.
Example: prioritize <customer name, order>
Expected output:
Successfully prioritized <customer name, order>
View customer information, such as Name, Age, Phone Number, Past purchase record, Birthday, Address.
Example: view <customer name>
Expected output:
Jasper Tan info: [...]
Tan Qing Yong info : [...]
View Order information, such as order by when, who order, quantity.
Example: view <order>
Expected output:
Petite Bouquet:
1. total of <quantity> order by <customer name> on <date>
2. total of <quantity> order by <customer name> on <date>
[...]
Show how many orders has been completed.
Example: stat
Expected output:
<a list of stat>
View which florist sell the best and total sell quantity.
Example: view ranking
Expected output:
Top 1: Preserved Hydrangea Bouquet, total sold of <quantity>
[...]
Sort when the order is due based on the date (excluding prioritize order).
Example: sort orderdate
Expected output:
1. Jasper Tan, Eternal Love Preserved Red Rose Flower Bouquet, 24 Feb 2024
2. Tan Qin Yong, Mocha Romance Bouquet, 1 Apr 2024
[...]
Sort depending on what kind of order.
Example: sort ordertype
Expected output:
Mocha Romance Bouquet:
1. Jasper Tan, 24 Feb 2024
2. QinYong, 1 Apr 2024
[...]
sort the customer list.
Example: sort customer
Expected output:
1. Jasper Tan
2. Tan Qing Yong
[...]
Send notification when order is due within a week.
Show how many order left to be done.
Example: progress
Expected output:
Left <quantity>
Done <quantity>
Pending <Quantity>"
Show all possible next commands based on currently keyed in values.
Expected output:
/modi(fy)
Shows a list of commands that can be used.
Example: help
Expected output:
Commands list:
1. add. Adds a new customer to the list. Example: "add..."
[...]