Skip to the content.

logo

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:


Contents


How to use this user guide

Quick Notes

Warnings

Quick Start

  1. Ensure that you have Java 11 or above installed.
  2. Download the latest .jar version of SplitLah from here
  3. Copy the file to the folder you wish to use as a home folder for SplitLah.
  4. Open a terminal and set the working directory to the home folder.
  5. Start SplitLah by executing java -jar SplitLah.jar in the terminal.
  6. Type in a command and press Enter to execute it.
  7. Refer to Features for a more in-depth explanation of all commands available.

How SplitLah works


Back to Contents

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


Back to Contents

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]}


💡 Notes:

⚠️ Warning:


Example 1

Example 2

Back to Session Management

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]


💡 Note:

⚠️ Warning:


Example

Back to Session Management

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...]}


💡 Notes:

⚠️ Warning:


Examples of usage:

Example 1

Example 2

Back to Session Management

Viewing a session : session /view

Displays the details of an existing session so that you can review it.

Format: session /view /sid [SESSION_ID]


💡 Note:


Example:

Back to Session Management

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

Back to Session Management

Activity Management

An activity represents a single group activity and stores its name, costs and the name of the payer.

Overview


Back to Contents

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:

  1. Record the total cost to be split amongst everyone involved.
  2. 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]>]


💡 Notes:


Examples of usage:

Example 1

Example 2

Back to Activity Management

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]


💡 Notes:

⚠️ Warning:


Example:

Back to Activity Management

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]}


💡 Notes:

⚠️ Warning:


Example

Back to Activity Management

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]


💡 Notes:


Example

Back to Activity Management

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]


💡 Note:


Example:

Back to Activity Management

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]


💡 Notes:


Example

Back to Contents

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


Back to Contents

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 ...]


💡 Notes:


Example:

Back to Group Management

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]


💡 Note:

⚠️ Warning:


Example:

Back to Group Management

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...]}


💡 Notes:

⚠️ Warning:


Examples of usage:

Example 1

Example 2

Back to Group Management

Viewing a group: group /view

Displays the details about an existing group so that you can review it.

Format: group /view /gid [GROUP_ID]


💡 Note:


Example:

Back to Group Management

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:

Back to Group Management

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


Back to Contents

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!

Back to Contents

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


Back to Contents