All BlueprintsFintech

Freelance invoicing

Invoicing for one freelancer: build an invoice whose total survives being added up by hand, send it to a client who never signs in, settle it with the money that actually arrived, and correct a mistake without quietly rewriting a document somebody has already acted on.

L2–L4Level range
8Sprints
41Tasks
Backend and frontendBuilt as

What you’ll build.

By the last sprint

An invoicing tool for freelancers. You build an invoice whose total adds up by hand, send it to a client who opens it without an account, settle it with the money that actually arrived, and fix mistakes with a credit note instead of an edit. You can see what you are owed and how old it is, and overdue invoices chase themselves.

What you’ll learn.

Each sprint is built around one skill. You show you have it in a pull request your team reviews, then explain it in a walkthrough.

Authentication

You can register and sign in a user, keep a request authenticated without asking for the password again, and explain where the credential lives in the browser and why there rather than somewhere else.

A ledger you can trust

You can record credits and debits and produce a balance that is the sum of them — and explain why the balance is not a column you update, and what happens when two movements land at once.

Roles and permissions

You can give users different roles and have the server refuse what a role may not do — not merely hide the button — and show the refusal working against a request the interface never offered.

Statements that reconcile

You can generate a statement for a date range that adds up, downloads, and returns the same figures when it is generated again next month.

Notifications people do not mute

You can notify a user when an event concerns them, show an unread count that survives a refresh, and honour a preference that says stop.

Background jobs

You can hand work to a worker, tell the user it is in progress, and show the result when it lands — and say what happens to that work if the process dies halfway.

Going live

Somebody who has never met you can open a URL and use the product — and you can say what is different about the copy running there, where its secrets come from, and what you do when a release turns out to be wrong.

The roadmap. 8 sprints, 41 tasks.

Every sprint has a goal and a set of tasks. Open a sprint to see the tasks you will pick up.

Sprint 01

Who you are, and who you bill

A freelancer has an account carrying everything an invoice must say about them, and the people they bill do not need one.

5 tasks
  1. A freelancer can register and land signed in
  2. Signing back in survives a refresh and a night's sleep
  3. A freelancer can sign out on a machine that is not theirs
  4. The freelancer's own details, including how to pay them
  5. A client is a record the freelancer keeps, not an account
Sprint 02

An invoice that adds up

A draft invoice's total is exact to the penny, and gives the same answer every time it is opened.

5 tasks
  1. A line with a quantity and a rate, exact to the penny
  2. Tax is worked out per line, and the invoice says so
  3. A discount moves the lines, so the tax is still right
  4. A totals block a client can check with a calculator
  5. The worked examples are pinned so they cannot drift
Sprint 03

Issued is a promise

Issuing numbers an invoice and freezes it for good, and the client opens it without an account.

5 tasks
  1. Issuing turns a draft into a numbered, dated document
  2. An issued invoice cannot be changed by anybody
  3. A client opens the invoice without an account
  4. A freelancer can only ever reach their own work
  5. A draft is not a document, and a link can be withdrawn
Sprint 04

Settling and correcting

Money that arrives and mistakes that are found both become new documents, and the invoice itself never changes.

6 tasks
  1. Recording money that has arrived
  2. A part payment leaves a remainder, and settled means nil
  3. A credit note corrects an invoice without touching it
  4. What is owed is worked out, never stored
  5. The invoice carries its own trail, in date order
  6. The client sees the same trail and the same figure
Sprint 05

What you are owed

One figure for everything outstanding, how old it is, and a statement per client that still says the same thing next month.

5 tasks
  1. One figure for everything you are owed
  2. How old the money is
  3. A statement of account for one client
  4. A statement of a past period never changes
  5. A statement the client can be given
Sprint 06

Chasing what is late

An overdue invoice gets chased with the right figure, and one client gets one chase rather than one per invoice.

5 tasks
  1. An overdue invoice looks overdue
  2. Chasing a client, in one action
  3. One client, one chase
  4. What was chased, and when
  5. Nobody is chased for money they have paid
Sprint 07

Chasing that runs itself

Chases go out on a schedule with nobody pressing anything, and the same client is never chased twice for the same thing.

5 tasks
  1. Chases go out with nobody pressing anything
  2. The same chase never goes out twice
  3. A chase ladder, not a daily nag
  4. Chasing that has stopped working says so
  5. Leave this client alone
Sprint 08

Off the laptop

The product is on the internet at its own address, the chases run from there, and the documents survive.

5 tasks
  1. A stranger can reach it without you
  2. Nothing it needs to run is in the repository
  3. Mail genuinely leaves, from an address a client trusts
  4. The schedule runs there, on a day the laptop is shut
  5. A way back, and a copy of the documents

Read before you build. The best engineers do.

Senior engineers read the docs before they touch the code. Every Blueprint comes with short documents on the product and its world, the kind a team hands a new hire. Read them well and you ask sharper questions and walk into every review prepared.

What you are building

The product, who it is for, and what finished means.

The documents that pass between you

Draft, invoice, payment, credit note: the four things this product records, and what each one may and may not do.

Build freelance invoicing.

Start your free week. Adaeze runs your kickoff, and Lars reviews every pull request.