diff --git a/Projects/2-Intermediate/ExpenseSplitter.md b/Projects/2-Intermediate/ExpenseSplitter.md new file mode 100644 index 00000000..07322042 --- /dev/null +++ b/Projects/2-Intermediate/ExpenseSplitter.md @@ -0,0 +1,57 @@ +# Expense Splitter – Smart Group Expense Tracker + +**Tier:** 2-Intermediate + +An app that helps groups (friends, roommates, colleagues) split shared expenses easily and track who owes whom. +Perfect for trips, parties, or shared living arrangements where managing expenses manually becomes confusing. + +## User Stories + +- [ ] User can create a new group (e.g., "Goa Trip" or "Flatmates") +- [ ] User can add members to a group +- [ ] User can add expenses with: + - Amount + - Description + - Who paid + - How it should be split (equally or custom) +- [ ] App automatically calculates balances (who owes whom) +- [ ] User can view a summary screen showing each member’s balance +- [ ] User can mark an expense as settled + +## Bonus Features + +- [ ] Split expenses unevenly using custom percentages +- [ ] Currency selector for international trips +- [ ] Export summary as PDF or CSV +- [ ] Group chat or comments per expense +- [ ] Login & sync using Firebase or Supabase +- [ ] Offline mode (store data in localStorage/IndexedDB) +- [ ] Visual charts showing spending per person or category + +## Example Scenario + +A group of 5 friends goes on a trip. +- Riya pays ₹2,000 for hotel +- Aviraj pays ₹1,000 for food +The app calculates everyone’s share (₹600 each) and shows: +> “Aviraj owes Riya ₹400” + +Once payment is made, the expense can be marked as **settled**. + +## Useful Links & Resources + +- [Splitwise (Inspiration)](https://www.splitwise.com/) +- [React Hooks – useState & useEffect](https://react.dev/learn/state-a-components-memory) +- [Firebase Authentication Docs](https://firebase.google.com/docs/auth) +- [Chart.js Documentation](https://www.chartjs.org/docs/latest/) + +## Possible Tech Stack + +- **Frontend:** React + Tailwind CSS (or Flutter for mobile) +- **State Management:** Redux Toolkit / Zustand +- **Backend:** Node.js + Express + MongoDB +- **Auth:** Firebase / Clerk +- **Charts:** Recharts or Chart.js + +--- +