Final Year Project

Split-Sync

A Progressive Web Application for group expense management, bill splitting, and payment settlement — built for the Irish and European market.

Scroll to explore

1,397
Tests passing
84%
Line coverage
4.67
User rating / 5
72.2
Net promoter score
18
Evaluators

The Problem

Shared money is awkward.
Split-Sync makes it simple.

Existing expense-splitting tools are built primarily for the American market, focusing on Venmo while ignoring SEPA bank transfers and Revolut — the dominant payment methods in Ireland and across the EU.

Split-Sync was designed specifically for European users: full SEPA bank transfer support with IBAN validation across 30+ country formats, Revolut deep links, PayPal integration, and a privacy-preserving contact discovery system that never uploads phone numbers to a server.

Built as a Progressive Web App, it installs on any device without App Store approval, works offline, and delivers a native-quality experience on both mobile and desktop.

"If this wasn't a school project, it would have been my go-to app. It is very nice."

— Evaluation participant, April 2026

See It In Action

Watch the app work,
in both light and dark mode.

Split-Sync expense splitting and settlement flow
Expense and Settlement Flow Adding expenses, splitting, and settling up
Split-Sync light mode and dark mode navigation
Light Mode and Dark Mode Full app navigation across both themes

Core Features

Everything a group needs
to stay financially fair.

4 Split Methods

Equal, percentage, exact amounts, and shares-based splitting with real-time validation.

Real-Time Balances

Firestore listeners push balance updates to all group members instantly — no refresh needed.

🧮

Smart Settlements

Greedy two-pointer algorithm minimises transactions to n−1, reducing a 6-transaction group to 3.

💳

EU Payment Methods

PayPal, Revolut, and SEPA bank transfer with full IBAN validation for 30+ European countries.

🔒

Biometric Auth

WebAuthn fingerprint and Face ID authentication. IBAN encrypted with AES-GCM before storage.

📷

Receipt Scanning

Google Cloud Vision API extracts merchant name, total, and date from receipt photos automatically.

🔍

Contact Discovery

SHA-256 phone hashing allows finding friends on the platform without uploading contacts to a server.

📊

Analytics Dashboard

Recharts-powered spending trends, category breakdowns, and settlement history per group.

🤖

AI Assistant

In-app Claude-powered chat assistant via Firebase Cloud Function with secured API key.

Technology

A modern, production-grade
full-stack architecture.

Frontend React 18 Component architecture with Tailwind CSS and Zustand state management
Database Firebase Firestore Real-time NoSQL database with security rules and offline support
Auth Firebase Auth + WebAuthn Email, Google OAuth, and biometric authentication
Backend Cloud Functions Node.js serverless functions for OCR and AI chat proxy
Hosting Firebase Hosting PWA deployment with service worker and offline fallback
Testing Jest + RTL 1,397 tests across 52 suites with 84.37% line coverage
OCR Google Cloud Vision Receipt scanning and text extraction via REST API
AI Anthropic Claude In-app assistant with context-aware expense help

Quality Assurance

Tested from 1.32% to 84%
in one academic year.

A robust testing infrastructure built with Jest and React Testing Library, covering utility functions, Zustand stores, React hooks, and full component trees with Firebase and Router mocked at every level.

Line coverage84.37%
Statement coverage82.83%
Function coverage79.09%
Branch coverage70.18%

Integrations

APIs powering Split-Sync.

Firebase Authentication
Email, Google OAuth, session management
Firebase Firestore
Real-time database with security rules
Firebase Cloud Functions
Serverless OCR and AI chat proxy
Google Cloud Vision API
Receipt OCR and text extraction
Anthropic Claude API
In-app AI assistant (server-side secured)
PayPal REST API (Sandbox)
Demo payment simulation with order IDs
WebAuthn API
Biometric fingerprint and Face ID auth
Web Contacts API
Privacy-preserving contact discovery
Cloudinary API
Profile photo storage and delivery

User Evaluation

18 participants. Real feedback.
Excellent results.

4.67/5
Overall rating
72.2
NPS score
94%
Met or exceeded expectations
94%
Would continue using
5.0/5
Balance tracking rating

"If this wasn't a school project, it would have been my go-to app. It is very nice."

— Evaluation participant

"Payments with Google Pay and Apple Pay will be nice to have. I wish it will be available in the app store."

— Evaluation participant

"I wanted the place where I could see all my friends I have connected with or those using Split-Sync."

— Evaluation participant