Skip to content

AdamZLi/splitease-final

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

234 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SplitEase (Split It Up)

CI

A modern expense splitting application that makes it easy to track shared expenses with friends, roommates, and groups. Split expenses fairly, calculate settlements automatically, and settle up without the awkward conversations.

Features

  • Group Management: Create groups for trips, events, roommates, or any shared expenses
  • Flexible Expense Entry:
    • Traditional form-based entry
    • AI-powered chat interface for natural language expense logging
  • Smart Splitting:
    • Even splits (default)
    • Custom amount splits
    • Automatic calculation of who owes what
  • Settlement Tracking: View optimized settlement suggestions to minimize transactions
  • Real-time Collaboration: Multiple users can add expenses simultaneously
  • Shareable Groups: Generate shareable links to invite others to your expense groups
  • Expense History: View all expenses in a detailed log
  • Free for Groups: Free for groups up to 10 people

Use Cases

Perfect for:

  • Group Trips: Vacations, road trips, weekend getaways
  • Roommates: Rent, utilities, groceries, household items
  • Dinners & Outings: Restaurant bills, bar tabs, coffee runs
  • Events & Parties: Birthdays, weddings, celebrations

Live Demo

🌐 Try it out: https://split-it-up-seven.vercel.app/

What technologies are used for this project?

This project is built with:

  • Frontend: React 18, TypeScript, Vite
  • UI Components: shadcn-ui, Radix UI, Tailwind CSS
  • Backend: Supabase (PostgreSQL database, authentication, real-time subscriptions)
  • State Management: TanStack Query (React Query)
  • Routing: React Router DOM
  • Forms: React Hook Form with Zod validation
  • AI Integration: Lovable AI Gateway for natural language expense parsing
  • Styling: Tailwind CSS with custom design system

Getting Started

Prerequisites

  • Node.js (v18 or higher recommended) - install with nvm
  • npm or bun
  • Supabase account and project (for backend services)

Local Development Setup

  1. Clone the repository

    git clone <YOUR_GIT_URL>
    cd splitease-final
  2. Install dependencies

    npm install
    # or
    bun install
  3. Set up environment variables

    Create a .env.local file in the root directory with your Supabase credentials:

    VITE_SUPABASE_URL=your_supabase_project_url
    VITE_SUPABASE_ANON_KEY=your_supabase_anon_key
  4. Set up Supabase

    • Create a Supabase project at supabase.com
    • Run the migrations in the supabase/migrations/ directory
    • Configure Row Level Security (RLS) policies as needed
    • Set up the parse-expense edge function with your Lovable API key
  5. Start the development server

    npm run dev
    # or
    bun run dev

    The app will be available at http://localhost:5173

Building for Production

npm run build
# or
bun run build

The production build will be in the dist/ directory.

How can I deploy this project?

You can deploy this project to various hosting platforms:

  • Vercel (recommended): Connect your GitHub repo to Vercel for automatic deployments
  • Netlify: Deploy the dist/ folder after building
  • Any static hosting service: Upload the dist/ folder after running npm run build

Code Quality

This project follows strict coding standards:

  • TypeScript: Strict compiler flags enabled (noUnusedLocals, noUnusedParameters, noFallthroughCasesInSwitch)
  • Logging: Production-safe logger utility (no console.log in production)
  • Error Handling: React Error Boundary for graceful error recovery
  • Testing: Vitest with React Testing Library (58+ tests)

Development

Running Tests

npm run test        # Watch mode
npm run test:run    # Single run
npm run test:ui     # Interactive UI

Development History

About

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors