By: Team T09-4 Since: Sep 2019 Licence: MIT

1. Introduction

Seller Manager Lite (SML) is for those who prefer to use a desktop app for managing their sales. More importantly, SML 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, SML can get your contact management tasks done faster than traditional GUI apps. Interested? Jump to Section 2, “Quick Start” to get started. Enjoy!

2. Quick Start

Get started on this journey by installing SML and take a quick tour of our main features.

2.1. Installation

  1. Ensure you have Java 11 or above installed in your Computer.

  2. Download the latest sellermanagerlite.jar here.

  3. Copy the file to the folder you want to use as the home folder for your Seller Manager Lite.

  4. Double-click the file to start the app. The GUI should appear in a few seconds.

  5. If Double-clicking does not work, open your command line prompt/terminal, navigate to it and input java -jar [filename] to run the file

2.2. User Interface

Ui

Type the command in the command box and press Enter to execute it. e.g. typing help and pressing Enter will open the help window. . Some example commands you can try:

  • list-c : lists all customer contacts

  • add-cn/John Doe c/98765432 e/johnd@example.com : adds a customer named John Doe to SML.

  • delete-c1 : deletes the 1st customer shown in the current list

  • exit : exits the app

Refer to Section 3, “Features” for details of each command.

3. Features

3.1. Overview

3.1.1. Clutter-free

SML helps you to organize your customers, phones, orders and schedules without clutter.

  • Use our smart tab view to toggle between customers, phones, orders, schedules and archives.

  • Search for the customer, phone and order you want with our find function.

3.1.2. Save Time

SML allows you to save time by:

  • allowing you to export to Microsoft Excel.

  • update your inventory with a single command.

  • find and copy information easily.

  • undo and redo when you make mistakes.

3.1.3. Track your sales performance

SML generates real-time sales charts for you:

  • Total Revenue (monthly)

  • Total Profit (monthly)

  • Total Cost (monthly)

3.2. Glossary

3.2.1. Common Terms

  1. SML
    An initialism for our application, Seller Manager Lite.

  2. Customer
    A person who buys from the seller.

  3. Phone
    Multi-purpose mobile computing device. Also known as smartphones.

  4. Order
    A request for goods.

  5. Schedule
    A meetup with a buyer to pass the goods. There can only be 1 schedule associated with an order at any one time. Duration of the schedule is set to be 1 hour.

3.2.2. SML-specific Terms

  1. Command
    An instruction that will produce an output once entered in SML.

  2. CustomerBook
    A CustomerBook is a list that stores Customer(s) that have been added into SML. Each customer entry comprises of CustomerName, ContactNumber and Email fields and others.

  3. PhoneBook
    A PhoneBook is a list that stores Phone(s) that have been added in SML. Each phone entry comprises of IdentityNumber, SerialNumber, Brand, PhoneName, Colour, Cost and Capacity.

  4. OrderBook
    An OrderBook is a list that stores Order(s) that have been added in SML. Each order entry comprises of a customer, a phone, OrderID, Price and OrderStatus.

  5. ScheduleBook
    A ScheduleBook is a list that stores Schedules(s) that have been added in SML. Each schedule entry comprises a Venue and Calendar with date and time.

  6. Archived
    Archived is a list that stores Completed or Cancelled orders ONLY.

  7. TabPanel
    A view that is similar to web browser Tabs.

  8. Add
    The action of putting an entry into CustomerBook, PhoneBook, OrderBook or ScheduleBook.

  9. Edit
    If you want to make changes to any entry, you can do so with this command.

  10. Delete
    Remove an entry from CustomerBook, PhoneBook or ScheduleBook.

  11. Find
    The action of searching for customers, phones or orders that contains the keywords that you specify.

  12. Switch
    Change the Tab Panel to Customer, Phone, Order, Schedule or Archived.

  13. Undo
    If you’ve made a mistake, you can simply revert to the previous command.

  14. Redo
    The inverse of undoing.

  15. Copy
    The action of copying an entry into the clipboard.

4. Tab Panels

To ensure that users wouldn’t suffer from information overload, we have divided the user interface into 5 partitions

  • Customer

  • Phone

  • Order

  • Schedule

  • Archived

Use our Switch commands ( refer to Section 7.6, “Switch Commands” ) to toggle between the tab panels! The cool thing about our commands is that it will automatically toggle to the Tab Panel that it belongs to.

5. Commands

Command Format

  • Words in UPPER_CASE are the parameters to be supplied by the user e.g. in add-c n/NAME, NAME is a parameter which can be used as add-c n/John Doe.

  • Items in square brackets are optional e.g n/NAME [t/TAG] can be used as n/John Doe t/friend or as n/John Doe.

  • Items with ​ after them can be used multiple times including zero times e.g. [t/TAG]…​ can be used as   (i.e. 0 times), t/friend, t/friend t/family etc.

  • Parameters can be in any order e.g. if the command specifies n/NAME c/CONTACT_NUMBER, c/CONTACT_NUMBER n/NAME is also acceptable. Note that this applies only to Customer, Phone, Order and statistics commands.

5.1. Viewing help: help

Lists out the commands you need to navigate SML.
Format: help

5.2. Customer Commands

Commands that work on customers in SML.

5.2.1. Switch to Customer Tab Panel: switch-c

Switches to Customer Tab Panel.

Format: switch-c

5.2.2. Add a customer: add-c

Adds a Customer to the CustomerBook.
This can be done in any Tab Panel.

Format: add-c n/NAME c/CONTACT_NUMBER e/EMAIL [t/TAG]…

Contact numbers should be 8-digits long.
A customer can have any number of tags, including 0.
Customers can share the same name.
Customers cannot share the same contact number or email.

Examples:

  • Adds a single customer

    1. add-c n/Steve Jobs c/12345678 e/stevejobs@apple.com

ug add c

5.2.3. Delete a customer: delete-c

Deletes a customer in SML. Note that deleting a customer will also delete the orders and schedules associated with the customer.

Format: delete-c INDEX

  • Deletes the customer at the specified INDEX.

  • The index refers to the index number shown in the displayed customer list.

  • The index must be a positive integer 1, 2, 3, …​

Examples:

  • Delete the 2nd customer.

    1. list-c

    2. delete-c 2

  • Delete the 1st customer after performing a find customer command.

    1. find-c alice

    2. delete-c 1

5.2.4. Find a customer: find-c

Finds customers whose fields contain any of the given keywords.

Format: find KEYWORD [MORE_KEYWORDS]…​

  • The search is case insensitive. e.g hans will match Hans

  • The search matches anywhere for the name, contact number, email and tags.

  • The search looks for partial matches e.g. ha will match hans. However, hns will not match hans.

  • Entries matching ALL fields will be returned (i.e. AND search).

    • e.g. find-c aaa bbb will match a customer with name Aaah and with tag bbb

Examples:

  • Find customers with keyword colleague

    1. find-c colleague

ug find c 1
  • Find customers with keywords charlotte oliveiro

    1. find-c charlotte oliveiro

ug find c 2

5.2.5. List the customers: list-c

List every customer in SML. Acts as a switch customer command as well.

Format: list-c

  • list-c

5.2.6. Clear the customers: clear-c

Clears every customer in SML.

Format: clear-c

  • clear-c

5.2.7. Edit a customer: edit-c

Edits an existing customer in CustomerBook. Note that orders in the order tab panel associated with the same customer will also be edited accordingly.

Format: edit-c INDEX [n/NAME] [c/CONTACT_NUMBER] [e/EMAIL] [t/TAG]…

  • Edits the customer at the specified INDEX. The index refers to the index number shown in the displayed customer list. The index must be a positive integer 1, 2, 3, …​

  • At least one of the optional fields must be provided.

  • Existing values will be updated to the input values.

  • When editing tags, the existing tags of the customer will be removed i.e adding of tags is not cumulative.

  • You can remove all the customer’s tags by typing t/ without specifying any tags after it.

Examples:

  • Edit the contact number and email of the 1st customer.

    1. edit-c 1 c/98721928 e/happygolucky@gmail.com

  • Clear all existing tags from the 2nd customer.

    1. edit-c 2 t/

5.2.8. Copy customer: copy-c

Copies a customer in SML to clipboard.

Format: copy-c INDEX

  • Copies the customer at the specified INDEX.

  • The index refers to the index number shown in the displayed customer list.

  • The index must be a positive integer 1, 2, 3, …​

Examples:

  • Copy the 1st customer.

    1. copy-c 1

  • Copy the 1st customer after performing find.

    1. find-c Lee

    2. copy-c 1

5.2.9. Email customer: email-c [coming in v2.0]

Emails a customer in SML. Opens Gmail on a web browser and drafts an email to a customer.

Format: email-c INDEX

5.3. Phone Commands

Commands that work on phones that you have in SML.

5.3.1. Switch to Phone Tab Panel: switch-p

Switches to Phone Tab Panel.

Format: switch-p

5.3.2. Add a phone: add-p

Adds a phone. Similar to adding a customer.

Format: add-p i/IDENTITY_NUMBER s/SERIAL_NUMBER n/NAME b/BRAND cp/CAPACITY (in GB) cl/COLOUR $/COST [t/TAG]…​

Identity Number (IMEI) should be 15 digits long.
Capacity can be 8GB, 16GB, 32GB, 64GB, 128GB, 256GB, 512GB or 1024GB. You do not need to type GB after the prefix cp/.
Cost must start with $ and can only have a maximum of 2 decimal place.
The maximum cost allowed is $999999999.99.
A customer can have any number of tags, including 0.

Examples:

  • Adds a single phone

    1. add-p i/543407158585522 s/A123bcfe29 n/iPhone 11 b/Apple cp/128 cl/Purple $/$900 t/NEW t/Cool

ug add p

5.3.3. Delete a phone: delete-p

Deletes a phone in SML. Note that deleting a phone will also delete the orders and schedules associated with the phone.

Format: delete-p INDEX

  • Deletes the phone at the specified INDEX.

  • The index refers to the index number shown in the displayed phone list.

  • The index must be a positive integer 1, 2, 3, …​

Examples:

  • Delete the 2nd phone.

    1. list-p

    2. delete-p 2

  • Delete the 1st phone after performing a find phone command.

    1. find-p alice

    2. delete-p 1

5.3.4. Find a phone: find-p

Finds phones whose fields contain any of the given keywords.

Format: find-p KEYWORD [MORE_KEYWORDS]…​

  • The search is case insensitive. e.g hans will match Hans

  • The search looks for partial matches e.g. ha will match hans. However, hns will not match hans.

  • The search matches anywhere for the name, serial number, identity number, brand, capacity, colour, cost and tags.

  • Entries matching ALL field will be returned (i.e. AND search).

    • e.g. find-c aaa bbb will match a phone with name Aaah and with tag bbb

Examples:

  • Find phones with keyword apple

    1. find-p apple

ug find p 1
  • Find phones with keywords 128 iphone

    1. find-p 128 iphone

ug find p 2

5.3.5. List the phones: list-p

List every phone in SML. Acts as a switch phone command as well.

Format: list-p

  • list-p

5.3.6. Clear the phones: clear-p

Clears every phone in SML.

Format: clear-p

  • clear-p

5.3.7. Edit a phone: edit-p

Edits the data fields of a phone. Note that orders in the order tab panel associated with the phone will also be edited.
Format: edit-p INDEX [i/IDENTITY_NUMBER] [s/SERIAL_NUMBER] [n/NAME] [b/BRAND] [cp/CAPACITY] [cl/COLOUR] [$/COST] [t/TAG]…

  • Edits the phone at the specified INDEX. The index refers to the index number shown in the displayed customer list. The index must be a positive integer 1, 2, 3, …​

  • At least one of the optional fields must be provided.

  • Existing values will be updated to the input values.

  • When editing tags, the existing tags of the phone will be removed i.e adding of tags is not cumulative.

  • You can remove all the phones' tags by typing t/ without specifying any tags after it.

Examples:

  • Edit the phone name and colour of the 1st phone.

    1. edit-c 1 n/iPhone 11 cl/Green

  • Clear all existing tags from the 2nd phone.

    1. edit-c 2 t/

5.3.8. Copy phone: copy-p

Copies a phone in SML to clipboard.

Format: copy-p INDEX

Examples:

  • Copies the phone at the specified INDEX.

  • The index refers to the index number shown in the displayed phone list.

  • The index must be a positive integer 1, 2, 3, …​

Examples:

  • Copy the 1st phone.

    1. copy-p 1

  • Copy the 1st phone after performing find.

    1. find-p apple

    2. copy-p 1

5.3.9. Add photo to phone: addphoto PHONE_INDEX fc/ [coming in v2.0]

Adds a photo to a phone in the database using the system’s user interface dialogue.

5.4. Order Commands

Commands that work on orders that you have.

5.4.1. Switch to Order Tab Panel: switch-o

Switches to Order Tab Panel.
Format: switch-o

5.4.2. Add an order: add-o

Adds an order to the list of orders.
Format: add-o c/CUSTOMER_INDEX p/PHONE_INDEX $/PRICE [t/TAG]…​

  • Negative prices will be rejected.

  • $0 is accepted to accommodate for free transactions.

  • The maximum price allowed is $999999999.99.

5.4.3. Find an order: find-o

Finds orders whose fields contain any of the given keywords.

Format: find-o KEYWORD [MORE_KEYWORDS]…​

  • The search is case insensitive. e.g hans will match Hans

  • The search looks for partial matches e.g. ha will match hans. However, hns will not match hans.

  • The search matches anywhere for id, customer, phone and price.

  • Entries matching ALL field will be returned (i.e. AND search).

    • e.g. find-o aaa bbb will match an order with id Aaah and with tag bbb

Examples:

  • Find orders with keyword iphone

    1. find-o iphone

5.4.4. Complete an order: complete

Completes the order, order status changed to COMPLETED.
COMPLETED orders will be shifted into the archived order tab panel.
Only SCHEDULED orders can be completed.
Phone associated with the order will also be deleted.

Format: complete INDEX

5.4.5. Cancel an order: cancel

Cancels the order at the specified index.
CANCELLED orders will be shifted into the archived order tab panel.

Format: cancel INDEX

5.4.6. List the orders: list-o

List all the orders on the list.

Format: list-o

5.4.7. Clear the orders: clear-o

Clears every order in SML.

Format: clear-o

5.4.8. Edit an order: edit-o

Edits the data fields of order.
Format: edit-o INDEX [c/CUSTOMER_INDEX] [p/PHONE_INDEX] [$/PRICE] [t/TAG]…

  • Edits the order at the specified INDEX. The index refers to the index number shown in the displayed customer list. The index must be a positive integer 1, 2, 3, …​

  • At least one of the optional fields must be provided.

  • Existing values will be updated to the input values.

  • When editing tags, the existing tags of the order will be removed i.e adding of tags is not cumulative.

  • You can remove all the order’s tags by typing t/ without specifying any tags after it.

Examples:

  • Edit the price of the 1st order.

    1. edit-o 1 $/$1000

  • Clear all existing tags from the 2nd order.

    1. edit-o 2 t/

5.4.9. Copy order field: copy-o

Copies an order to clipboard.

Format: copy-o INDEX

Examples:

  • Copies the order at the specified INDEX.

  • The index refers to the index number shown in the displayed order list.

  • The index must be a positive integer 1, 2, 3, …​

Examples:

  • Copy the 1st order

    1. copy-o 1

Prints the order lists with formatting that is appropriate for stock-take or order tracking. The order list is converted into PDF format before being printed.

Format: print-o

5.5. Schedule Commands

Commands that work on schedules you have.

5.5.1. Switch to Schedule Tab Panel: switch-s

Switches to Schedule Tab Panel.
Format: switch-s

5.5.2. Go to a specific date in the calendar: schedule

Shows the week of the date specified by the user.
Format: schedule cd/DATE

Date should be in the format YYYY.MM.DD with valid year, month and date. Only dates from the year 1970 onwards are valid.
Month and date can be single digits where applicable.

5.5.3. Add a schedule: add-s

Adds a schedule.
If there are conflicts with the existing schedules, use the -allow flag to allow clashing schedules.

Note:

  • You can add multiple schedules at the same time slot but it will affect the visibility of the order index on the schedule.

  • Venue that is too long will be truncated / not visible on the calendar schedule.

  • If a schedule spans across 2 days, the order index and venue might not be visible.

  • Simple hover your cursor over the schedule (where content is truncated), the full string (order index + venue) should appear as a temporary pop-up in a while.

Format: add-s ORDER_INDEX cd/DATE ct/TIME v/VENUE [t/TAG]… [-allow]

Example:

  • add-s 3 cd/2018.7.25 ct/18.00 v/Starbucks t/freebie -allow

ug add s
Order index should be a positive integer and must exist in the order list.
Date should be in the format YYYY.MM.DD with valid year, month and date. Only dates from year 1970 onwards are valid. Month and date can be single digits if applicable.
Time should be in the 24-hour format HH.MM with valid hour and minute. Hour and minute can be single digits if applicable.
Schedule can have any number of tags, including 0.

5.5.4. Delete a schedule: delete-s

Deletes a schedule.
Format: delete-s ORDER_INDEX

  • Deletes the schedule of the order at the specified ORDER_INDEX.

  • Order index is a positive integer and must exist in the order list.

Example:

  • Delete the schedule of the 2nd order.

    1. list-o

    2. delete-s 2

5.5.5. Edit a schedule: edit-s

Edits an existing schedule.
If the edited schedule has conflicts with the existing schedules, use the -allow flag to allow clashing schedules.
Note: You can add multiple schedules at the same time slot but it will affect the visibility of the order index and schedule venue on the calendar.

Format: edit-s ORDER_INDEX [cd/DATE] [ct/TIME] [v/VENUE] [t/TAG]… [-allow]

  • Edits the schedule of the order at the specified ORDER_INDEX.

  • At least one of the optional fields must be provided.

  • Existing values will be updated to the input values.

  • When editing tags, the existing tags of the schedule will be removed i.e adding of tags is not cumulative.

  • You can remove all the schedule’s tags by typing t/ without specifying any tags after it.

Examples:

  • Edit the date of the schedule of the 1st order and allow it to clash with the existing schedules.
    edit-s 1 cd/2019.12.12 -allow

5.5.6. Clear the schedules: clear-s

Clears every schedule in SML.

Format: clear-s

5.5.7. Customise schedule duration [coming in v2.0]

There will be an additional attribute in the schedule which takes in the duration of the event (in minutes).

5.6. Archived Orders Commands:

5.6.1. Switch to Archived Tab Panel: switch-a

Switches to Archived Order Tab Panel.

Format: switch-a

5.6.2. Clear the archived orders: clear-a

Clears every archived order in SML.

Format: clear-a

5.6.3. Find Archived Order: find-a [coming in v2.0]

Finds archived orders whose fields contain any of the given keywords.

Format: find-a KEYWORD [MORE_KEYWORDS]…​

5.6.4. List Archived Order: list-a [coming in v2.0]

List every archived order in SML. Acts as a switch archived order command as well.

Format: list-a

  • list-a

5.6.5. Delete Archived Order: delete-a [coming in v2.0]

Deletes an archived order in SML.

Format: delete-c INDEX

5.6.6. Copy Archived Order: copy-a [coming in v2.0]

Copies an archived order field to the clipboard.
Format: copy-a INDEX

5.7. General Commands

5.7.1. Undo: undo

Undo the previous command.
Currently, the following commands are undoable and redoable.

  1. Add Customer

  2. Edit Customer

  3. Delete Customer

  4. Clear Customer

  5. Add Order

  6. Edit Order

  7. Complete Order

  8. Cancel Order

  9. Clear Order

  10. Add Phone

  11. Edit Phone

  12. Delete Phone

  13. Clear Phone

  14. Add Schedule

  15. Edit Schedule

  16. Delete Schedule

  17. Clear Schedule

Format: undo

Examples:

  • Undo clear Customer Book

    1. clear-c

    2. undo

ug undo

5.7.2. Redo: redo

Redo the previous undone command. The inverse of undoing.

When you redo a delete command, it will specifically delete the customer/phone/order that was previously deleted. When you redo an add command, it will specifically add the customer/phone/order that was previously added.

Currently, the following commands are undoable and redoable.

  1. Add Customer

  2. Edit Customer

  3. Delete Customer

  4. Clear Customer

  5. Add Order

  6. Edit Order

  7. Complete Order

  8. Cancel Order

  9. Clear Order

  10. Add Phone

  11. Edit Phone

  12. Delete Phone

  13. Clear Phone

  14. Add Schedule

  15. Edit Schedule

  16. Delete Schedule

  17. Clear Schedule

Format: redo

Examples:

  • Redo clear Customer Book

    1. clear-c

    2. undo

    3. redo

ug redo
History: history

Views the command history of all your previous commands, starting from the latest to the earliest.

Format: history

Example:

ug history

5.7.3. Exiting the program: exit

Exits the program.

Format: exit

If there are any statistics window open when executing this, the application will not terminate until those windows are closed too.

5.8. Generate stats: generate-s

v1.4 only allows statistics on orders marked as Completed and has a Schedule.

This function calculates the three type of statistics as shown below.

All statistics that are calculated are only on orders in the archived panel that has been completed and with a valid schedule. Lacking any of this will cause its non-inclusion into the statistics calculation. The value calculated is the sum over the total time period within a month, meaning that it will take the date period, calculate the statistics for orders within that time period, split it by month and display it.

e.g Total revenue between 2019.11.12 and 2019.11.29 will calculate the order between these 2 dates, sum up the revenue (as it falls within a single month) and display this value.

  • Accepts two types of input:

    • Without date input - display total value for that particular statistics.

    • with date input - displays chart (Monthly value) and total value for that particular statistics.

Generates the statistics with no date input.

Used for calculating total profit, total revenue and total cost.
Format: generate-s s/stat

Type for stat includes: profit, revenue, cost
The argument must match these three words perfectly.

Shown below:

StatsExampleDefault

Generates the statistics with date input in chart format (in pop-up modal dialogue).
Format: generate-s s/stat d1/YYYY.MM.DD d2/YYYY.MM.DD
Example: generate-s s/revenue d1/2019.10.16 d2/2019.11.21
Format for the date is in YYYY.MM.DD e.g 2019.05.12

Shown below:

StatsExampleGraph
Date should be in the format YYYY.MM.DD with valid year, month and date. Only dates from year 1970 onwards are valid.
For dates in YYYY.MM.DD, the MM and DD argument can omit the leading 0 e.g 2019.1.1 is valid as long as the date is valid
Accuracy is guaranteed up to $0.01 only
The statistic type argument must match profit, revenue, cost (no upper case)

Limitations:

  • Range of dates affecting chart display

    • The chart can accept a large range of dates, but take note that above a certain threshold the gap between the months will change, depending on how large of a range you are calculating. This behaviour is intentional and not a bug.

  • Date range starts from 1970 onwards

    • Date of year input starts from 1970 onwards. This is enough to fit our use case. Anything lower will be rejected.

  • Auto truncation of labels and values

    • the X-axis labels will adjust automatically based on the range of inputs. This is intended to give users the flexibility with regards to the range of dates to be inputted. Above a certain range the interval between x-axis data will decrease e.g 2 months. Above a certain values, labels will be replaced by standard notation e.g 9999999E8.

  • Stats window data not updating

    • If you already have a stats window open and you complete an order, you will have to re-enter the statistic command to update that value in another window.

  • Manually Close the Statistic window before typing exit on the main app

    • If you already have a stats window open before you enter the exit command, the application will only stop running when the remaining statistic windows are closed manually.

  • Load time:

    • Do not be alarmed if the window does not pop up immediately upon click. For larger data sets we estimate at least a few seconds before the window will be loaded.

5.8.1. Average Statistics [coming in v2.0]

  • More advanced commands like average profit etc.

5.8.2. Different Charts [coming in v2.0]

  • Instead of just being able to display via a line chart, users will be able to select the type of chart

5.8.3. Export Chart to PDF [coming in v2.0]

  • User will be able to export their charts to pdf with a click of a button.

5.9. Export data: export

Exports application data into csv file.
If csv file of the input file name exists, the application data will be exported to the existing file.
If csv file of the input file name does not exist, the application data will be exported into a new file.

  1. Write the export command: Export FILENAME

ExportCommand
  1. The CSV file of file name "FILENAME" will be created in the data folder.

exportCSV

Format: export FILE_NAME

5.10. Autocomplete

As you type into the command line, suggestions will appear.

A maximum of 8 suggestions will appear in a dropdown menu, sorted by their degree of similarity to the entered text.

AutoCompleteCommandExample
Suggestions in Cyan mean that the entire word is suggested.
Suggestions in Yellow mean that the word is partially matched.
The system may lag and not work if you are typing too fast.
The system is case-sensitive.

5.10.1. add

AutoCompleteAddExample
  • When you enter add-c followed by a space, the system will suggest a list of prefixes you can enter, such as n/.

  • When you enter add-c n/, the system will suggest a list of names that belong to existing customers. This is helpful in checking if the data you are entering is duplicated.

  • The list of data that is suggested depends on the prefix that is last entered. For instance, if the last entered prefix was e/, it would instead suggest a list of existing emails.

  • As add-c, add-p and add-o commands can accept an unlimited number of tags, the system will endlessly suggest t/ prefixes and Tag arguments after all compulsory arguments are entered.

  • Autocomplete works similarly for all add commands and generate-s.

  • Even though these commands do not require the prefixes and arguments to be in any specified order, the autocomplete system enforces an artificial order to reduce confusion.

  • When you alter data in the application, the suggestions will be updated accordingly.

5.10.2. delete

AutoCompleteDeleteExample
  • For commands such as delete-c which take only a single index and no additional arguments, the system will suggest two numbers: 1 and N, where N is the largest valid index that can be entered. In this case, N corresponds to the number of customers displayed on the customer panel.

  • Commands of this type include delete, copy, complete, cancel.

5.10.3. edit

  • When you enter edit-c followed by a space, the system will suggest two numbers: 1 and N, where N is the largest valid index that can be entered.

  • When you enter edit-c 1 followed by a space, the system will suggest a list of prefixes you can enter, such as n/, c/, e/.

  • When you enter edit-c 1 c/, the system will suggest a list of contact numbers that belong to existing customers. This is helpful in checking if the data you are editing to is duplicated.

  • The list of suggestions depends on the prefix that is last entered. If the last entered prefix was i/, it would instead suggest a list of existing identity numbers.

  • As edit commands allow for optional arguments and multiple same arguments, the system is designed to always suggest the entire set of possible prefixes.

  • Autocomplete works similarly for all edit commands.

5.10.4. find

AutoCompleteFindExample
  • When you enter find-c followed by a space, the system will suggest values from every attribute of every customer in the database.

  • As find commands accept an unlimited number of keywords, the system will endlessly suggest the same set of possible keywords when a space is entered.

  • Autocomplete works similarly for all find commands.

5.10.5. switch

  • For simple commands such as switch-c, the system will suggest the command word and nothing else.

  • Simple commands include switch, export, list, clear, undo, redo, history, exit, help.

5.10.6. schedule

AutoCompleteScheduleExample
  • When you enter schedule followed by a space, the system will suggest dates that already have orders scheduled on them. This is helpful in checking for duplicates.

5.11. Other commands

5.11.1. Import data : import [coming in v2.0]

Imports csv file into the application.
If csv file of the input file exists, the file will be imported.
If csv file of the input file does not exist, command will not be executed.

Format: import FILE_NAME

5.11.2. Saving the data

SML data are saved in the hard disk automatically after any command that changes the data.
There is no need to save manually.

5.11.3. Encrypting data files [coming in v2.0]

All data files will be password-protected with a unique password of at least 8 characters long.

Format: encrypt PASSWORD

5.11.4. Notification for reminders/alerts [coming in v2.0]

Notification page to show reminders or alerts of upcoming schedules.

5.11.5. Export data to PDF [coming in v2.0]

Export the application data in SML to PDF format.

Format: export pdf

5.11.6. Add a new product [coming in v2.0]

This command is to allow users to define a new product (e.g. Tablet) with its fields. Users have to first key in the primary key name. The primary key is used to uniquely identify all records. (e.g. for Tablet, the primary key could be the Serial Number) This will be followed by the data type of the primary key. The data types that will be supported are #_DIGIT, #_CHARACTERS, #_ALPHANUMERIC, and also any of the existing fields (e.g. Cost, Price) The hashtag represents the length of the valid input for the primary key.

Format: create PRODUCT_NAME PRIMARY_KEY_NAME DATA_TYPE

5.11.7. Add fields to a new product [coming in v2.0]

This command allows users to add a field to their product. Users have to first key in the field name. This will be followed by the data type of the field. The data types that will be supported are #_DIGIT, #_CHARACTERS, #_ALPHANUMERIC, and also any of the existing fields. The hashtag represents the length of the valid input for the primary key.

Format: addfield PRODUCT_NAME FIELD_NAME DATA_TYPE

5.11.8. Autocomplete integrated with command history [coming in v2.0]

This extension of the autocomplete feature is to allow users to receive suggestions based on past inputs.

5.11.9. Alias [coming in v2.0]

This feature is to allow users to define customized command words to simplify long commands. For example, generate-s s/profit can be simplified to gp.

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 SML folder.

7. Command Summary

7.1. Customer Commands

Command Summary

switch-c

Switches to customer tab panel.

add-c n/NAME p/PHONE_NUMBER e/EMAIL [t/TAG]…

Adds a new customer into SML.

`edit-c INDEX [n/NAME] [p/PHONE] [e/EMAIL] [t/TAG]…​ `

Edits an existing customer.

delete-c INDEX

Deletes a customer and its associated orders and schedules.

clear-c

Deletes all customers and their associated orders and schedules.

find-c KEYWORD [MORE_KEYWORDS]

Finds the customers that contain the keywords in its field.

copy-c INDEX

Copies a customer into the clipboard.

7.2. Phone Commands

Command Summary

add-p i/IDENTITY_NUMBER s/SERIAL_NUMBER n/NAME b/BRAND cp/CAPACITY (in GB) cl/COLOUR $/COST [t/TAG]…​

Adds a new phone into SML.

edit-p INDEX [i/IDENTITY_NUMBER] [s/SERIAL_NUMBER] [n/NAME] [b/BRAND] [cp/CAPACITY] [cl/COLOUR] [$/COST] [t/TAG]…

Edits an existing phone.

delete-p INDEX

Deletes a phone and its associated orders and schedules.

clear-p

Deletes all phones and their associated orders and schedules.

find-p KEYWORD [MORE_KEYWORDS]

Finds the phones that contain the keywords in its field.

copy-p INDEX

Copies a phone into the clipboard.

7.3. Order Commands

Command Summary

add-o c/CUSTOMER_INDEX p/PHONE_INDEX $/PRICE [t/TAG]…​

Adds a new order into SML.

edit-o INDEX [c/CUSTOMER_INDEX] [p/PHONE_INDEX] [$/PRICE] [t/TAG]…

Edits an existing order.

complete INDEX

Completes an order and shift it into Archived Order Tab. Also deletes the associated phone.

cancel INDEX

Cancels an order and shift it into Archived Order Tab.

clear-o

Deletes all orders.

find-o KEYWORD [MORE_KEYWORDS]

Finds the orders that contain the keywords in its field.

copy-o INDEX

Copies an order into the clipboard.

7.4. Schedule Commands

Command Summary

schedule cd/DATE

Shows the week of the date specified by the user.

add-s ORDER_INDEX cd/DATE ct/TIME v/VENUE [t/TAG]… [-allow]

Adds a new schedule into SML.

edit-s ORDER_INDEX [cd/DATE] [ct/TIME] [v/VENUE] [t/TAG]… [-allow]

Edits an existing schedule.

delete-s ORDER_INDEX

Deletes a schedule.

clear-s

Deletes all schedules.

7.5. Archived Order Commands

Command Summary

clear-a

Deletes all archived orders.

7.6. Switch Commands

Command Summary

switch-a

Switches to archived order tab panel.

switch-s

Switches to schedule tab panel.

switch-o

Switches to order tab panel.

switch-p

Switches to phone tab panel.

switch-c

Switches to customer tab panel.

7.7. General Commands

Command Summary

generate-s s/stat d1/YYYY.MM.DD d2/YYYY.MM.DD

Generates the statistics with date input in chart format (in pop-up modal dialogue).

generate-s s/stat

Generates the statistics with no date input.

undo

Undo the last undoable command.

redo

Redo the undone command.

history

Views command history.

export <file name>

Exports application data into csv file.

help

Pops up a help window.

exit

Quits the application.