SplitLah
SplitLah is a desktop application with a Command Line Interface (CLI) for splitting bills amongst you and your friends after a group outing. Each group outing can consist of several activities with different people paying the bill for each activity. SplitLah does the work of calculating how much each participant owes and who they must pay at the end of the outing.
SplitLah also consolidates all debts intelligently so that they can be paid off with the fewest number of transactions possible, helping you reduce time spent on making unnecessary transactions. SplitLah remembers your information by saving your outings and activities so that you can look up past activities anytime you want. If you can type fast, SplitLah can manage your outings faster than applications using a Graphical User Interface (GUI).
Who SplitLah is for:
- People who go on group outings often and need to split bills.
- People who go on group outings where different people pay for different activities, making bill-splitting harder.
- People who dislike manually calculating how much everyone owes across several activities.
- People who want to manage outings with multiple social circles in one application.
Contents
- How to use this user guide
- Quick Notes
- Warnings
- Quick Start
- How SplitLah works
- Features
- FAQ
- Command Summary
How to use this user guide
- Each feature that SplitLah supports is known as a command.
- These commands are divided into five sections: Session Management, Activity Management, Transaction Management, Group Management and Miscellaneous.
- Each command has its own section in this guide explaining them in greater detail.
- The format for each command is enclosed within a
code block
, so that they can be copied directly into SplitLah if needed.- Example:
help
- Example:
- In each command:
- The points indicated under 💡 are important notes to be mindful of when using the command.
- The points indicated under ⚠️ are warnings that you should pay attention to when using the command.
- The button at the end of each section or subsection provides a hyperlink back to the table of contents that includes it.
Quick Notes
- Allowed characters for values:
- Names of
Sessions
,Activities
andGroups
can have all printable ASCII characters. - Names of participants can only contain:
A-Z
,a-z
- Decimals (up to 2 decimal places):
3.5
,3.95
- Unique identifiers must be positive integers less than or equal to
2147483647
:1
,3
- Dates (DD-MM-YYYY or today):
02-04-2022
,today
- Names of
- A forward slash
/
indicates a delimiter and is used to separate commands into parts. Each command’s documentation specifies the required delimiters and their purpose.- Example:
/n
,/sid
- Therefore, the forward slash
/
should only be used to indicate the delimiters, and never in the arguments.
- Example:
- Parameters enclosed in
[ ]
must be supplied by the user.- Example:
[SESSION_ID]
- Example:
- Parameters with an ellipsis
...
indicate that the user can supply multiple values.- Example:
[COST1 COST2 ...]
- Example:
- Parameters enclosed within
[<
and>]
indicates that the arguments are optional.- Example:
[</gst [GST_PERCENTAGE]>] [</sc [SERVICE_CHARGE]>]
- Example:
- Parameters enclosed within
{
and}
indicates that at least one of the delimiters and their respective arguments have to be supplied.- Example:
{/pl [NAME1 NAME2 ...] /gid [GROUD_ID]}
- Example:
Warnings
- If the save file cannot be created, nothing will be saved during the runtime of SplitLah.
- The save file is not meant to be read or edited.
- If the save file is edited, the application will not be able to load the corrupted save file.
- A corrupted save file will then be replaced with a new save file upon running SplitLah, all previously saved information will be lost.
Quick Start
- Ensure that you have Java 11 or above installed.
- Download the latest .jar version of SplitLah from here
- Copy the file to the folder you wish to use as a home folder for SplitLah.
- Open a terminal and set the working directory to the home folder.
- Start SplitLah by executing
java -jar SplitLah.jar
in the terminal. - Type in a command and press Enter to execute it.
- Refer to Features for a more in-depth explanation of all commands available.
How SplitLah works
- An activity represents a single group activity, paid for by one person. It stores a list of its participants,
the payer and how much each participant owes.
- Example:
Lunch at a restaurant
- Consisting of the following participants:
Alice
,Bob
,Charlie
- Paid for by:
Alice
- Example:
- A session represents a group outing that that spans a period of time and stores activities,
as well as a list of participants. Each activity can have a different payer.
- Example:
Bob's birthday
- Consisting of the following participants:
Alice
,Bob
,Charlie
- Consisting of the following activities:
Breakfast at McDonald's
,Lunch at a restaurant
,Movie at a theatre
- Each paid for by a different person.
- Example:
- At the end of a session, SplitLah calculates how much each person owes and who they need to pay. This information is displayed in an easy-to-read summary.
Features
Session Management
A session represents a group outing that involves a list of participants and spans an arbitrary period of time containing activities.
Overview
- Creating a session:
session /create
- Deleting a session:
session /delete
- Editing a session:
session /edit
- Viewing a session:
session /view
- Listing all sessions:
session /list
Creating a session: session /create
Creates a session so that you can manage your group outings.
Format:
session /create /n [SESSION_NAME] /d [SESSION_DATE] {/pl [NAME1 NAME2 ...] /gid [GROUD_ID]}
[SESSION_NAME]
refers to the name of the session.
- The session name is case-insensitive.
[SESSION_DATE]
refers to the date of the session.
- The format of the date must be in
DD-MM-YYYY
ortoday
.[NAME1 NAME2 ...]
refers to a list of participants in the session.
- Each individual name is case-insensitive.
[GROUP_ID]
refers to the unique identifier of a group.
- The unique identifier for a group can be retrieved with the
group /list
command.
💡 Notes:
- The
[SESSION_NAME]
should be unique across all existing sessions.- Each name in
[NAME1 NAME2 ...]
for a particular session should be unique.- The names in
[NAME1 NAME2 ...]
must only be a single word without whitespaces.
- Example:
Alice Tan
is not allowed.⚠️ Warning:
- If you include a name of an individual in
[NAME1 NAME2 ...]
who already exists in the group specified by[GROUP_ID]
, only one instance of this individual is stored in the session.
- Example: Where the group specified by
/gid
consists of Alice and Bob and the arguments of/pl
includes Alice, only two names, Alice and Bob, would be saved.
Example 1
- Adds a new session named Class Outing involving Alice and Bob on 15-03-2022.
session /create /n Class Outing /d 15-03-2022 /pl Alice Bob
Example 2
- A group has been created with group named Uni Friends with Sally, Emily, David, Uriel, Natalie, Daniel, Nathan, Ethan and Sam.
Adds a new session named Class Gathering consisting of a group named Uni Friends and Alice, on 16-04-2022.
session /create /n Class Gathering /d 16-04-2022 /gid 1 /pl Alice
Deleting a session: session /delete
Deletes an existing session so that you can remove sessions that you no longer need.
Format:
session /delete /sid [SESSION_ID]
[SESSION_ID]
refers to the unique identifier of the session.
- The unique identifier for a session can be retrieved with the
session /list
command.
💡 Note:
- A session with a unique identifier of
[SESSION_ID]
has to exist before it can be removed.⚠️ Warning:
- This action is irreversible. The session is deleted immediately after entering this command.
- Additionally, all activities in the deleted session are deleted immediately as well.
Example
- Removes an existing session with a unique identifier of 2.
session /delete /sid 2
Editing a session: session /edit
Edits an existing session so that you can change the details of a session.
You only have to supply delimiters for the details you wish to edit. However, the /sid
delimiter is compulsory to identify the session you wish to edit.
Format:
session /edit /sid [SESSION_ID] {/n [SESSION_NAME] /d [SESSION_DATE] /pl [NAME1 NAME2...]}
[SESSION_ID]
refers to the unique identifier of the session.
- The unique identifier for a session can be retrieved with the
session /list
command.[SESSION_NAME]
refers to the name of the session.
- The session name is case-insensitive.
[SESSION_DATE]
refers to the date of the session.
- The format of the date must be in
DD-MM-YYYY
ortoday
.[NAME1 NAME2 ...]
refers to a list of participants in the session.
- Each individual name is case-insensitive.
💡 Notes:
- A session with a unique identifier of
[SESSION_ID]
has to exist before it can be edited. The[SESSION_NAME]
should be unique across all existing sessions.- Each name in
[NAME1 NAME2 ...]
for a particular session should be unique.- The names in
[NAME1 NAME2 ...]
must only be a single word without whitespaces.
- Example:
Alice Tan
is not allowed.- There are 3 editable fields: session name, session date and the list of participants in the session.
- At least 1 field has to be edited for the command to run.
- More than 1 field can be edited in a single run of the command.
- When editing the list of participants, existing participants, including those part of the group declared when creating the session, must be included.
- Activities may have been created using participants in the list, hence the list of participants can only expand and not shrink. This is to prevent introducing any inconsistencies to activities in the session.
- Example 1: If the session with session unique identifier of 1 has been created with Alice and Bob and you wish to edit it to include Charlie, a valid edit command would be:
session /edit /sid 1 /pl Alice Bob Charlie
.- Example 2: If the session with session unique identifier of 1 has been created with Alice and a group consisting of Bob and Charlie, and you wish to edit it to include Mike, a valid edit command would be:
session /edit /sid 1 /pl Alice Bob Charlie Mike
.⚠️ Warning:
- This action is irreversible. The session is edited immediately after entering this command.
Examples of usage:
- A session has been created with a unique identifier of 1, named Class Outing with Alice and Bob involved on 15-03-2022.
Example 1
- Edits the name of the session to Class gathering and the date to 16-03-2022.
session /edit /sid 1 /n Class gathering /d 16-03-2022
Example 2
- Edits the session to include Charlie.
session /edit /sid 1 /pl Alice Bob Charlie
Viewing a session : session /view
Displays the details of an existing session so that you can review it.
Format:
session /view /sid [SESSION_ID]
[SESSION_ID]
refers to the unique identifier of the session.
- The unique identifier for a session can be retrieved with the
session /list
command.
💡 Note:
- The session with a unique identifier of
[SESSION_ID]
has to exist before the session can be viewed.
Example:
- Views an existing session with a unique identifier of 1.
session /view /sid 1
Listing all sessions: session /list
Displays all existing sessions so that you can have an overview of previously created sessions. However, deleted sessions are not listed.
Format:
session /list
Example
- Lists all existing sessions.
session /list
Activity Management
An activity represents a single group activity and stores its name, costs and the name of the payer.
Overview
- Creating an activity:
activity /create
- Deleting an activity:
activity /delete
- Editing an activity:
activity /edit
- Viewing an activity:
activity /view
- Listing all activities in a session:
activity /list
Creating an activity: activity /create
Creates an activity with the details that you specify and then assigns it to a session.
There are 2 ways that you can specify the costs of an activity:
- Record the total cost to be split amongst everyone involved.
- Record each person’s individual cost.
Format 1:
activity /create /sid [SESSION_ID] /n [ACTIVITY_NAME] /p [PAYER] /i [NAME1 NAME2 ...] /co [TOTAL_COST] [</gst [GST_PERCENTAGE]>] [</sc [SERVICE_CHARGE]>]
Format 2:
activity /create /sid [SESSION_ID] /n [ACTIVITY_NAME] /p [PAYER] /i [NAME1 NAME2 ...] /cl [COST1 COST2 ...] [</gst [GST_PERCENTAGE]>] [</sc [SERVICE_CHARGE]>]
[SESSION_ID]
refers to the unique identifier of the session.
- The unique identifier for a session can be retrieved with the
session /list
command.[ACTIVITY_NAME]
refers to the name of the activity.
- The activity name is case-insensitive.
[PAYER]
refers to the person who paid for the activity.
- The person’s name is case-insensitive.
[NAME1 NAME2 ...]
refers to a list of participants in the activity.
- Each individual name is case-insensitive.
[TOTAL_COST]
refers to the total cost of the activity.[COST1 COST2 ...]
refers to a list of costs respective to each person involved in the activity.
- Example:
/i Alice Bob /cl 10 20
means that Alice’s portion cost $10 while Bob’s portion cost $20.[GST_PERCENTAGE]
refers to the additional percentage GST that may be charged during the activity.[SERVICE_CHARGE]
refers to the additional percentage service charge that may be charged during the activity.
💡 Notes:
- A session with a unique identifier of
[SESSION_ID]
has to exist before an activity can be created and assigned to it.- Each name in
[NAME1 NAME2 ...]
for the activity should be unique.- The names in
[PAYER]
and[NAME1 NAME2 ...]
must also be associated with the session referenced by[SESSION_ID]
.- The names in
[PAYER]
and[NAME1 NAME2 ...]
must only be a single word without whitespaces.
- Example:
Alice Tan
is not allowed.- The values in
[TOTAL_COST]
and[COST1 COST2 ...]
are decimal values with a maximum of 12 digits before and 2 digits after the decimal point, if any.- The values in
[GST_PERCENTAGE]
and[SERVICE_CHARGE]
are decimal values that range from 0 to 100, with a maximum of 3 digits before and 2 after the decimal point, if any.- If the payer is also involved in the activity, the payer’s name has to be included in the list of participants
- Example: Alice paid for a movie which she watched with Bob in a session with a session unique identifier of 1, costing a total of $20. The correct command format is:
activity /create /sid 1 /n movie /p Alice /i Alice Bob /co 20
- All values displayed are rounded off to 2 decimal places. This may result in slight inaccuracies.
Examples of usage:
- A session has been created with a unique identifier of 1, named Class Outing with Alice and Bob involved on 15-03-2022.
Example 1
- Adds a new activity to a session with a session unique identifier of 1 named Class Lunch. Alice paid a total of $10
for both Bob and herself which is split equally amongst them.
activity /create /sid 1 /n Class Lunch /p Alice /i Alice Bob /co 10
Example 2
- Adds a new activity to a session with a session unique identifier of 1 named High Tea. Alice paid for both
Bob and herself. Alice’s meal cost $20.50 while Bob’s meal cost $13.50.
activity /create /sid 1 /n High Tea /p Alice /i Alice Bob /cl 20.50 13.50
Deleting an activity: activity /delete
Deletes an existing activity from a particular session so that you can remove activities that you no longer need.
Format:
activity /delete /sid [SESSION_ID] /aid [ACTIVITY_ID]
[SESSION_ID]
refers to the unique identifier of the session.
- The unique identifier for a session can be retrieved with the
session /list
command.[ACTIVITY_ID]
refers to the unique identifier of the activity.
- The unique identifier for an activity can be retrieved with the
activity /list
command.
💡 Notes:
- A session with a unique identifier of
[SESSION_ID]
has to exist before an activity in that session can be removed.- An activity with a unique identifier of
[ACTIVITY_ID]
has to exist before it can be removed.⚠️ Warning:
- This action is irreversible. The activity is deleted immediately after entering this command.
Example:
- Removes an existing activity with a unique identifier of 2 from a session with a unique identifier of 1.
activity /delete /sid 1 /aid 2
Editing an activity: activity /edit
Edits an existing activity so that you can change the details of an activity.
You only have to supply delimiters for the details you wish to edit. However, the /sid
and /aid
delimiters are compulsory to identify the activity you wish to edit.
Format 1:
activity /edit /sid [SESSION_ID] /aid [ACTIVITY_ID] {/n [ACTIVITY_NAME] /p [PAYER] /i [NAME1 NAME2...] /co [TOTAL_COST] /gst [GST_PERCENTAGE] /sc [SERVICE_CHARGE]}
Format 2:
activity /edit /sid [SESSION_ID] /aid [ACTIVITY_ID] {/n [ACTIVITY_NAME] /p [PAYER] /i [NAME1 NAME2...] /cl [COST1 COST2...] /gst [GST_PERCENTAGE] /sc [SERVICE_CHARGE]}
[SESSION_ID]
refers to the unique identifier of the session.
- The unique identifier for a session can be retrieved with the
session /list
command.[ACTIVITY_ID]
refers to the unique identifier of the activity.
- The unique identifier for an activity can be retrieved with the
activity /list
command.[ACTIVITY_NAME]
refers to the name of the activity.
- The activity name is case-insensitive.
- If one is not provided, the original activity name is left unchanged.
[PAYER]
refers to the person who paid for the activity.
- The person’s name is case-insensitive.
- If one is not provided, the original payer is left unchanged.
[NAME1 NAME2 ...]
refers to a list of participants in the activity.- Each individual name is case-insensitive.
- If a list is not provided, the original participants are left unchanged.
- You must supply a costlist or overall cost if you wish to edit the list of participants.
[TOTAL_COST]
refers to the overall cost of the activity.
- If one is not provided, the original overall cost is left unchanged. You cannot supply both a total cost and a cost list.
- You can use this even if the activity was originally created using a cost list. The new overall cost will be evenly distributed amongst all participants.
[COST1 COST2 ...]
refers to a list of costs respective to each person involved in the activity.
- If a list is not provided, the original overall cost list is left unchanged. You cannot supply both a total cost and a cost list.
- You can use this even if the activity was originally created using an overall cost. The new cost list will be assigned to the existing participants in the order displayed when viewing the activity.
- You are encouraged to additionally provide a participant list with
/i
to confirm the distribution of costs.[GST_PERCENTAGE]
refers to the additional GST that may be charged during the activity.
- If one is not provided, the original GST is left unchanged and will be applied to any changes to the overall cost or cost list.
- Changing the GST percentage will automatically recalculate all costs associated with this activity to reflect the new GST value.
- To remove the GST entirely, you must explicitly specify
/gst 0
.[SERVICE_CHARGE]
refers to the additional service charge that may be charged during the activity.
- If one is not provided, the original service charge is left unchanged and will be applied to any changes to the overall cost or cost list.
- Changing the service charge will automatically recalculate all costs associated with this activity to reflect the new service charge.
- To remove the service charge entirely, you must explicitly specify
/sc 0
.
💡 Notes:
- An activity with a unique identifier of
[ACTIVITY_ID]
has to exist before it can be edited.- A session with a unique identifier of
[SESSION_ID]
has to exist before activities in it can be edited.- Each name in
[NAME1 NAME2 ...]
for the activity should be unique.- The names in
[PERSON_PAID]
and[NAME1 NAME2 ...]
must also be associated with the session referenced by[SESSION_ID]
.- The names in
[PAYER]
and[NAME1 NAME2 ...]
must only be a single word without whitespaces.
- Example:
Alice Tan
is not allowed.- The values in
[TOTAL_COST]
and[COST1 COST2 ...]
are decimal values with a maximum of 12 digits before and 2 digits after the decimal point, if any.- The values in
[GST_PERCENTAGE]
and[SERVICE_CHARGE]
are decimal values that can only range from 0 to 100, with a maximum of 3 digits before and 2 after the decimal point, if any.- All values displayed are rounded off to 2 decimal places. This may result in slight inaccuracies.
⚠️ Warning:
- This action is irreversible. The activity is edited immediately after entering this command.
Example
- Edits the name, payer, overall cost, GST percentage and service charge of an activity that has been created
with an activity unique identifier of 1 in a session with a session unique identifier of 1, leaving the list of
participants unchanged. The activity is currently named Class Lunch and involves Alice and Bob.
activity /edit /sid 1 /aid 1 /n Dinner /p Bob /i Alice Bob /co 30 /gst 7 /sc 10
Viewing an activity: activity /view
Displays the details about an existing activity so that you can review it.
Format:
activity /view /sid [SESSION_ID] /aid [ACTIVITY_ID]
[SESSION_ID]
refers to the unique identifier of the session.
- The unique identifier for a session can be retrieved with the
session /list
command.[ACTIVITY_ID]
refers to the unique identifier of the activity.
- The unique identifier for an activity can be retrieved with the
activity /list
command.
💡 Notes:
- A session with a unique identifier of
[SESSION_ID]
has to exist before an activity in that session can be viewed.- An activity with a unique identifier of
[ACTIVITY_ID]
has to exist before it can be viewed.- All values displayed are rounded off to 2 decimal places. This may result in slight inaccuracies.
Example
- Views an existing activity with a unique identifier of 1 in a session with a session unique identifier of 1.
activity /view /sid 1 /aid 1
Listing all activities in a session: activity /list
Displays all existing activities so that you can have an overview of previously created activities. However, deleted activities are not listed.
Format:
activity /list /sid [SESSION_ID]
[SESSION_ID]
refers to the unique identifier of the session.
- The unique identifier for a session can be retrieved with the
session /list
command.
💡 Note:
- A session with a unique identifier of
[SESSION_ID]
has to exist before its activities can be listed.
Example:
- Lists all activities in a session with a unique identifier of 1.
activity /list /sid 1
Transaction Management
Settling all transactions for a session: session /summary
Displays a transaction summary for a session. The transaction summary helps you calculate how much each person in the session
must pay and to whom they should pay for all debts to be resolved.
Format:
session /summary /sid [SESSION_ID]
[SESSION_ID]
refers to the unique identifier of the session.
- The unique identifier for a session can be retrieved with the
session /list
command.
💡 Notes:
- A session with a unique identifier of
[SESSION_ID]
has to exist before its summary can be generated.- All values displayed are rounded off to 2 decimal places. This may result in slight inaccuracies.
- SplitLah simplifies transactions to minimise the number of transactions you have to make.
- Example: In the same session, Alice paid for Bob’s lunch which costs $10 and Bob paid for Charlie’s movie ticket which costs $10.
- Instead of having Bob pay Alice $10 and Charlie pay Bob $10, SplitLah simplifies this so Charlie just has to pay $10 directly to Alice, settling all debts in a single transaction.
Example
- Displays a session summary that summarises the session that has been created
with session unique identifier of 1 to help Alice and Bob calculate what transactions they have to make to
resolve all their debts to each other.
session /summary /sid 1
Group Management
A group represents one or more individuals. The sole purpose of a group is to quickly identify a group of individuals without having to manually enter their details one by one when creating a session.
Overview
- Creating a group:
group /create
- Deleting a group:
group /delete
- Editing a group:
group /edit
- Viewing a group:
group /view
- Listing all groups:
group /list
Creating a group: group /create
Creates a new group consisting of a group of individuals. You can use this group whenever you are creating a new session that involves the same group of individuals. This saves you time when entering the list of participants for the session.
Format :
group /create /n [GROUP_NAME] /pl [NAME1 NAME2 ...]
[GROUP_NAME]
refers to the name of the group.
- The group name is case-insensitive.
[NAME1 NAME2 ...]
refers to a list of individuals in the group.
- Each individual name is case-insensitive.
💡 Notes:
- The
[GROUP_NAME]
should be unique across all existing groups.- Each name in
[NAME1 NAME2 ...]
for a particular group should be unique.- The names in
[NAME1 NAME2 ...]
must only be a single word without whitespaces.
- Example:
Alice Tan
is not allowed.
Example:
- Adds a new group named Uni Friends, consisting of Sally, Emily, David, Uriel, Natalie, Daniel, Nathan, Ethan and Sam.
group /create /n Uni Friends /pl Sally Emily David Uriel Natalie Daniel Nathan Ethan Sam
Deleting a group: group /delete
Deletes an existing group so that you can remove groups that you no longer need.
Format:
group /delete /gid [GROUP_ID]
[GROUP_ID]
refers to the unique identifier of the group.
- The unique identifier for a group can be retrieved with the
group /list
command.
💡 Note:
- A group with a unique identifier of
[GROUP_ID]
has to exist before it can be removed.⚠️ Warning:
- This action is irreversible. The group is deleted immediately after entering this command.
Example:
- Removes an existing group with a unique identifier of 1.
group /delete /gid 1
Editing a group: group /edit
Edits an existing group so that you can change the details of a group.
You only have to supply delimiters for the details you wish to edit. However, the /gid
delimiter is compulsory to identify the group you wish to edit.
Format:
group /edit /gid [GROUP_ID] {/n [GROUP_NAME] /pl [NAME1 NAME2...]}
[GROUP_ID]
refers to the unique identifier of the group.
- The unique identifier for a group can be retrieved with the
group /list
command.[GROUP_NAME]
refers to the name of the group.
- The group name is case-insensitive.
[NAME1 NAME2 ...]
refers to a list of individuals in the group.
- Each individual name is case-insensitive.
💡 Notes:
- A group with a unique identifier of
[GROUP_ID]
has to exist before it can be edited.- The
[GROUP_NAME]
should be unique across all existing groups.- Each name in
[NAME1 NAME2 ...]
for a particular group should be unique.- There are 2 editable fields: group name and the list of individuals in the group.
- At least 1 field has to be edited for the command to run.
- More than 1 field can be edited in a single run of the command.
- Editing groups does not affect sessions.
- If a session has been created with the group that you are editing, editing the group does not modify the list of participants in the session.
⚠️ Warning:
- This action is irreversible. The group is edited immediately after entering this command.
Examples of usage:
- A group has been created with a unique identifier of 2, named School Friends consisting of Alice, Bob, Charlie and David.
Example 1
- Edits the group name to Project Teammates.
group /edit /gid 2 /n Project Teammates
Example 2
- Edits the group to exclude David.
group /edit /gid 2 /pl Alice Bob Charlie
Viewing a group: group /view
Displays the details about an existing group so that you can review it.
Format:
group /view /gid [GROUP_ID]
[GROUP_ID]
refers to the unique identifier of the group.
- The unique identifier for a group can be retrieved with the
group /list
command.
💡 Note:
- The group with a unique identifier of
[GROUP_ID]
has to exist before the group can be viewed.
Example:
- Views an existing group with a unique identifier of 2.
group /view /gid 2
Listing all groups: group /list
Displays all existing groups so that you can have an overview of previously created groups. However, deleted groups are not listed.
Format:
group /list
Example:
- Lists all existing groups.
group /list
Miscellaneous
Listing all available commands: help
Displays all available SplitLah commands and their syntax to help you use SplitLah.
You can also refer to the Command Summary for a summary of all available commands in SplitLah.
Format:
help
Exiting the application: exit
Quits the application.
Format:
exit
FAQ
Q: Is data saved to the disk upon exit?
A: SplitLah 2.0 creates a save file in a folder named data
that is created in the same directory as
SplitLah.jar
. Changes are saved whenever a create
, delete
or edit
command is run.
Q: How do session, activity and group unique identifiers work?
A: Unique identifiers uniquely identify each session, activity and group separately. Once a unique identifier has been allocated, it will not be changed nor reused.
Q: Is there any way I can mark a transaction that is shown using the session /summary
command as paid?
A: As of now, this functionality is not supported by SplitLah. All functionalities that SplitLah supports are documented in this user guide.
You can find a summary of all available commands in the Command Summary below.
Stay tuned to future updates from us!
Command Summary
Action | Format |
---|---|
Create a new session | Format: session /create /n [SESSION_NAME] /d [SESSION_DATE] {/pl [NAME1 NAME2 ...] /gid [GROUP_ID]} Example: session /create /n Outing /d 15-03-2022 /pl Alice Bob Charlie |
Delete an existing session | Format: session /delete /sid [SESSION_ID] Example: session /delete /sid 1 |
Edit an existing session | Format: session /edit /sid [SESSION_ID] {/n [SESSION_NAME] /d [SESSION_DATE] /pl [NAME1 NAME2...]} Example: session /edit /sid 1 /n Class gathering /d 16-03-2022 /pl Alice Bob Charlie |
View an existing session | Format: session /view /sid [SESSION_ID] Example: session /view /sid 1 |
List all sessions | Format: session /list |
Create activity (split costs evenly) | Format: activity /create /sid [SESSION_ID] /n [ACTIVITY_NAME] /p [PAYER] /i [NAME1 NAME2...] /co [TOTAL_COST] [</gst [GST_PERCENTAGE]>] [</sc [SERVICE_CHARGE]>] Example: activity /create /sid 1 /n Lunch /p Alice /i Alice Bob Charlie /co 7.5 |
Create activity (split costs manually) | Format: activity /create /sid [SESSION_ID] /n [ACTIVITY_NAME] /p [PAYER] /i [NAME1 NAME2...] /cl [COST1 COST2...] [</gst [GST_PERCENTAGE]>] [</sc [SERVICE_CHARGE]>] Example: activity /create /sid 1 /n Lunch /p Alice /i Alice Bob Charlie /cl 1 1 5.5 |
Delete an existing activity | Format: activity /delete /sid [SESSION_ID] /aid [ACTIVITY_ID] Example: activity /delete /sid 2 /aid 1 |
Edit an existing activity (split costs evenly) | Format: activity /edit /sid [SESSION_ID] /aid [ACTIVITY_ID] {/n [ACTIVITY_NAME] /p [PAYER] /i [NAME1 NAME2...] /co [TOTAL_COST] /gst [GST_PERCENTAGE] /sc [SERVICE_CHARGE]} Example: activity /edit /sid 1 /aid 1 /n Lunch /p Alice /i Alice Bob Charlie /co 7.5 |
Edit an existing activity (split costs manually) | Format: activity /edit /sid [SESSION_ID] /aid [ACTIVITY_ID] {/n [ACTIVITY_NAME] /p [PAYER] /i [NAME1 NAME2...] /cl [COST1 COST2...] /gst [GST_PERCENTAGE] /sc [SERVICE_CHARGE]} Example: activity /edit /sid 1 /aid 1 /n Lunch /p Alice /i Alice Bob Charlie /cl 1 1 5.5 |
View an existing activity | Format: activity /view /sid [SESSION_ID] /aid [ACTIVITY_ID] Example: activity /view /sid 1 /aid 1 |
List all activities | Format: activity /list /sid [SESSION_ID] Example: activity /list /sid 1 |
Show session summary | Format: session /summary /sid [SESSION_ID] Example: session /summary /sid 1 |
Create a new group | Format: group /create /n [GROUP_NAME] /pl [NAME1 NAME2 ...] Example: group /create /n SplitLah /pl Roy Ivan Warren Saurav Tianle |
Delete an existing group | Format: group /delete /gid [GROUP_ID] Example: group /delete /gid 1 |
Edit an existing group | Format: group /edit /gid [GROUP_ID] {/n [GROUP_NAME] /pl [NAME1 NAME2...]} Example: group /edit /gid 1 /n Class gathering |
View an existing group | Format: group /view /gid [GROUP_ID] Example: group /view /gid 1 |
List all groups | Format: group /list |
List all available commands | Format: help |
Exit | Format: exit |