It takes all the relevant information needed to generate an invoice, does the basic calculations required, and returns a PDF printout of a user's invoice for them to send off to their customer(s).
There's no backend! It is powered by an HTML5 form which holds all the data required for the invoice. Upon "completion", it serializes an object that is fed through MustacheJS to an invoice template.
Once the template is made, a screencapture is taken with HTML2Canvas, which is then formatted into a PDF using JSPDF.
Even more, I always try to future-proof the work I do. In this case, this manifested itself in a last-minute request to also develop an estimate generator and a receipt generator. For both, I was able to repurpose the invoice generator I developed earlier, with a few minor modifications to copy and design.