JAVA / SPRING BOOT
Splitty
A collaborative expense management application. Create events, invite participants, and log shared expenses with real-time updates via WebSockets and Long-polling.
01
Setup & Configuration
The application is split into client and server modules. Use Gradle to build and run.
# 1. Build the app
./gradlew build
# 2. Run the server
./gradlew bootRun
# 3. Run the client (JavaFX included)
./gradlew run
Config Files:
- user.json: Stores local user data. Delete to reset user.
- config.properties: Contains language settings ('en', 'fr', 'nl', 'de') and last connected server IP.
- h2-database: The local database file for the server.
02
Keyboard Navigation
Splitty is designed for efficiency with full keyboard support.
Navigate UI ARROWS
Select / Action ENTER
Go Back / Exit ESCAPE
Previous Page BACKSPACE
03
Real-Time Sync
Splitty uses a hybrid approach for data synchronization:
- Long-Polling: Used for participant lists. Adding a participant on one client instantly updates the list on another client viewing the same event.
- WebSockets: Used for high-frequency updates like Expense creation and Debt settlement. Changes appear immediately without refreshing.
04
Multi-Modal Visualization
The UI is designed to be accessible and informative:
- Icons & Tooltips: Elements are distinguishable by color and icon shape. Hovering reveals detailed text tooltips.
- Interactive Charts: The Statistics page features an interactive Pie Chart. Hovering over a slice reveals the exact percentage of expenses for that tag.