FairSplit
Project Type: Full-Stack Web App | Productivity Tool | Group Expense Manager
Tools Used: Spring Boot, React, Tailwind CSS v4, PostgreSQL, JWT, Docker, Gradle
Data Source: PostgreSQL (hosted on Render)
Objective
Build and deploy a fully functional group expense manager that allows users to:
- Register/Login with JWT authentication
- Create and join groups using unique invite codes
- Add and split expenses between group members
- Automatically calculate who owes who
- Suggest one-to-one settlement instructions
Key Features
-
JWT Auth & User Management:
- Register/login using Spring Boot Security and JWT tokens.
- Auth tokens stored in localStorage and injected into requests via Axios.
-
Group Creation & Join Flow:
- Create groups and generate invite codes.
- Join existing groups using secure invite codes.
-
Expense Tracking:
- Add expenses with custom splits.
- Track who paid, how much, and how it’s shared.
-
Balance Calculations & Settlements:
- Live balance calculations per group member.
- Show who owes who, and how much, with one-click “mark as paid.”
-
Frontend Built with Modern Tools:
- React + Vite + Tailwind CSS v4
- Context-based JWT auth and protected routes
- Clean UI with minimalist responsive layout
-
Deployment Ready:
- Backend containerized with Docker and deployed to Render
- PostgreSQL managed via Render + Flyway migrations
- Frontend deployed to Netlify with dynamic env vars
_redirects
support for client-side routing
Deployment Highlights
- Backend uses Docker + Gradle + JAR builds for easy cloud portability
- PostgreSQL DB bootstrapped with Flyway
- CORS configuration supports full cross-domain auth from Netlify
- Frontend uses Vite static output + Netlify CI/CD for seamless updates
🔗 View Code on GitHub: GitHub Link
🔗 View Blog Post: Link