Split shared receipts, track who paid, and settle up cleanly in a static browser app.
Live site: https://ghugeshree.github.io/ChequeMyShare/
- Add participants using names or initials.
- Add expense line items with an item description, amount, payer, and split participants.
- Support quick amount expressions like
20+5.50,30-5, or-5+2. - Calculate what each person owes, what each person paid, and their net balance.
- Suggest a simple settle-up plan, for example
F pays S $13.33. - Autosave the current receipt draft in the browser with a clear-draft option.
- Copy a plain-text summary for chat or notes.
- Upload receipt or trip images and include them in the PDF as a horizontal thumbnail grid.
- Export a PDF summary with expenses, totals, settlement suggestions, and uploaded images.
- Show a one-time launch animation that ends on the clipboard logo.
- Enter Shopped at and Date.
- Add at least 2 participants.
- Add an expense:
- Enter the Item description.
- Enter the Amount.
- Choose Paid by.
- Select participants sharing that expense, or use ALL.
- Click Add Expense for each line item.
- Click Calculate Total to view shares, balances, and settlement suggestions.
- Optionally upload images to include in the PDF.
- Use Copy Summary for a text summary or Download PDF for a polished export.
Participants: A, B, C
Expenses:
Groceries=120, paid byA, shared byALLSnacks=20+5.50, paid byB, shared byA,BCoupon adjustment=30-5, paid byA, shared byALL
How this splits:
120 / 3 = 40each25.50 / 2 = 12.75each for A and B25 / 3 = 8.33each
The app then compares each person's share against what they paid and recommends who should pay whom.
Participants: J, K, L
Expenses:
Movie tickets=45, paid byJ, shared byJ,K,LPopcorn=18, paid byK, shared byJ,KParking=12, paid byL, shared byK,L
Shares:
J = 15 + 9 = 24.00K = 15 + 9 + 6 = 30.00L = 15 + 6 = 21.00
Settlement suggestions are generated from the difference between paid totals and owed totals.
This project is intentionally simple: plain HTML, CSS, and JavaScript that can run directly from index.html or from GitHub Pages.
Run tests after installing dependencies:
npm install
npm testThe test suite uses Node's built-in test runner and jsdom for DOM smoke tests.
No build step is required. Push the repository to GitHub and serve it with GitHub Pages from the branch/folder configured in the repository settings.
- Amount field supports numbers and simple
+/-expressions. - Add participants first; payer and sharing options are populated from the participant list.
- Drafts are saved only in the current browser via
localStorage. - Uploaded images are kept in memory for the current session and embedded into the PDF export.
- PDF filename uses date format:
ChequeMyShare_YYYY-MM-DD.pdf.