← Back to Projects
04

Expense Splitter

Difficulty: Intermediate-Advanced

Build an expense-splitting app like Splitwise where groups of friends can track shared expenses and settle debts efficiently. This project involves complex state management with Redux, algorithmic thinking for debt settlement, and multi-user data relationships.

Estimated Time: 5-6 days

Learning Objectives

Project Requirements

Group Management

  • Create groups with name and description
  • Add/remove members to groups (by email or username)
  • View all groups user belongs to
  • Set group currency

Expense Tracking

  • Add expenses with amount, description, date, and payer
  • Split expenses: equally, by exact amounts, by percentages, unequally
  • Attach receipts/images to expenses
  • Edit and delete expenses
  • Categorize expenses (food, transport, entertainment, etc.)

Debt Settlement Algorithm

  • Calculate who owes whom and how much
  • Implement debt simplification (minimize number of transactions)
  • Show settlement suggestions
  • Record payments to settle debts
  • Handle partial payments

Redux Implementation

  • Use Redux Toolkit with createSlice
  • Separate slices for auth, groups, expenses, settlements
  • Implement async thunks for API calls
  • Use Redux DevTools for debugging
  • Implement selectors for computed data

Bonus Features

  • Activity feed for group
  • Email notifications for added expenses
  • Export group expenses to CSV/PDF
  • Recurring expenses
  • Multi-currency support with conversion rates
Technical Stack
Frontend React, Redux Toolkit, React Router, axios
Backend Express, JWT, Mongoose
Database MongoDB (complex schemas with references)
Algorithms Debt minimization, graph algorithms

📚 Helpful Resources

Redux Toolkit → Redux Async Thunks → Debt Simplification Algorithm →

💡 Development Tips:

The debt settlement algorithm is key - research graph-based debt minimization. Use Redux Toolkit's createAsyncThunk for API calls. Store calculated balances in Redux for performance. Test the algorithm thoroughly with different scenarios. Consider edge cases like circular debts and three-way splits.

Submit Your Project