Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

5 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ’° Expense Split Application

A full-stack web application to manage and split expenses among groups, similar to Splitwise. This project is built using Spring Boot (Backend) and HTML, CSS, JavaScript (Frontend).

πŸš€ Features

πŸ‘€ User Management: Create and manage users

πŸ‘₯ Group Management: Create groups and add members,

πŸ’Έ Expense Management: Add expenses within groups, Split expenses among members

πŸ”„ Settlement System: Track balances, Settle debts between users

πŸ“Š Net Balance Calculation: Optimized settlement logic to minimize transactions

πŸ› οΈ Tech Stack

πŸ”Ή Backend-- Java, Spring Boot, Spring Web, Spring Data JPA, REST APIs

πŸ”Ή Frontend-- HTML, CSS, JavaScript

πŸ”Ή Database-- (Configured via application.properties, likely MySQL or H2)

βš™οΈ Backend Architecture

The backend follows a layered architecture:

  1. Controller Layer

Handles HTTP requests:UserController, GroupController, ExpensesController, TransactionController

  1. Service Layer

Contains business logic:Expense splitting logic, Balance calculation, Settlement optimization

  1. Repository Layer

Uses Spring Data JPA:Interfaces for database operations

  1. Entity Layer

Main entities:User, Group, Expenses, Split, Transactions, Members

  1. DTOs

Request & Response objects, Clean API structure

  1. Exception Handling

Global exception handler

Custom exceptions:UserNotFoundException, GroupNotFoundException, SplitNotFoundException

πŸ”— API Endpoints (Overview)

πŸ‘€ User APIs Create User Get Users

πŸ‘₯ Group APIs Create Group Add Members Get Group Details

πŸ’Έ Expense APIs Add Expense Split Expense Get Expense Details

πŸ”„ Transaction APIs Settle Payments Get Balance Summary

🧠 Core Logic Expense Splitting Equal split among group members Tracks who owes whom Net Settlement Minimizes number of transactions Converts multiple debts into optimized payments

▢️ How to Run the Project

πŸ”Ή Backend--

Navigate to project folder

cd Expense-Split

Run Spring Boot app:

mvn spring-boot:run

Server runs at:

http://localhost:8080

πŸ”Ή Frontend--

Open index.html in browser

OR

Serve using Live Server (recommended)

πŸ§ͺ Testing--

Postman collection available in project

Test all APIs using provided endpoints

πŸ“Œ Future Enhancements

πŸ” Authentication & Authorization (JWT)

πŸ“± Mobile responsive UI improvements

πŸ“Š Advanced analytics (charts)

πŸ“§ Notifications & reminders

πŸ’³ Payment integration

🀝 Contribution

Feel free to fork this repository and contribute!

About

Expense Split is a Spring Boot backend application that helps users track and manage shared expenses within groups. It allows users to add expenses, split costs among members, and maintain balances. The system simplifies expense tracking and ensures transparent and accurate settlements.

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages