Additional Functionalities of the API
This week I managed to finish off the REST API except for the REST client specific specifications which at that time was still undecided. Hence, I proceeded with adding the SMTP functionalities. It took me a while to decide on the best way to take into account the possibility of an email not being successfully sent to its recipient until Dr. Shawn told me that it was somewhat unreliable to predict success anyway so that was a bit of effort wasted. Mailing functionalities done, I then proceeded with PDF generation. The PocoPDF libraries were simple enough to be used so I quickly got a functional page to be generated based on their respective performances. Then came the QR Code generator. This too was simple enough to be implemented so I got that integrated into the PDF as well. Looking back, I think I actually spent more time thinking on how to best integrate the libraries into the application than actually learning and implementing the libraries themselves so this was a bit confusing in regards to whether should one spend more time thinking on planning out how the software should be structured or spend more time actually learning and coding up the functionalities themselves. Dr. Shawn did mention about a few minor issues about the PDF generated like printability and the unusually large size of the generated QR Code so I should get them fixed soon.
Now, the more pressing issue would be regarding the integration of the front-end with the application. Over the weekend we decided on the REST client that is to be used so I just need to add the functionality of filtering the data based on the parameters that the REST client provides. The header specific requirements for the REST client were done on the day we decided the REST client so that is one less thing to do. Hopefully that should be the only remaining thing that needs to be done on the back-end so that we can fully focus on the front-end which proved to be non-trivial judging from the amount of time spent to implement during the past week.