rp
All projects
Spring Boot

SmartSplit

Comprehensive expense splitting application with Spring Boot backend and TypeScript frontend. Enables users to create groups, split expenses, track balances, and settle debts with friends and family. Features OTP-based authentication, real-time balance calculations, and comprehensive analytics.

SmartSplit screenshot 1

Overview

SmartSplit is a full-stack expense splitting application designed to simplify how friends and family split bills and track shared expenses. The backend is built with Spring Boot, providing a robust RESTful API with comprehensive authentication, group management, expense tracking, and settlement features. The system supports multiple split types (equal, exact amounts, percentages), automatic balance calculations, and detailed analytics for spending patterns.

Highlights

  • ›Comprehensive RESTful API with 137 planned endpoints (27 existing, 110 planned)
  • ›OTP-based secure authentication with email and mobile verification
  • ›Automatic balance calculation and recalculation on expense/settlement changes
  • ›Multiple split types: Equal split, Exact amounts, Percentage-based
  • ›Real-time balance tracking across all groups
  • ›Transaction management with @Transactional for data consistency
  • ›Layered architecture: Controller, Service, Repository, Database
  • ›Comprehensive API documentation with Swagger/OpenAPI

Features

  • ✓OTP-based Two-Factor Authentication (Email & Mobile)
  • ✓Group Management - Create and manage expense groups with friends
  • ✓Expense Splitting - Split expenses equally, by exact amounts, or percentages
  • ✓Balance Tracking - Automatic calculation of who owes whom
  • ✓Settlement Management - Record payments to settle debts
  • ✓Category Management - Categorize expenses (Food, Travel, Utilities, etc.)
  • ✓Activity Feed - Track all expenses and settlements in real-time
  • ✓Analytics Dashboard - Spending insights, trends, and category breakdowns
  • ✓Multi-group Support - Manage expenses across multiple groups
  • ✓Payment History - Complete settlement and payment tracking

API endpoints

  • POST /api/auth/register - Register new user with OTP verification
  • POST /api/auth/login - OTP-based login flow
  • POST /api/auth/verify-login-otp - Complete authentication
  • POST /api/groups - Create expense groups
  • GET /api/groups/{id} - Get group details with members
  • POST /api/groups/{id}/members - Add members to group
  • POST /api/expenses - Create expense with split logic (CRITICAL - Planned)
  • GET /api/expenses/{id} - Get expense details with participants
  • POST /api/settlements - Record payment/settlement (CRITICAL - Planned)
  • GET /api/users/{id}/balance-summary - Get user's balance overview
  • GET /api/dashboard - Aggregated dashboard data (Planned)
  • GET /api/analytics/spending-by-category - Category-wise analytics (Planned)