Skip to content
This repository was archived by the owner on Apr 30, 2026. It is now read-only.

vishnunandan555/settlr-v0

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

21 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

โš ๏ธ ARCHIVED REPOSITORY

This repository is archived and no longer maintained. The project has been migrated to a new repository with an updated tech stack (Flutter + Spring Boot).

Status: Archived | New Repository: [Link to be added]


๐Ÿ’ฐ Settlr - Split Expenses Made Simple

Settlr Logo

A modern, full-stack expense splitting application built with Spring Boot and React. Split bills, track group expenses, and settle debts with friends and family effortlessly.

Java Spring Boot React PostgreSQL

โœจ Features

  • ๐ŸŽฏ Smart Expense Splitting - Automatically calculate who owes what
  • ๐Ÿ‘ฅ Group Management - Create and manage expense groups
  • ๐Ÿ“ฑ Mobile-First Design - Responsive PWA with offline support
  • ๐Ÿ” Secure Authentication - User registration and login system
  • ๐Ÿ’ธ Settlement Tracking - Track payments and settle debts
  • ๐Ÿ”” Real-Time Notifications - Group invitations and updates
  • ๐Ÿ“Š Expense Analytics - View spending patterns and balances
  • ๐ŸŒ™ Modern UI/UX - Clean, intuitive interface with dark mode support

๐Ÿ“ฑ Screenshots

Login & Authentication

Login Screen

Dashboard Overview

Dashboard

Group Management

Groups Management

Settlement Interface

Settle Up Interface

๐Ÿš€ Quick Start

Prerequisites

  • Java 21 or higher
  • Node.js 18 or higher
  • PostgreSQL database
  • Maven 3.6+

1. Clone the Repository

git clone https://github.com/LORDv1shnu/settlr.git
cd settlr

2. Database Setup

-- Create database
CREATE DATABASE settlr_db;

-- Create user (optional)
CREATE USER settlr_user WITH PASSWORD 'your_password';
GRANT ALL PRIVILEGES ON DATABASE settlr_db TO settlr_user;

3. Backend Setup

cd backend

# Configure database in src/main/resources/application.properties
# Update the database URL, username, and password

# Install dependencies and run
mvn clean install
mvn spring-boot:run

The backend will start on http://localhost:8080

4. Frontend Setup

cd frontend

# Install dependencies
npm install

# Start development server
npm start

The frontend will start on http://localhost:3000

๐Ÿ—๏ธ Project Structure

settlr/
โ”œโ”€โ”€ backend/                 # Spring Boot API
โ”‚   โ”œโ”€โ”€ src/main/java/
โ”‚   โ”‚   โ””โ”€โ”€ com/settlr/backend/
โ”‚   โ”‚       โ”œโ”€โ”€ controller/  # REST controllers
โ”‚   โ”‚       โ”œโ”€โ”€ service/     # Business logic
โ”‚   โ”‚       โ”œโ”€โ”€ repository/  # Data access layer
โ”‚   โ”‚       โ”œโ”€โ”€ entity/      # JPA entities
โ”‚   โ”‚       โ””โ”€โ”€ dto/         # Data transfer objects
โ”‚   โ””โ”€โ”€ src/main/resources/
โ”‚       โ””โ”€โ”€ application.properties
โ”‚
โ”œโ”€โ”€ frontend/                # React application
โ”‚   โ”œโ”€โ”€ src/
โ”‚   โ”‚   โ”œโ”€โ”€ components/      # React components
โ”‚   โ”‚   โ”œโ”€โ”€ context/         # Context providers
โ”‚   โ”‚   โ””โ”€โ”€ App.js          # Main application
โ”‚   โ””โ”€โ”€ public/
โ”‚       โ”œโ”€โ”€ manifest.json    # PWA manifest
โ”‚       โ””โ”€โ”€ sw.js           # Service worker
โ”‚
โ””โ”€โ”€ README.md

๐Ÿ”ง Configuration

Backend Configuration

Update backend/src/main/resources/application.properties:

# Database Configuration
spring.datasource.url=jdbc:postgresql://localhost:5432/settlr_db
spring.datasource.username=your_username
spring.datasource.password=your_password

# JPA Configuration
spring.jpa.hibernate.ddl-auto=update
spring.jpa.show-sql=true

# Server Configuration
server.port=8080

Frontend Configuration

The frontend automatically connects to the backend at http://localhost:8080. For production, update the API base URL in the components.

๐Ÿ“ฑ PWA Features

Settlr is a Progressive Web App (PWA) that offers:

  • Installable - Add to home screen on mobile devices
  • Offline Support - Basic caching for offline functionality
  • Responsive Design - Works seamlessly on desktop, tablet, and mobile
  • Push Notifications - Real-time updates (coming soon)

๐ŸŽฎ Usage Guide

Creating Your First Group

  1. Sign Up/Login - Create an account or log in
  2. Create Group - Click "Groups" โ†’ "Create New Group"
  3. Add Members - Search and invite friends by email
  4. Add Expenses - Start adding shared expenses

Adding Expenses

  1. Navigate to "Add Expense"
  2. Enter expense details (description, amount)
  3. Select who paid and how to split
  4. Save - balances update automatically

Settling Up

  1. Go to "Settle Up" section
  2. View who owes what to whom
  3. Record payments when debts are settled
  4. Balances update in real-time

๐Ÿ› ๏ธ Development

Running Tests

Backend:

cd backend
mvn test

Frontend:

cd frontend
npm test

Building for Production

Backend:

cd backend
mvn clean package
java -jar target/backend-0.0.1-SNAPSHOT.jar

Frontend:

cd frontend
npm run build
# Serve the build folder with your preferred static server

๐Ÿ” Security

  • Password-based authentication
  • CORS configuration for cross-origin requests
  • Input validation and sanitization
  • SQL injection protection via JPA

๐Ÿค Contributing

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

๐Ÿ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

๐Ÿ™ Acknowledgments

  • Initial Frontend by Rohan
  • Frontend Polish by Siddhanth
  • Improved Features and Login System by Sreeram
  • CodeScape Project Expo (Semester 3) by Christ College of Engineering, Irinjalakuda

Built with โค๏ธ by LORDv1shnu and Team

โญ Star this repo if you find it helpful!

About

This is the original prototype of Settlr, developed during our sophomore year as a college project to help groups track shared expenses, split bills fairly, and settle debts with ease.

Topics

Resources

Stars

Watchers

Forks

Contributors