InvoiceMaker (4 Part Series)
About 2 weeks ago, I published an article about the launch of InvoiceMaker. There, I especially insisted on launching something as soon as possible, to keep the momentum going and the project alive. Well, it wasn't all great :D
So, the application is using puppeteer to generate a PDF from HTML. Soon after the launch, I realised that something was not right. The PDF generation was taking waaaaaay too long. And I mean, 8 seconds too long... The problem only occured in production, and had me quite confused. After hours of googling, soul searching and praying to the God of geeks itself, I managed to solve it...
I had forgotten to close the Browser instance I had created with puppeteer for the PDF creation.
So, I added
await browser.close() where it was needed. Done. 👍
I should just read the documentation more carefully next time, because it was all in there... Oh well.
Obviously, I added a few more features and tried to improve certain things:
This one took me a litte bit of time. I've never done this from scratch before. There was always someone telling me to run certain commands and boom, that was it. Not the same story when you don't have a safety net.
There are some great tutorials out there that helped me greatly. I do feel my lack of experience in managing servers and such is slowing me down quite a bit here.😬
Well, I'm French and I wanted my application to also be in French, so... sue me.
- Changed the favicon
- Loading screen when generating the PDF
- Changed some styles on the invoice
The application is progressing, slowly, but it is still alive in my mind. One thing that I believe I should do for the near future is to set a time where I will work on this project. Dedicating a special window of time for this will help me be more focused about it. Right now, it's more like half an hour here, 20 minutes there... It's erratic, and the pace I could have is suffering.
Launching quickly, and not having a lot of experience on many fronts means that I'm still figuring out a lot of stuff. It will most likely take a lot more time to fully grasp certain concepts. But, as long as I'm able to keep adding features, one by one, I believe I'll keep enjoying myself working on this project.