Sefism is free for learners. We are here to help you grow, one step at a time.Join for free
Sefism.
Web

Multi-Currency Invoicing and Income Tracker for Remote Contractors

A web app for engineers who work as remote contractors for foreign clients: create proper invoices, track due and paid dates, record the amount that actually landed in local currency after fees and exchange rate margins, and set aside tax using rates the user enters. A beginner final year project about handling money, dates and currencies correctly.

Difficulty

Beginner

Achievable by one student in a semester with familiar tools.
Effort

1 semester · 1 to 2 students

Deliverables

7 to ship

3 optional extras

Suggested stack

Next.jsTypeScriptPostgreSQLDinero.js or integer minor unitsPDF generation (react-pdf)Tailwind CSSVitest
A suggestion, not a requirement. Swap anything for what you already know.

What you should ship

  • Client management with legal names, addresses, invoice currency and payment terms
  • Invoices with gapless unique numbering per year, fixed or hourly line items, currency and payment details, exported as PDF
  • A payments ledger recording each receipt in invoice currency and in local currency, supporting partial payments
  • Fee and exchange rate margin calculation against a mid-market rate the user records, shown per payment and per provider
  • Due and overdue reminders, and a list of invoices overdue by client
  • Monthly and per-client income reports with a tax set-aside using percentages the user enters, labelled as their own estimate
  • Unit tests for money arithmetic, currency rounding, partial payments and date handling across month and year boundaries

If you have time left

  • CSV import of payment records from a payment provider's export, with duplicate detection
  • A provider comparison showing average effective cost per provider from the user's own history
  • A rate calculator showing the hourly rate needed to cover leave, gaps between contracts and costs

The problem remote contractors have tracking what they really earn

Many engineers in Pakistan, India, Nigeria, Eastern Europe and elsewhere work as remote contractors for clients abroad. Legally and practically, each is a small business. They must invoice correctly, chase late payments, and understand what they actually earned after platform fees, transfer fees and the exchange rate margin quietly built into the conversion. Then they must keep enough aside for tax.

Most do this in a spreadsheet. The invoice says 3,000 dollars, the bank shows a local amount a few days later, and nobody works out how much was lost in between or which provider cost the most over a year.

What already exists and the gap

  • Wave, Zoho Invoice and Invoice Ninja create and send invoices, and Invoice Ninja is open source; they track what was billed rather than what landed after conversion.
  • Wise and Payoneer move the money and show their own fees, but only for their own transfers.
  • Deel and similar platforms handle contractor payments when the client uses them, which many small clients do not.

The gap is a contractor-side ledger that joins invoice, payment and conversion, shows the real effective cost per payment and per provider, and keeps a simple tax set-aside, without pretending to know any country's tax rules.

What you build

One main role, the contractor, with an optional read-only accountant view.

  • Clients: legal details, currency, payment terms.
  • Invoices: gapless numbering, line items, PDF export.
  • Payments ledger: for each receipt, the amount in invoice currency, the date received, the local amount that landed, the provider used, and the mid-market rate the user records for that day. The app computes the implied total cost (fees plus margin) in money and as a percentage.
  • Reminders: due and overdue invoices.
  • Reports: by month, client, currency and provider, with the tax set-aside.

The technically interesting part

The hard part is correct money and date handling. Money must never be stored as floating point: use integer minor units with the currency code, and be explicit about currencies with different minor units. Converting and rounding must follow one documented rule, applied in one place. Partial payments must reconcile: an invoice is paid only when the sum of payments in its currency reaches its total, even if they landed at different rates.

Invoice numbering must be gapless and unique under concurrent requests, which means a database sequence or a locked counter per year, not a count of rows. Dates need care too: an invoice due on the 31st, net 30 terms across February, and a payment received at midnight in another time zone. Show your evaluators the tests.

How to evaluate it

  • Correctness: a test suite of at least 25 money and date cases (rounding, partial payments, zero-decimal currencies, month ends) all passing.
  • Reconciliation: import three months of a real contractor's anonymised records and show the app's totals match their bank statements.
  • Insight: for each pilot user, report the effective cost per provider computed from their own history.
  • Usability: five contractors create an invoice and record a payment without help; record time and errors.

Suggested plan

  1. Weeks 1 to 2: interview five contractors, collect anonymised sample records.
  2. Weeks 3 to 5: data model, money library, clients and invoices with numbering.
  3. Weeks 6 to 8: payments ledger, conversions, fee and margin calculation, tests.
  4. Weeks 9 to 11: reminders, reports, tax set-aside, PDF export.
  5. Weeks 12 to 15: pilot with contractors, reconciliation study, write-up.

Path to a product

The first users are senior students and recent graduates already freelancing. A free plan with a few clients and a low monthly plan for unlimited clients and reports is realistic. Accountants who serve many freelancers are a later channel: an accountant view across clients is a natural paid tier.

Scope warning

Do not move real money or connect to bank accounts. Do not build tax rules for any country; let users enter their own rates and label the output as an estimate, not advice. Do not add time tracking or project management; the money is the product.

Learn what you need on Sefism

Get help with this idea

This is a good beginner project if you keep it to money handled correctly. Tauseef can help you shape the data model, decide what not to build and plan a reconciliation study your examiners will respect. If you are new here, create a free account first.

Ideas and guidance, not finished projects

These are project ideas and scoping guidance, published free for students to use as a starting point. I do not build, write, or sell final-year projects, and I do not complete coursework for anyone. Take an idea, make it yours, and build it.

Not sure this one fits you?

I help students pick an idea that matches their skills and their deadline, then scope it down until it is finishable. Guidance only, never done for you.

Discuss this idea
Work with me

Stuck on something specific?

Writing only gets you so far. If you want an answer to your situation rather than the general case, book a session and we will work through it together. Sessions are free for approved Sefism members, and a few slots open each week.