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)

Link to Live App

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

Updated: