|
|
|
@ -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
|