diff --git a/Projects/2-Intermediate/Expense-Splitter.md b/Projects/2-Intermediate/Expense-Splitter.md new file mode 100644 index 000000000..9e71fca2d --- /dev/null +++ b/Projects/2-Intermediate/Expense-Splitter.md @@ -0,0 +1,37 @@ +# Expense Splitter +**Tier:** 2-Intermediate + +Tracking shared expenses can get messy, especially during trips or among roommates. +In this project, you’ll build an Expense Splitter app that helps users divide group expenses fairly, calculate balances, and generate minimal settlement plans. + +## User Stories + +- [ ] User can create a new group/event and add participants. +- [ ] User can add an expense with: title, amount, payer, date, and participants included. +- [ ] User can choose how to split an expense: equally, by shares/percentages, or custom per-person amounts. +- [ ] User can edit or delete an expense. +- [ ] User can view the current balance for each participant (positive = should receive, negative = owes). +- [ ] User can see a settlement suggestion that minimizes the number of transactions to settle everyone. +- [ ] User can export group data as CSV or JSON. +- [ ] User can filter expenses by date, payer, or category. + +## Bonus features + +- [ ] User can scan receipts using OCR to extract amounts and participants automatically. +- [ ] User can use multi-currency support with live exchange-rate conversion. +- [ ] User can integrate payment options (PayPal, Venmo, etc.) to settle balances. +- [ ] User can access the app offline with local storage or sync later. +- [ ] User can handle tax/tip per expense and apply rounding options. +- [ ] User can upload profile avatars and set a default currency. + +## Useful links and resources + +- [Splitwise](https://www.splitwise.com) – UX inspiration +- [Minimal cash flow settlement algorithm (Greedy approach)](https://medium.com/@krunallathiya/how-to-split-bills-fairly-like-splitwise-app-35ed9a98c3e5) +- [Chart.js Documentation](https://www.chartjs.org/docs/latest/) +- [Fetch API (MDN)](https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API/Using_Fetch) + +## Example projects + +- [Splitwise](https://www.splitwise.com/) – commercial example +- [Settle Up](https://settleup.io/) – open-source inspired expense app